monster-rs 0.4.1

Monster is a symbolic execution engine for 64-bit RISC-U code
Documentation
name: Benchmark

on:
  push:
    branches:
      - main
  workflow_dispatch:

env:
  CARGO_TERM_COLOR: always
  RUST_BACKTRACE: 1

jobs:
  build-and-bench:
    name: Build and Benchmark on big-iron8
    # The secret runner token is referenced in the environment in order
    # to be sent along with the job to our runners. Note that validity
    # of the token will be checked by our forked runner:
    # https://github.com/cksystemsgroup/github-actions-runner/tree/main-hard
    env:
      TOKEN: ${{ secrets.RUNNER_TOKEN }}
    runs-on: self-hosted
    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Install Rust 1.52.0
        uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: 1.52.0
          override: true

      - name: Build Benchmarks
        uses: actions-rs/cargo@v1
        with:
          command: bench
          args: --benches --no-run --features z3,boolector --locked

      - name: Run Benchmarks
        uses: actions-rs/cargo@v1
        with:
          command: bench
          args: --benches --features z3,boolector --locked

      - name: Generate Metadata
        run: |
          echo "::set-output name=SHORT_SHA::$(echo $GITHUB_SHA | cut -c-8)"
          echo $COMMIT_JSON > ./target/criterion/commit.json
        id: metadata
        env:
          COMMIT_JSON: ${{ toJson(github.event.head_commit) }}

      - name: Deploy Results
        uses: peaceiris/actions-gh-pages@v3
        with:
          deploy_key: ${{ secrets.PERF_DEPLOY_KEY }}
          external_repository: cksystemsgroup/monster-perf
          destination_dir: data/commit-${{ steps.metadata.outputs.SHORT_SHA }}
          publish_branch: data
          publish_dir: ./target/criterion
          user_name: "github-actions[bot]"
          user_email: "github-actions[bot]@users.noreply.github.com"
          commit_message: "add benchmark data"
        if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}