summaryrefslogtreecommitdiffstats
path: root/.github/workflows/bench.yml
blob: 98925986d136ba91efb074d6916faaa25ba03ed4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
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