Merge pull request #18742 from Veykril/push-yswvkzmsvqql #6400
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, 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 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 [email protected]:rust-analyzer/metrics.git | |
jq -s ".[0] * .[1] * .[2] * .[3] * .[4] * .[5]" build.json self.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 [email protected] commit --message 📈 | |
git push origin master |