@@ -20,8 +20,16 @@ jobs:
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
with:
clean: false
- - name: compare_perf::run_perf::echo_inputs
- run: echo ${{ inputs.base }} ${{ inputs.head }}
+ - name: steps::setup_cargo_config
+ run: |
+ mkdir -p ./../.cargo
+ cp ./.cargo/ci-config.toml ./../.cargo/config.toml
+ shell: bash -euxo pipefail {0}
+ - name: steps::setup_linux
+ run: ./script/linux
+ shell: bash -euxo pipefail {0}
+ - name: steps::install_mold
+ run: ./script/install-mold
shell: bash -euxo pipefail {0}
- name: compare_perf::run_perf::git_checkout
run: git fetch origin ${{ inputs.base }} && git checkout ${{ inputs.base }}
@@ -43,3 +51,8 @@ jobs:
with:
name: results.md
path: results.md
+ - name: steps::cleanup_cargo_config
+ if: always()
+ run: |
+ rm -rf ./../.cargo
+ shell: bash -euxo pipefail {0}
@@ -1,8 +1,9 @@
use gh_workflow::*;
+use crate::tasks::workflows::steps::FluentBuilder;
use crate::tasks::workflows::{
runners,
- steps::{self, NamedJob, named, upload_artifact},
+ steps::{self, named, upload_artifact, NamedJob},
vars::Input,
};
@@ -20,35 +21,36 @@ pub fn compare_perf() -> Workflow {
}
pub fn run_perf(base: &Input, head: &Input) -> NamedJob {
- fn echo_inputs(base: &Input, head: &Input) -> Step<Run> {
- named::bash(&format!("echo {} {}", base.var(), head.var()))
- }
-
fn cargo_perf_test(ref_name: String) -> Step<Run> {
// TODO: vim not gpui, and ideally allow args
named::bash(&format!("cargo perf-test -p gpui -- --json={ref_name}"))
}
fn git_checkout(ref_name: String) -> Step<Run> {
- named::bash(
- &format!("git fetch origin {ref_name} && git checkout {ref_name}"))
+ named::bash(&format!(
+ "git fetch origin {ref_name} && git checkout {ref_name}"
+ ))
}
fn compare_runs(head: String, base: String) -> Step<Run> {
// TODO: this should really be swapped...
- named::bash(&format!("cargo perf-compare {base} {head} --save=results.md"))
+ named::bash(&format!(
+ "cargo perf-compare {base} {head} --save=results.md"
+ ))
}
named::job(
Job::default()
.runs_on(runners::LINUX_DEFAULT)
.add_step(steps::checkout_repo())
- .add_step(echo_inputs(base, head))
+ .add_step(steps::setup_cargo_config(runners::Platform::Linux))
+ .map(steps::install_linux_dependencies)
.add_step(git_checkout(base.var()))
.add_step(cargo_perf_test(base.var()))
.add_step(git_checkout(head.var()))
.add_step(cargo_perf_test(head.var()))
.add_step(compare_runs(head.var(), base.var()))
- .add_step(upload_artifact("results.md", "results.md")),
+ .add_step(upload_artifact("results.md", "results.md"))
+ .add_step(steps::cleanup_cargo_config(runners::Platform::Linux)),
)
}