Merge pull request #18778 from Veykril/push-oontvoqmxkno #6416
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: metrics | |
on: | |
push: | |
branches: | |
- master | |
env: | |
CARGO_INCREMENTAL: 0 | |
CARGO_NET_RETRY: 10 | |
RUSTFLAGS: "-D warnings -W unreachable-pub" | |
RUSTUP_MAX_RETRIES: 10 | |
jobs: | |
build_metrics: | |
if: github.repository == 'rust-lang/rust-analyzer' | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install Rust toolchain | |
run: | | |
rustup update --no-self-update stable | |
rustup default stable | |
rustup component add --toolchain stable rust-src | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Cache cargo | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cargo/bin/ | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
key: ${{ runner.os }}-cargo-${{ github.sha }} | |
- name: Collect build metrics | |
run: cargo xtask metrics build | |
- name: Cache target | |
uses: actions/cache@v4 | |
with: | |
path: target/ | |
key: ${{ runner.os }}-target-${{ github.sha }} | |
- name: Upload build metrics | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build-${{ github.sha }} | |
path: target/build.json | |
if-no-files-found: error | |
other_metrics: | |
strategy: | |
matrix: | |
names: [self, rustc_tests, ripgrep-13.0.0, webrender-2022, diesel-1.4.8, hyper-0.14.18] | |
runs-on: ubuntu-latest | |
needs: build_metrics | |
steps: | |
- name: Install Rust toolchain | |
run: | | |
rustup update --no-self-update stable | |
rustup default stable | |
rustup component add --toolchain stable rust-src | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Restore target cache | |
uses: actions/cache@v4 | |
with: | |
path: target/ | |
key: ${{ runner.os }}-target-${{ github.sha }} | |
- name: Collect metrics | |
run: cargo xtask metrics "${{ matrix.names }}" | |
- name: Upload metrics | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ matrix.names }}-${{ github.sha }} | |
path: target/${{ matrix.names }}.json | |
if-no-files-found: error | |
generate_final_metrics: | |
runs-on: ubuntu-latest | |
needs: [build_metrics, other_metrics] | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Download build metrics | |
uses: actions/download-artifact@v4 | |
with: | |
name: build-${{ github.sha }} | |
- name: Download self metrics | |
uses: actions/download-artifact@v4 | |
with: | |
name: self-${{ github.sha }} | |
- name: Download rustc_tests metrics | |
uses: actions/download-artifact@v4 | |
with: | |
name: rustc_tests-${{ github.sha }} | |
- name: Download ripgrep-13.0.0 metrics | |
uses: actions/download-artifact@v4 | |
with: | |
name: ripgrep-13.0.0-${{ github.sha }} | |
- name: Download webrender-2022 metrics | |
uses: actions/download-artifact@v4 | |
with: | |
name: webrender-2022-${{ github.sha }} | |
- name: Download diesel-1.4.8 metrics | |
uses: actions/download-artifact@v4 | |
with: | |
name: diesel-1.4.8-${{ github.sha }} | |
- name: Download hyper-0.14.18 metrics | |
uses: actions/download-artifact@v4 | |
with: | |
name: hyper-0.14.18-${{ github.sha }} | |
- name: Combine json | |
run: | | |
mkdir ~/.ssh | |
echo "${{ secrets.METRICS_DEPLOY_KEY }}" > ~/.ssh/id_ed25519 | |
chmod 600 ~/.ssh/id_ed25519 | |
chmod 700 ~/.ssh | |
git clone --depth 1 git@github.com:rust-analyzer/metrics.git | |
jq -s ".[0] * .[1] * .[2] * .[3] * .[4] * .[5] * .[6]" build.json self.json rustc_tests.json ripgrep-13.0.0.json webrender-2022.json diesel-1.4.8.json hyper-0.14.18.json -c >> metrics/metrics.json | |
cd metrics | |
git add . | |
git -c user.name=Bot -c user.email=dummy@example.com commit --message 📈 | |
git push origin master |