name: Benchmarks # spell-checker:ignore (people) taiki-e # spell-checker:ignore (misc) codspeed sccache on: pull_request: push: branches: - '*' permissions: contents: read # to fetch code (actions/checkout) # End the current execution if there is a new changeset in the PR. concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} jobs: benchmarks: name: Run ${{ matrix.type }} benchmarks for ${{ matrix.package }} (CodSpeed) runs-on: ubuntu-latest timeout-minutes: 90 env: CARGO_INCREMENTAL: 0 strategy: matrix: type: [simulation, memory] package: [ uu_base64, uu_cksum, uu_cp, uu_cat, uu_cut, uu_dd, uu_df, uu_du, uu_echo, uu_expand, uu_expr, uu_fold, uu_hostname, uu_join, uu_ls, uu_mv, uu_nl, uu_numfmt, uu_rm, uu_seq, uu_shuf, uu_sort, uu_split, uu_tee, uu_timeout, uu_tsort, uu_unexpand, uu_uniq, uu_wc, uu_factor, uu_date, uu_csplit, uu_true, uu_false ] steps: - uses: actions/checkout@v7.0.0 with: persist-credentials: false - uses: dtolnay/rust-toolchain@stable - uses: Swatinem/rust-cache@v2 - name: Run sccache-cache id: sccache-setup uses: mozilla-actions/sccache-action@v0.0.10 continue-on-error: true - name: Export sccache if: steps.sccache-setup.outcome == 'success' run: | echo "RUSTC_WRAPPER=sccache" >> $GITHUB_ENV echo "SCCACHE_GHA_ENABLED=true" >> $GITHUB_ENV - name: Install locales shell: bash run: | sudo locale-gen fr_FR.UTF-8 sudo update-locale - name: Install tools uses: taiki-e/install-action@v2 with: tool: cargo-codspeed - name: Build benchmarks for ${{ matrix.package }} (${{ matrix.type }}) shell: bash run: | echo "Building ${{ matrix.type }} benchmarks for ${{ matrix.package }}" cargo codspeed build -m ${{ matrix.type }} -p ${{ matrix.package }} - name: Run ${{ matrix.type }} benchmarks for ${{ matrix.package }} uses: CodSpeedHQ/action@v4 env: CODSPEED_LOG: debug with: mode: ${{ matrix.type }} run: | echo "Running ${{ matrix.type }} benchmarks for ${{ matrix.package }}" cargo codspeed run -p ${{ matrix.package }} > /dev/null token: ${{ secrets.CODSPEED_TOKEN }}