Auto merge of #17069 - lnicola:fix-skip-array-dispatch, r=lnicola #40
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: | |
setup_cargo: | |
if: github.repository == 'rust-lang/rust-analyzer' | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install Rust toolchain | |
run: | | |
rustup update --no-self-update stable | |
rustup component add rustfmt rust-src | |
rustup default stable | |
- 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 }} | |
build_metrics: | |
runs-on: ubuntu-latest | |
needs: setup_cargo | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Restore cargo cache | |
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@v3 | |
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: [setup_cargo, build_metrics] | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Restore cargo cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cargo/bin/ | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
key: ${{ runner.os }}-cargo-${{ github.sha }} | |
- 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@v3 | |
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@v3 | |
with: | |
name: build-${{ github.sha }} | |
- name: Download self metrics | |
uses: actions/download-artifact@v3 | |
with: | |
name: self-${{ github.sha }} | |
- name: Download ripgrep-13.0.0 metrics | |
uses: actions/download-artifact@v3 | |
with: | |
name: ripgrep-13.0.0-${{ github.sha }} | |
- name: Download webrender-2022 metrics | |
uses: actions/download-artifact@v3 | |
with: | |
name: webrender-2022-${{ github.sha }} | |
- name: Download diesel-1.4.8 metrics | |
uses: actions/download-artifact@v3 | |
with: | |
name: diesel-1.4.8-${{ github.sha }} | |
- name: Download hyper-0.14.18 metrics | |
uses: actions/download-artifact@v3 | |
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]" 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 user.email=dummy@example.com commit --message 📈 | |
git push origin master |