Browse Source

starting CI integration

Michael George 3 years ago
parent
commit
f242abbf93
3 changed files with 58 additions and 5 deletions
  1. 57 0
      .github/workflows/verify.yml
  2. 1 0
      .gitignore
  3. 0 5
      certora/scripts/verifyAllSasha.sh

+ 57 - 0
.github/workflows/verify.yml

@@ -0,0 +1,57 @@
+name: Certora
+
+on:
+  push:
+    branches:
+      - main
+      - certora/erc20
+
+jobs:
+  verify:
+    runs-on: ubuntu-latest
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Install python
+        uses: actions/setup-python@v2
+        with: { python-version: 3.6, 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.2/solc-static-linux
+          chmod +x solc-static-linux
+          sudo mv solc-static-linux /usr/local/bin/solc8.2
+
+      - name: Verify rule ${{ matrix.script }}
+        run: |
+          touch certora/applyHarness.patch
+          make -C certora munged
+          echo "key length" ${#CERTORAKEY}
+          sh certora/scripts/${{ matrix.script }}
+        env:
+          CERTORAKEY: ${{ secrets.CERTORAKEY }}
+
+    strategy:
+      fail-fast: false
+      max-parallel: 4
+
+      matrix:
+        script:
+          - verifyTimelock.sh
+          - verifyERC1155.sh
+          - verifyERC20FlashMint.sh
+          - verifyERC20Wrapper.sh
+          - verifyAccessControl.sh
+          - verifyERC20Votes.sh "checking ERC20Votes.spec on ERC20Votes.sol"
+          - verifyERC721Votes.sh "checking ERC721Votes.spec on draft-ERC721Votes.sol and Votes.sol"
+
+
+

+ 1 - 0
.gitignore

@@ -62,3 +62,4 @@ artifacts
 .certora*
 .last_confs
 certora_*
+resource_errors.json

+ 0 - 5
certora/scripts/verifyAllSasha.sh

@@ -1,5 +0,0 @@
-sh certora/scripts/verifyTimelock.sh
-sh certora/scripts/verifyERC1155.sh
-sh certora/scripts/verifyERC20FlashMint.sh
-sh certora/scripts/verifyERC20Wrapper.sh
-sh certora/scripts/verifyAccessControl.sh