Files
openzeppelin-contracts/.github/workflows/formal-verifiation.yml
Hadrien Croubois 797ef26bb6 refactor
2022-09-20 16:42:18 +02:00

59 lines
1.7 KiB
YAML

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 }}
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) }}