diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml new file mode 100644 index 00000000..0525cf0b --- /dev/null +++ b/.github/workflows/benchmark.yml @@ -0,0 +1,45 @@ +name: Run Benchmarks + +on: + pull_request: + branches: [ "master" ] + workflow_dispatch: + +jobs: + benchmark: + strategy: + fail-fast: false + matrix: + node-version: [18.x] + os: [ubuntu-latest] + + runs-on: ${{ matrix.os }} + + steps: + - name: Checkout Misti + uses: actions/checkout@v2 + + - name: Setup Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + cache: "yarn" + + - name: Install dependencies + run: yarn install + + - name: Install Soufflé on Ubuntu + if: matrix.os == 'ubuntu-latest' + run: | + sudo wget https://souffle-lang.github.io/ppa/souffle-key.public -O /usr/share/keyrings/souffle-archive-keyring.gpg + echo "deb [signed-by=/usr/share/keyrings/souffle-archive-keyring.gpg] https://souffle-lang.github.io/ppa/ubuntu/ stable main" | sudo tee /etc/apt/sources.list.d/souffle.list + sudo apt update + sudo apt install souffle + + - name: Run benchmarks test/good/sample-jetton.tact + run: yarn benchmark test/good/sample-jetton.tact | tail -n +3 | head -n -1 > /tmp/benchmark-results.txt + + - name: Publish benchmark results + uses: marocchino/sticky-pull-request-comment@v2 + with: + path: /tmp/benchmark-results.txt