1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- 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 }}
- echo 'args:' ${{ matrix.params.args || '' }}
- 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 \
- --cloud \
- ${{ matrix.params.args || '' }}
- env:
- CERTORAKEY: ${{ secrets.CERTORAKEY }}
- strategy:
- fail-fast: false
- max-parallel: 4
- matrix:
- params: ${{ fromJson(needs.list-scripts.outputs.matrix) }}
|