name: Formal verification on: push: branches: - master - release-v* - formal-verification pull_request: {} workflow_dispatch: {} jobs: list-scripts: runs-on: ubuntu-latest outputs: matrix: ${{ steps.set-matrix.outputs.matrix }} steps: - uses: actions/checkout@v2 - id: set-matrix run: echo ::set-output name=matrix::$(cat certora/matrix.json) verify: runs-on: ubuntu-latest needs: list-scripts steps: - uses: actions/checkout@v2 - name: Install python uses: actions/setup-python@v2 with: python-version: '3.10' cache: 'pip' - name: Install java uses: actions/setup-java@v1 with: java-version: '11' java-package: 'jre' - name: Install certora run: pip install certora-cli - name: Install solc run: | wget https://github.com/ethereum/solidity/releases/download/v0.8.17/solc-static-linux sudo mv solc-static-linux /usr/local/bin/solc chmod +x /usr/local/bin/solc - name: Verify rule ${{ matrix.params.spec }} if: matrix.params.disabled != true run: | echo 'file:' ${{ matrix.params.file }} echo 'name:' ${{ matrix.params.name }} echo 'spec:' ${{ matrix.params.spec }} touch certora/applyHarness.patch make -C certora munged certoraRun ${{ matrix.params.file }} --verify ${{ matrix.params.name }}:${{ matrix.params.spec }} --solc solc --optimistic_loop --loop_iter 3 --rule_sanity advanced --cloud --debug env: CERTORAKEY: ${{ secrets.CERTORAKEY }} strategy: fail-fast: false max-parallel: 4 matrix: params: ${{ fromJson(needs.list-scripts.outputs.matrix) }}