Iteration on TLC wrapper script #21
Workflow file for this run
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: "Long Verification" | |
on: | |
pull_request: | |
types: | |
- labeled | |
- synchronize | |
- opened | |
- reopened | |
schedule: | |
- cron: "0 0 * * 0" | |
workflow_dispatch: | |
permissions: | |
actions: read | |
contents: read | |
security-events: write | |
jobs: | |
model-checking-with-atomic-reconfig-consensus: | |
name: Model Checking With Atomic Reconfig - Consensus | |
if: ${{ contains(github.event.pull_request.labels.*.name, 'run-long-verification') }} | |
runs-on: [self-hosted, 1ES.Pool=gha-virtual-ccf-sub] | |
container: | |
image: ghcr.io/microsoft/ccf/ci/default:build-25-07-2024 | |
steps: | |
- uses: actions/checkout@v4 | |
- run: | | |
sudo apt update | |
sudo apt install -y default-jre | |
python3 ./tla/install_deps.py | |
- name: MCccfraft - Configurations=2C2N (atomic reconf) MaxTermCount=2 MaxRequestCount=2 NoCheckQuorum | |
run: | | |
set -x | |
cd tla/ | |
./tlc.py --max-term-count 2 --max-request-count 1 --raft-configs 2C2N --disable-check-quorum --trace-name 2C2N consensus/MCccfraft.tla | |
- name: Upload TLC's out file as an artifact. Can be imported into the TLA+ Toolbox. | |
uses: actions/upload-artifact@v4 | |
if: ${{ failure() }} | |
with: | |
name: tlc-model-checking-with-atomic-reconfig-consensus | |
path: | | |
tla/consensus/*_TTrace_*.tla | |
tla/*.json | |
model-checking-with-reconfig-consensus: | |
name: Model Checking With Reconfig - Consensus | |
if: ${{ contains(github.event.pull_request.labels.*.name, 'run-long-verification') }} | |
runs-on: [self-hosted, 1ES.Pool=gha-virtual-ccf-sub] | |
container: | |
image: ghcr.io/microsoft/ccf/ci/default:build-25-07-2024 | |
steps: | |
- uses: actions/checkout@v4 | |
- run: | | |
sudo apt update | |
sudo apt install -y default-jre | |
python3 ./tla/install_deps.py | |
- name: MCccfraft - Configurations=3C2N MaxTermCount=2 MaxRequestCount=1 NoCheckQuorum | |
run: | | |
set -x | |
cd tla/ | |
./tlc.py --max-term-count 2 --max-request-count 0 --raft-configs 3C2N --disable-check-quorum --trace-name 3C2N consensus/MCccfraft.tla | |
- name: Upload TLC's out file as an artifact. Can be imported into the TLA+ Toolbox. | |
uses: actions/upload-artifact@v4 | |
if: ${{ failure() }} | |
with: | |
name: tlc-model-checking-with-reconfig-consensus | |
path: | | |
tla/consensus/*_TTrace_*.tla | |
tla/*.json | |
simulation-consensus: | |
name: Simulation - Consensus | |
if: ${{ contains(github.event.pull_request.labels.*.name, 'run-long-verification') }} | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- run: | | |
sudo apt update | |
sudo apt install -y default-jre | |
python3 ./tla/install_deps.py | |
- name: Simulation | |
run: | | |
set -x | |
cd tla/ | |
./tlc.py --simulate num=100 --depth 500 consensus/SIMccfraft.tla | |
env: | |
SIM_TIMEOUT: 3000 | |
- name: Upload artifacts. | |
uses: actions/upload-artifact@v4 | |
if: ${{ failure() }} | |
with: | |
name: tlc-simulation-consensus | |
path: | | |
tla/* |