Skip to content

Use objects interface #762

Use objects interface

Use objects interface #762

Workflow file for this run

name: Metalift CI
on:
push:
branches:
- main
pull_request:
release:
types: [published]
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: psf/black@stable
with:
black_args: --check --diff .
version: "22.3.0"
mypy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
submodules: "recursive"
- uses: cachix/install-nix-action@v16
with:
nix_path: nixpkgs=channel:nixos-21.11
- name: Cache Nix store
id: cache
uses: actions/cache@v3
with:
path: ~/nix-cache
key: nix-flake-cache-${{ hashFiles('flake.nix') }}-${{ hashFiles('flake.lock') }}-${{ hashFiles('poetry.lock') }}
- name: Load Nix cache
if: steps.cache.outputs.cache-hit == 'true'
run: |
nix-store --import < ~/nix-cache/cache.nar
rm -rf ~/nix-cache
- name: Run mypy
shell: nix develop --command bash -e {0}
run: mypy .
- name: Save Nix cache
if: steps.cache.outputs.cache-hit != 'true'
run: ./ci-util/cache-nix.sh
build:
runs-on: ubuntu-latest
needs: [lint, mypy]
strategy:
matrix:
synth_cvc5: ["0", "1"]
steps:
- uses: actions/checkout@v2
with:
submodules: "recursive"
- uses: cachix/install-nix-action@v16
with:
nix_path: nixpkgs=channel:nixos-21.11
- name: Cache Nix store
id: cache
uses: actions/cache@v3
with:
path: ~/nix-cache
key: nix-flake-cache-${{ hashFiles('flake.nix') }}-${{ hashFiles('flake.lock') }}-${{ hashFiles('poetry.lock') }}
- name: Load Nix cache
if: steps.cache.outputs.cache-hit == 'true'
run: |
nix-store --import < ~/nix-cache/cache.nar
rm -rf ~/nix-cache
# https://github.com/Bogdanp/setup-racket-cache-example
- name: Cache Racket dependencies
id: cache-racket
if: matrix.synth_cvc5 == '0'
uses: actions/cache@v3
with:
path: |
~/.cache/racket
~/.local/share/racket
key: ${{ runner.os }}-racket-8.4-rosette-4.1
- name: Install Racket
if: matrix.synth_cvc5 == '0'
uses: Bogdanp/[email protected]
with:
architecture: 'x64'
distribution: 'full'
variant: 'CS'
version: '8.4'
- name: Install Rosette (4.1)
if: matrix.synth_cvc5 == '0'
run: |
raco pkg install --auto --skip-installed https://github.com/emina/rosette.git#10178550a0a21e6d80598d0f43c33c9228728f14
- name: Build LLVM Pass
shell: nix develop --command bash -e {0}
run: |
cd llvm-pass
mkdir build
cd build
cmake ..
make
cd ..
- name: Build Test Inputs
shell: nix develop --command bash -e {0}
run: |
cd tests/llvm
./compile-all
cd ../..
- name: Test Core Examples
shell: nix develop --command bash -e {0}
run: |
./run-core-tests.sh
env:
SYNTH_CVC5: ${{ matrix.synth_cvc5 }}
- name: Test Rosette-only Examples
if: matrix.synth_cvc5 == '0'
shell: nix develop --command bash -e {0}
run: |
./run-rosette-tests.sh
env:
SYNTH_CVC5: 0
- name: Test Docs
shell: nix develop --command bash -e {0}
run: python -m pytest --phmdoctest website/docs/tutorial/
if: matrix.synth_cvc5 == '0'
env:
SYNTH_CVC5: ${{ matrix.synth_cvc5 }}
- name: Save Nix cache
if: steps.cache.outputs.cache-hit != 'true'
run: ./ci-util/cache-nix.sh