Try CI with basic sanity and lower prover depth for two of our rules #55
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: certora | |
on: | |
push: | |
branches: | |
- master | |
- certora | |
pull_request: | |
branches: | |
- master | |
- certora | |
workflow_dispatch: | |
jobs: | |
verify: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Check key | |
env: | |
CERTORAKEY: ${{ secrets.CERTORAKEY }} | |
run: echo "key length" ${#CERTORAKEY} | |
- name: Install python | |
uses: actions/setup-python@v2 | |
with: { python-version: 3.9 } | |
- name: Install java | |
uses: actions/setup-java@v1 | |
with: { java-version: '11', java-package: jre } | |
- name: Install certora cli | |
run: pip install certora-cli | |
- name: Install solc | |
run: | | |
wget https://github.com/ethereum/solidity/releases/download/v0.8.10/solc-static-linux | |
chmod +x solc-static-linux | |
sudo mv solc-static-linux /usr/local/bin/solc8.10 | |
- name: Verify rule ${{ matrix.rule }} | |
run: | | |
cd certora | |
touch applyHarness.patch | |
make munged | |
cd .. | |
echo "key length" ${#CERTORAKEY} | |
certoraRun certora/conf/${{ matrix.rule }} | |
env: | |
CERTORAKEY: ${{ secrets.CERTORAKEY }} | |
strategy: | |
fail-fast: false | |
max-parallel: 16 | |
matrix: | |
rule: | |
- AToken.conf | |
- PoolInvariant.conf --msg "Martins rules with PoolInvariant.conf" --rule "borrowOnlyVariableOrStableRate" | |
- PoolInvariant.conf --msg "Index non decreasing part 1" --rule "indexIncreasesMonotonically" | |
- PoolAccurate.conf --msg "Index non decreasing part 3" --rule "indexChangesOnlyWith_updateIndexes" | |
- PoolAccurate.conf --msg "Index non decreasing part 4" --rule "liquidityIndexNonDecresingFor_cumulateToLiquidityIndex" | |
- ReserveConfiguration.conf | |
- UserConfigCLI.conf | |
- StableTokenCLI.conf | |
- VariableTokenCLI.conf | |
- PoolSimpleProperties.conf --msg "Deposit functionality part 1" --rule "cannotDepositInInactiveReserve" | |
- PoolSimpleProperties.conf --msg "Deposit functionality part 2" --rule "cannotDepositInFrozenReserve" | |
- PoolSimpleProperties.conf --msg "Deposit functionality part 3" --rule "cannotDepositZeroAmount" | |
- PoolSimpleProperties.conf --msg "Methods reachability" --rule "method_reachability" | |
- PoolSimpleProperties.conf --msg "Withdraw functionality part 1" --rule "cannotWithdrawFromInactiveReserve" | |
- PoolSimpleProperties.conf --msg "Withdraw functionality part 2" --rule "cannotWithdrawZeroAmount" | |
- PoolSimpleProperties.conf --msg "Borrow functionality" --rule "cannotBorrowZeroAmount" "cannotBorrowOnInactiveReserve" "cannotBorrowOnReserveDisabledForBorrowing" "cannotBorrowOnFrozenReserve" | |
timeoutdisabled: | |
- PoolAccurate.conf --msg "Deposit updates AToken scaled balance" --rule "depositUpdatesUserATokenSuperBalance" "depositUpdatesUserATokenSuperBalance_sanity" | |
- PoolAccurate.conf --msg "Deposit cannot change other users scaled balance" --rule "depositCannotChangeOthersATokenSuperBalance" | |
- PoolAccurate.conf --msg "Index non decreasing part 2 -- timeouting when not split into different patches of methods" --rule _updateIndexesWrapperReachable |