Skip to content

Bi-abduction working #844

Bi-abduction working

Bi-abduction working #844

Workflow file for this run

name: CI
on:
push:
branches: [master]
pull_request:
branches: [master]
merge_group:
env:
NODE_VERSION: 18
DOCKER_TEST_TAG: gillian:test
jobs:
build:
strategy:
fail-fast: false
matrix:
operating-system: [macos-latest, ubuntu-latest]
runs-on: ${{ matrix.operating-system }}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
- uses: actions/setup-python@v4
with:
python-version: "3.10"
- name: Installing esy
run: sudo npm install -g [email protected] --unsafe-perm
- name: Installing Python prerequisites
run: sudo pip install sphinx furo
- name: Restore Cache
id: restore-cache
uses: actions/cache@v3
with:
path: _export
key: ${{ runner.os }}-esy-0.6.12-${{ hashFiles('esy.lock/index.json') }}
restore-keys: |
${{ runner.os }}-esy-0.6.12-
- name: Esy install
run: "esy install"
- name: Import Cache
run: |
esy import-dependencies _export
rm -rf _export
- name: Esy build
run: "esy build"
id: esy-build
- name: Basic checks
run: "esy test"
- name: Wisl checks
run: "./wisl/scripts/quicktests.sh"
- name: Format checking
run: "esy format-check"
- name: Building release
run: "esy release"
- name: Sending artifact for next jobs
uses: actions/upload-artifact@v3
with:
name: ${{ runner.os }}-release
path: _release
- name: Building docs
run: "esy docs"
if: runner.os == 'Linux'
- name: Sending docs artifact
uses: actions/upload-artifact@v3
with:
name: ${{ runner.os }}-docs
path: _docs
if: runner.os == 'Linux'
- name: Setting dependency cache
run: |
esy cleanup .
esy export-dependencies
if: steps.restore-cache.outputs.cache-hit != 'true'
gillian_c_tests:
strategy:
matrix:
operating-system: [macos-latest, ubuntu-latest]
runs-on: ${{ matrix.operating-system }}
needs: build
steps:
- name: download release
uses: actions/download-artifact@v3
with:
name: ${{ runner.os }}-release
path: release
- name: setting up node
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
- name: install release
run: |
yarn global add file://$(pwd)/release
echo "$(yarn global bin)" >> $GITHUB_PATH
- name: checkout project
uses: actions/checkout@v3
with:
path: Gillian
- name: init env
run: "Gillian-C/scripts/setup_environment.sh"
working-directory: "Gillian"
- name: Test All
run: "./testAll.sh"
working-directory: "Gillian/Gillian-C/environment/"
- name: Test Amazon
run: "make"
working-directory: "Gillian/Gillian-C/examples/amazon/"
gillian_js_tests:
strategy:
matrix:
operating-system: [macos-latest, ubuntu-latest]
runs-on: ${{ matrix.operating-system }}
needs: build
steps:
- name: download release
uses: actions/download-artifact@v3
with:
name: ${{ runner.os }}-release
path: release
- name: setting up node
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
- name: install release
run: |
yarn global add file://$(pwd)/release
echo "$(yarn global bin)" >> $GITHUB_PATH
- name: checkout project
uses: actions/checkout@v3
with:
path: Gillian
- name: init env
run: "Gillian-JS/scripts/setup_environment.sh"
working-directory: "Gillian"
- name: Test JaVerT
run: "./testJaVerT.sh"
working-directory: "Gillian/Gillian-JS/environment/"
# - name: Test Amazon
# run: "make"
# working-directory: "Gillian/Gillian-JS/Examples/Amazon/"
test262:
if: ( github.event_name == 'pull_request') && ( github.base_ref == 'master')
strategy:
matrix:
operating-system: [macos-latest]
runs-on: ${{ matrix.operating-system }}
needs: build
steps:
- name: download release
uses: actions/download-artifact@v3
with:
name: ${{ runner.os }}-release
path: release
- name: setting up node
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
- name: install release
run: |
yarn global add file://$(pwd)/release
echo "$(yarn global bin)" >> $GITHUB_PATH
- name: checkout project
uses: actions/checkout@v3
with:
repository: GillianPlatform/javert-test262
path: test262
ref: 93e0d0b04093cabc3234a776eec5cc3e165f3b1a
- name: Test262
run: "gillian-js test262 test262/test --ci"
collections-c:
if: ( github.event_name == 'pull_request') && ( github.base_ref == 'master')
strategy:
matrix:
operating-system: [macos-latest]
runs-on: ${{ matrix.operating-system }}
needs: build
steps:
- name: download release
uses: actions/download-artifact@v3
with:
name: ${{ runner.os }}-release
path: release
- name: setting up node
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
- name: install release
run: |
yarn global add file://$(pwd)/release
echo "$(yarn global bin)" >> $GITHUB_PATH
- name: checkout project
uses: actions/checkout@v3
with:
repository: GillianPlatform/collections-c-for-gillian
path: collections-c
ref: c14d61c5d636e0bf5e4d608ec0e880575ddef6a7
- name: Symbolic Testing Collections-C
run: "./runGillianTests.sh"
working-directory: collections-c
# test-Buckets:
# if: ( github.event_name == 'pull_request') && ( github.base_ref == 'master')
# strategy:
# matrix:
# operating-system: [macos-latest]
# runs-on: ${{ matrix.operating-system }}
# needs: build
# steps:
# - name: download release
# uses: actions/download-artifact@v3
# with:
# name: ${{ runner.os }}-release
# path: release
# - name: setting up node
# uses: actions/setup-node@v3
# with:
# node-version: ${{ env.NODE_VERSION }}
# - name: install release
# run: |
# yarn global add file://$(pwd)/release
# echo "$(yarn global bin)" >> $GITHUB_PATH
# - name: checkout project
# uses: actions/checkout@v3
# with:
# path: Gillian
# - name: Symbolic Testing Buckets.js
# run: "gillian-js cosette-bulk Gillian/Gillian-JS/Examples/Cosette/Buckets --ci"
test-docker:
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v3
- name: set up docker buildx
uses: docker/setup-buildx-action@v2
- name: Restore Cache
id: restore-cache
uses: actions/cache@v3
with:
path: _export
key: docker-esy-0.6.12-${{ hashFiles('esy.lock/index.json') }}
restore-keys: |
docker-esy-0.6.12-
- name: build and export to docker
uses: docker/build-push-action@v3
with:
context: .
load: true
tags: ${{ env.DOCKER_TEST_TAG }}
- name: test
run: docker run --rm ${{ env.DOCKER_TEST_TAG }} esy test
- name: extract dependencies from docker
run: |
rm -rf _export
docker run --name deps ${{ env.DOCKER_TEST_TAG }} bash -c "esy cleanup . && esy export-dependencies"
docker cp deps:/app/Gillian/_export ./
docker rm deps
if: steps.restore-cache.outputs.cache-hit != 'true'
deploy-docs:
if: github.ref == 'refs/heads/master'
runs-on: ubuntu-latest
needs: [build]
strategy:
fail-fast: false
steps:
- name: Download built docs
uses: actions/download-artifact@v3
with:
name: ${{ runner.os }}-docs
path: docs
- name: Deploy docs
run: |
git config --global user.email "<>"
git config --global user.name "GitHub Actions"
git clone https://${{ secrets.DOCS_USER }}:${{ secrets.DOCS_TOKEN }}@github.com/GillianPlatform/GillianPlatform.github.io.git docs-repo --branch master
cd docs-repo
rm * -rf
cp -r ../docs/* .
git add -A
git commit -m "Deployment from $GITHUB_REPOSITORY@$GITHUB_SHA"
git push --force