diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..e3f14f1 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,32 @@ +# This workflow runs the tests for the circuits. +name: Test + +on: + push: + branches: [ "master" ] + pull_request: + branches: [ "master" ] + +jobs: + test: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: 18 + cache: 'npm' + - name: Cache circom + id: cache-circom + uses: actions/cache@v3 + with: + path: ~/.cargo/bin/circom + # Since the version of circom is specified in `scripts/install-circom.sh`, + # as long as the file doesn't change we can reuse the circom binary. + key: ${{ runner.os }}-circom-${{ hashFiles('./scripts/install-circom.sh') }} + - name: Install circom if not cached + run: sh ./scripts/install-circom.sh + - run: npm ci + - name: Run the tests + run: npm test diff --git a/scripts/circuit_prep.sh b/scripts/circuit-prep.sh similarity index 100% rename from scripts/circuit_prep.sh rename to scripts/circuit-prep.sh diff --git a/scripts/install-circom.sh b/scripts/install-circom.sh new file mode 100755 index 0000000..d4aea3b --- /dev/null +++ b/scripts/install-circom.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +circom_version=v2.1.4 + +if ! [ -x "$(command -v circom)" ]; then + git clone https://github.com/iden3/circom.git + cd circom + git checkout $circom_version + cargo build --release + cargo install --path circom +fi