protocols/arrays #116
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: CI/CD | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- master | |
tags: | |
- "v*.*.*" | |
pull_request: | |
branches: | |
- master | |
jobs: | |
setup: | |
name: Setup environment & Install Dependencies | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Set up Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '20' | |
- name: Cache Node modules | |
uses: actions/cache@v2 | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} | |
- name: Install dependencies | |
run: npm install | |
format: | |
name: Format | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Set up Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '20' | |
- name: Cache Node modules | |
uses: actions/cache@v2 | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} | |
- name: Install dependencies | |
run: npm install | |
- name: Check Code Formatting | |
run: npm run prettier | |
jest-test: | |
name: Jest Test | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Set up Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '20' | |
- name: Install dependencies | |
run: npm install | |
- name: Transpile TypeScript files | |
run: tsc -p lib/common/tsconfig.json | |
- name: Run Jest Tests | |
run: npx jest --coverage --runInBand tests/regr-tests --silent | |
cypress-test: | |
name: Cypress Test | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Set up Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '20' | |
- name: Install dependencies | |
run: npm install | |
- name: Transpile TypeScript files | |
run: tsc -p lib/common/tsconfig.json | |
- name: Run Cypress Test for Array MPC as a Service | |
run: | | |
echo "Running Cypress test: array-mpc-as-a-service" | |
node demos/array-mpc-as-a-service/server.js & echo $! > SERVER_PID | |
sleep 10 | |
echo "Initiating three computational parties" | |
node demos/array-mpc-as-a-service/compute-party.js config.json & | |
node demos/array-mpc-as-a-service/compute-party.js config.json & | |
node demos/array-mpc-as-a-service/compute-party.js config.json & | |
sleep 5 | |
echo "Running the cypress test for two input parties" | |
npx cypress run --config-file demos/cypress.config.ts --spec "demos/array-mpc-as-a-service/test.cy.ts" | |
kill $(cat SERVER_PID) || true | |
- name: Run Cypress Tests for Standard Tests | |
run: | | |
TESTS=("array-concat" "array-binary-search" "array-merge-sort" "array-substring" "array-bubble-sort" "array-shell-sort" "the-valentine-question" "array-shuffle") | |
for TEST in "${TESTS[@]}" | |
do | |
echo "Running Cypress test: $TEST" | |
node demos/support/server.ts & echo $! > SERVER_PID | |
sleep 5 | |
npx cypress run --config-file demos/cypress.config.ts --spec "demos/$TEST/test.cy.ts" | |
kill $(cat SERVER_PID) | |
done |