Skip to content

Commit f76f025

Browse files
committed
Fix metrics CI to use new json file names
1 parent 520d02f commit f76f025

File tree

3 files changed

+50
-40
lines changed

3 files changed

+50
-40
lines changed

.github/workflows/metrics.yaml

+9-9
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ jobs:
6767
other_metrics:
6868
strategy:
6969
matrix:
70-
names: [self, ripgrep, webrender, diesel]
70+
names: [self, ripgrep-13.0.0, webrender-2022, diesel-1.4.8]
7171
runs-on: ubuntu-latest
7272
needs: [setup_cargo, build_metrics]
7373

@@ -92,7 +92,7 @@ jobs:
9292
key: ${{ runner.os }}-target-${{ github.sha }}
9393

9494
- name: Collect metrics
95-
run: cargo xtask metrics ${{ matrix.names }}
95+
run: cargo xtask metrics "${{ matrix.names }}"
9696

9797
- name: Upload metrics
9898
uses: actions/upload-artifact@v3
@@ -118,25 +118,25 @@ jobs:
118118
with:
119119
name: self-${{ github.sha }}
120120

121-
- name: Download ripgrep metrics
121+
- name: Download ripgrep-13.0.0 metrics
122122
uses: actions/download-artifact@v3
123123
with:
124-
name: ripgrep-${{ github.sha }}
124+
name: ripgrep-13.0.0-${{ github.sha }}
125125

126-
- name: Download webrender metrics
126+
- name: Download webrender-2022 metrics
127127
uses: actions/download-artifact@v3
128128
with:
129-
name: webrender-${{ github.sha }}
129+
name: webrender-2022-${{ github.sha }}
130130

131-
- name: Download diesel metrics
131+
- name: Download diesel-1.4.8 metrics
132132
uses: actions/download-artifact@v3
133133
with:
134-
name: diesel-${{ github.sha }}
134+
name: diesel-1.4.8-${{ github.sha }}
135135

136136
- name: Combine json
137137
run: |
138138
git clone --depth 1 https://[email protected]/rust-analyzer/metrics.git
139-
jq -s ".[0] * .[1] * .[2] * .[3] * .[4]" build.json self.json ripgrep.json webrender.json diesel.json -c >> metrics/metrics.json
139+
jq -s ".[0] * .[1] * .[2] * .[3] * .[4]" build.json self.json ripgrep-13.0.0.json webrender-2022.json diesel-1.4.8.json -c >> metrics/metrics.json
140140
cd metrics
141141
git add .
142142
git -c user.name=Bot -c [email protected] commit --message 📈

xtask/src/flags.rs

+14-3
Original file line numberDiff line numberDiff line change
@@ -122,13 +122,24 @@ impl FromStr for MeasurementType {
122122
match s {
123123
"build" => Ok(Self::Build),
124124
"self" => Ok(Self::AnalyzeSelf),
125-
"ripgrep" => Ok(Self::AnalyzeRipgrep),
126-
"webrender" => Ok(Self::AnalyzeWebRender),
127-
"diesel" => Ok(Self::AnalyzeDiesel),
125+
"ripgrep-13.0.0" => Ok(Self::AnalyzeRipgrep),
126+
"webrender-2022" => Ok(Self::AnalyzeWebRender),
127+
"diesel-1.4.8" => Ok(Self::AnalyzeDiesel),
128128
_ => Err("Invalid option".to_string()),
129129
}
130130
}
131131
}
132+
impl AsRef<str> for MeasurementType {
133+
fn as_ref(&self) -> &str {
134+
match self {
135+
Self::Build => "build",
136+
Self::AnalyzeSelf => "self",
137+
Self::AnalyzeRipgrep => "ripgrep-13.0.0",
138+
Self::AnalyzeWebRender => "webrender-2022",
139+
Self::AnalyzeDiesel => "diesel-1.4.8",
140+
}
141+
}
142+
}
132143

133144
#[derive(Debug)]
134145
pub struct Metrics {

xtask/src/metrics.rs

+27-28
Original file line numberDiff line numberDiff line change
@@ -29,41 +29,40 @@ impl flags::Metrics {
2929

3030
let _env = sh.push_env("RA_METRICS", "1");
3131

32-
let filename = match self.measurement_type {
33-
Some(ms) => match ms {
34-
MeasurementType::Build => {
35-
metrics.measure_build(sh)?;
36-
"build.json"
37-
}
38-
MeasurementType::AnalyzeSelf => {
39-
metrics.measure_analysis_stats_self(sh)?;
40-
"self.json"
41-
}
42-
MeasurementType::AnalyzeRipgrep => {
43-
metrics.measure_analysis_stats(sh, "ripgrep-13.0.0")?;
44-
"ripgrep-13.0.0.json"
45-
}
46-
MeasurementType::AnalyzeWebRender => {
47-
metrics.measure_analysis_stats(sh, "webrender-2022")?;
48-
"webrender-2022.json"
49-
}
50-
MeasurementType::AnalyzeDiesel => {
51-
metrics.measure_analysis_stats(sh, "diesel-1.4.8")?;
52-
"diesel-1.4.8.json"
53-
}
54-
},
32+
let name = match &self.measurement_type {
33+
Some(ms) => {
34+
let name = ms.as_ref();
35+
match ms {
36+
MeasurementType::Build => {
37+
metrics.measure_build(sh)?;
38+
}
39+
MeasurementType::AnalyzeSelf => {
40+
metrics.measure_analysis_stats_self(sh)?;
41+
}
42+
MeasurementType::AnalyzeRipgrep => {
43+
metrics.measure_analysis_stats(sh, name)?;
44+
}
45+
MeasurementType::AnalyzeWebRender => {
46+
metrics.measure_analysis_stats(sh, name)?;
47+
}
48+
MeasurementType::AnalyzeDiesel => {
49+
metrics.measure_analysis_stats(sh, name)?;
50+
}
51+
};
52+
name
53+
}
5554
None => {
5655
metrics.measure_build(sh)?;
5756
metrics.measure_analysis_stats_self(sh)?;
58-
metrics.measure_analysis_stats(sh, "ripgrep-13.0.0")?;
59-
metrics.measure_analysis_stats(sh, "webrender-2022")?;
60-
metrics.measure_analysis_stats(sh, "diesel-1.4.8")?;
61-
"all.json"
57+
metrics.measure_analysis_stats(sh, MeasurementType::AnalyzeRipgrep.as_ref())?;
58+
metrics.measure_analysis_stats(sh, MeasurementType::AnalyzeWebRender.as_ref())?;
59+
metrics.measure_analysis_stats(sh, MeasurementType::AnalyzeDiesel.as_ref())?;
60+
"all"
6261
}
6362
};
6463

6564
let mut file =
66-
fs::File::options().write(true).create(true).open(format!("target/{}", filename))?;
65+
fs::File::options().write(true).create(true).open(format!("target/{}.json", name))?;
6766
writeln!(file, "{}", metrics.json())?;
6867
eprintln!("{metrics:#?}");
6968
Ok(())

0 commit comments

Comments
 (0)