name: Benchmark on: push: branches: - master jobs: benchmark: name: Benchmark runs-on: ubuntu-latest strategy: matrix: bench: - rt_multi_threaded - sync_mpsc - sync_rwlock - sync_semaphore steps: - uses: actions/checkout@v2 - name: Install Rust run: rustup update stable # Run benchmark with `go test -bench` and stores the output to a file - name: Run benchmark run: cargo bench --bench ${{ matrix.bench }} | tee ../output.txt working-directory: benches # Download previous benchmark result from cache (if exists) - name: Download previous benchmark data uses: actions/cache@v1 with: path: ./cache key: ${{ runner.os }}-benchmark # Run `github-action-benchmark` action - name: Store benchmark result uses: rhysd/github-action-benchmark@v1 with: name: ${{ matrix.bench }} # What benchmark tool the output.txt came from tool: 'cargo' # Where the output from the benchmark tool is stored output-file-path: output.txt # # Where the previous data file is stored # external-data-json-path: ./cache/benchmark-data.json # Workflow will fail when an alert happens fail-on-alert: true # GitHub API token to make a commit comment github-token: ${{ secrets.GITHUB_TOKEN }} # Enable alert commit comment comment-on-alert: true alert-comment-cc-users: '@tokio-rs/maintainers' auto-push: true # Upload the updated cache file for the next job by actions/cache