Test SnarkyJS against real networks on CI #2090
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: Build SnarkyJS | |
on: | |
push: | |
branches: | |
- main | |
- berkeley | |
- develop | |
pull_request: | |
branches: | |
- main | |
- berkeley | |
- develop | |
workflow_dispatch: {} | |
jobs: | |
Build-And-Test-Server: | |
timeout-minutes: 210 | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
test_type: | |
[ | |
'Simple integration tests', | |
'DEX integration tests', | |
'DEX integration test with proofs', | |
'Voting integration tests', | |
'Unit tests', | |
'Verification Key Regression Check', | |
'CommonJS test', | |
] | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v3 | |
- name: Setup Node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '18' | |
- name: Build SnarkyJS and Execute Tests | |
env: | |
TEST_TYPE: ${{ matrix.test_type }} | |
continue-on-error: false | |
run: | | |
git submodule update --init --recursive | |
npm ci | |
npm run build:node | |
touch profiling.md | |
sh run-ci-tests.sh | |
cat profiling.md >> $GITHUB_STEP_SUMMARY | |
Build-And-Test-Web: | |
timeout-minutes: 90 | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v3 | |
- name: Setup Node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '18' | |
- name: Install Node Dependencies | |
run: | | |
git submodule update --init --recursive | |
npm ci | |
- name: Install Playwright Browsers | |
run: npm run e2e:install | |
- name: Build SnarkyJS and Prepare the Web Server | |
run: | | |
npm run build:web | |
npm run e2e:prepare-server | |
- name: Execute E2E Tests | |
run: npm run test:e2e | |
- name: Upload E2E Test Artifacts | |
uses: actions/upload-artifact@v3 | |
if: always() | |
with: | |
name: e2e-tests-report | |
path: tests/report/ | |
retention-days: 30 | |
Release-on-NPM: | |
timeout-minutes: 180 | |
runs-on: ubuntu-latest | |
needs: [Build-And-Test-Server, Build-And-Test-Web] | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v3 | |
- name: Setup Node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '18' | |
- name: Build SnarkyJS | |
run: | | |
git submodule update --init --recursive | |
npm ci | |
npm run build:node | |
- name: Publish to NPM if version has changed | |
uses: JS-DevTools/npm-publish@v1 | |
if: github.ref == 'refs/heads/main' | |
with: | |
token: ${{ secrets.NPM_TOKEN }} | |
env: | |
INPUT_TOKEN: ${{ secrets.NPM_TOKEN }} | |
Release-mina-signer-on-NPM: | |
timeout-minutes: 180 | |
runs-on: ubuntu-latest | |
needs: [Build-And-Test-Server, Build-And-Test-Web] | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v3 | |
- name: Setup Node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '18' | |
- name: Build mina-signer | |
run: | | |
git submodule update --init --recursive | |
npm ci | |
cd src/mina-signer | |
npm ci | |
npm run prepublishOnly | |
- name: Publish to NPM if version has changed | |
uses: JS-DevTools/npm-publish@v1 | |
if: github.ref == 'refs/heads/main' | |
with: | |
token: ${{ secrets.NPM_TOKEN }} | |
package: './src/mina-signer/package.json' | |
env: | |
INPUT_TOKEN: ${{ secrets.NPM_TOKEN }} |