Skip to content

Towards a TLAPS stdlib (#127) #947

Towards a TLAPS stdlib (#127)

Towards a TLAPS stdlib (#127) #947

Workflow file for this run

name: CI
on:
repository_dispatch:
push:
branches:
- 'master'
paths-ignore:
- README.md
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
permissions:
contents: write # Required by actions/create-release@v1
packages: read
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v2
- name: Setup tmate session
if: ${{ failure() }}
uses: mxschmitt/action-tmate@v3
with:
limit-access-to-actor: true
- name: Get current date
id: date
run: echo "date=$(date +'%Y%m%d%H%M')" >> "$GITHUB_OUTPUT"
- name: Build with Ant
run: ant -noinput -buildfile build.xml -Dtimestamp=${{steps.date.outputs.date}}
- name: Create Release
id: create_release
if: github.event_name == 'push' && matrix.os == 'ubuntu-latest'
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{steps.date.outputs.date}}
release_name: ${{steps.date.outputs.date}}
draft: false
prerelease: false
- name: Upload Release Asset
id: upload-release-asset
if: github.event_name == 'push' && matrix.os == 'ubuntu-latest'
uses: actions/upload-release-asset@v1.0.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: dist/CommunityModules-${{steps.date.outputs.date}}.jar
asset_name: CommunityModules-${{steps.date.outputs.date}}.jar
asset_content_type: application/zip
- name: Upload dateless Release Asset
id: upload-dateless-release-asset
if: github.event_name == 'push' && matrix.os == 'ubuntu-latest'
uses: actions/upload-release-asset@v1.0.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: dist/CommunityModules.jar
asset_name: CommunityModules.jar
asset_content_type: application/zip
- name: Upload Release Asset
id: upload-release-asset-deps
if: github.event_name == 'push' && matrix.os == 'ubuntu-latest'
uses: actions/upload-release-asset@v1.0.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: dist/CommunityModules-deps-${{steps.date.outputs.date}}.jar
asset_name: CommunityModules-deps-${{steps.date.outputs.date}}.jar
asset_content_type: application/zip
- name: Upload dateless Release Asset
id: upload-dateless-release-asset-deps
if: github.event_name == 'push' && matrix.os == 'ubuntu-latest'
uses: actions/upload-release-asset@v1.0.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: dist/CommunityModules-deps.jar
asset_name: CommunityModules-deps.jar
asset_content_type: application/zip
- name: Repository Dispatch
if: github.event.client_payload.source != 'tlaplus' && matrix.os == 'ubuntu-latest'
uses: peter-evans/repository-dispatch@v3
with:
token: ${{ secrets.REPO_DISPATCH_TOKEN }}
repository: tlaplus/tlaplus
event-type: tlaplus-dispatch
client-payload: '{"source": "CommunityModules"}'
tlaps:
name: Verify TLAPS proofs
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
asset: tlapm-1.6.0-pre-x86_64-linux-gnu.tar.gz
- os: macos-latest
asset: tlapm-1.6.0-pre-arm64-darwin.tar.gz
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v2
- name: Download TLAPS 1.6.0-pre
run: |
curl -fsSL -o tlapm.tar.gz \
"https://github.com/tlaplus/tlapm/releases/download/1.6.0-pre/${{ matrix.asset }}"
tar -xzf tlapm.tar.gz
echo "$PWD/tlapm/bin" >> "$GITHUB_PATH"
- name: Show tlapm version
run: tlapm --version
- name: Show tlapm configuration
run: tlapm --config
- name: Verify _proofs.tla modules
working-directory: modules
run: |
status=0
for proof in *_proofs.tla; do
echo "::group::Verifying $proof"
tlapm --cleanfp "$proof" || status=1
echo "::endgroup::"
done
exit $status