Westlad/hardhat #1521
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: Check PR | |
on: | |
pull_request: | |
branches: [master] | |
env: | |
DOCKER_BUILDKIT: 1 # enable docker buildkit | |
# Whitelisting is disabled during testing for backwards compatibility with these tests. It must not be disabled in production. | |
WHITELISTING: disable | |
jobs: | |
dependency-review: | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: 'Checkout Repository' | |
uses: actions/checkout@v4 | |
- name: 'Dependency Review' | |
uses: actions/dependency-review-action@v4 | |
eslint-check: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: '18.19.1' | |
- name: eslint check | |
run: | | |
npm ci | |
npm run lint | |
general-tests: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: '18.19.1' | |
- name: General Tests | |
run: | | |
npm ci | |
npm run test-general-stuff | |
cd common-files | |
npm ci | |
npm run test | |
unit-tests: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: '18.19.1' | |
- name: Unit Tests | |
run: | | |
npm ci | |
cd common-files | |
npm ci | |
cd ../ | |
npm run unit-test | |
MODULUS=$(cat test/_certificates/root_ca.pub_key.modulus) \ | |
AUTHORITY_KEY_IDENTIFIER=$(cat test/_certificates/root_ca.authority_key) \ | |
INTERMEDIATE_CERTIFICATE_PATH=test/_certificates/intermediate_ca.crt \ | |
END_USER_CERTIFICATE_PATH=test/_certificates/user/user-1.crt \ | |
END_USER_PRIV_KEY_PATH=test/_certificates/user/user-1.priv_key \ | |
EXTENDED_KEY_USAGE_OID='0x06082b0601050507030800000000000000000000000000000000000000000000,0x06082b0601050507030400000000000000000000000000000000000000000000' \ | |
CERTIFICATE_POLICIES_OID='0x06032a0304000000000000000000000000000000000000000000000000000000,0x06032d0607000000000000000000000000000000000000000000000000000000' \ | |
npm run unit-test-x509 | |
unit-test-circuits: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: '18.19.1' | |
- name: Install Circom | |
run: | | |
curl https://sh.rustup.rs -sSf -o rust.sh | |
bash -f rust.sh -y | |
git clone https://github.com/iden3/circom.git | |
cd circom | |
cargo build --release | |
cargo install --path circom | |
- name: Unit Circuit Tests | |
run: | | |
npm ci | |
cd common-files | |
npm ci | |
cd ../nightfall-deployer | |
npm ci | |
cd ../ | |
npm run unit-test-circuits | |
client-authentication-test: | |
env: | |
AUTHENTICATION_KEY: a3322a85-7222-4713-907b-b569679b2dd9 | |
ENDPOINTS_WHITELISTED: '/commitment/salt\?.*, /contract-address/\w+/?' | |
NF_SERVICES_TO_START: blockchain,client,deployer,worker | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: '18.19.1' | |
- name: Start Containers | |
run: | | |
./bin/setup-nightfall | |
./bin/start-nightfall -g -d &> authentication-test.log &disown | |
- name: Wait for images to be ready | |
uses: Wandalen/[email protected] | |
with: | |
command: | | |
docker wait nightfall_3_deployer_1 | |
attempt_limit: 100 | |
attempt_delay: 20000 | |
- name: Debug logs - after image builds | |
if: always() | |
run: cat authentication-test.log | |
- name: Authentication Test - healthcheck OK | |
run: | | |
RESULT=$(curl -w "%{http_code}" -o /dev/null --silent http://localhost:8080/healthcheck) | |
if [ $RESULT != "200"]; then | |
exit 1 | |
fi | |
- name: Authentication Test - endpoint whitelisted_1 OK | |
run: | | |
RESULT=$(curl -w "%{http_code}" -o /dev/null --silent http://localhost:8080/commitment/salt/?salt=0123456789) | |
if [ $RESULT != "200"]; then | |
exit 1 | |
fi | |
- name: Authentication Test - endpoint whitelisted_2 OK | |
run: | | |
RESULT=$(curl -w "%{http_code}" -o /dev/null --silent http://localhost:8080/contract-address/State) | |
if [ $RESULT != "200"]; then | |
exit 1 | |
fi | |
- name: Authentication Test - non-whitelisted endpoint without auth key failure | |
run: | | |
RESULT=$(curl -w "%{http_code}" -o /dev/null --silent http://localhost:8080/commitment/) | |
if [ $RESULT != "401"]; then | |
exit 1 | |
fi | |
- name: Authentication Test - non-whitelisted endpoint OK | |
run: | | |
RESULT=$(curl -w "%{http_code}" -o /dev/null --silent --header "X-Api-Key: $(echo $AUTHENTICATION_KEY)" http://localhost:8080/commitment/) | |
if [ $RESULT != "200"]; then | |
exit 1 | |
fi | |
- name: Authentication Test - non-whitelisted endpoint with wrong auth key | |
run: | | |
RESULT=$(curl -w "%{http_code}" -o /dev/null --silent --header "X-Api-Key: 0123456789" http://localhost:8080/commitment/) | |
if [ $RESULT != "401"]; then | |
exit 1 | |
fi | |
- name: Authentication Test for the NF3 lib | |
run: | | |
CLIENT_AUTHENTICATION_KEY=$AUTHENTICATION_KEY npm run test-e2e-nf3lib | |
- name: Debug logs - after integration test run | |
if: always() | |
run: cat authentication-test.log | |
- name: If integration test failed, shutdown the Containers | |
if: failure() | |
run: npm run nightfall-down | |
- name: If integration test failed, upload logs files as artifacts | |
if: failure() | |
uses: actions/upload-artifact@master | |
with: | |
name: authentication-test-logs | |
path: ./authentication-test.log | |
circuits-test: | |
env: | |
CONFIRMATIONS: 1 | |
NF_SERVICES_TO_START: blockchain,client,deployer,mongodb,optimist,rabbitmq,worker | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: '18.19.1' | |
- name: Start Containers | |
run: | | |
./bin/setup-nightfall | |
./bin/start-nightfall -g -d &> circuit-test.log &disown | |
- name: Wait for images to be ready | |
uses: Wandalen/[email protected] | |
with: | |
command: | | |
docker wait nightfall_3_deployer_1 | |
attempt_limit: 100 | |
attempt_delay: 20000 | |
- name: Debug logs - after image builds | |
if: always() | |
run: cat circuit-test.log | |
- name: Circuits Test | |
run: | | |
npm run test-circuits | |
- name: Debug logs - after integration test run | |
if: always() | |
run: cat circuit-test.log | |
- name: If integration test failed, shutdown the Containers | |
if: failure() | |
run: npm run nightfall-down | |
- name: If integration test failed, upload logs files as artifacts | |
if: failure() | |
uses: actions/upload-artifact@master | |
with: | |
name: circuit-test-logs | |
path: ./circuit-test.log | |
anvil-protocol-test: | |
env: | |
CONFIRMATIONS: 1 | |
NF_SERVICES_TO_START: blockchain,client,deployer,mongodb,optimist,rabbitmq,worker | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: '18.19.1' | |
- name: Start Containers | |
run: | | |
./bin/setup-nightfall | |
./bin/start-nightfall -g -d &> anvil-test.log &disown | |
- name: Wait for images to be ready | |
uses: Wandalen/[email protected] | |
with: | |
command: | | |
docker wait nightfall_3_deployer_1 | |
attempt_limit: 100 | |
attempt_delay: 20000 | |
- name: Debug logs - after image builds | |
if: always() | |
run: cat anvil-test.log | |
- name: Run integration test | |
run: | | |
npm run test-e2e-protocol | |
- name: Debug logs - after integration test run | |
if: always() | |
run: cat anvil-test.log | |
- name: If integration test failed, shutdown the Containers | |
if: failure() | |
run: npm run nightfall-down | |
- name: If integration test failed, upload logs files as artifacts | |
if: failure() | |
uses: actions/upload-artifact@master | |
with: | |
name: anvil-test-logs | |
path: ./anvil-test.log | |
anvil-erc20-test: | |
env: | |
CONFIRMATIONS: 1 | |
NF_SERVICES_TO_START: blockchain,client,deployer,mongodb,optimist,rabbitmq,worker | |
DEPLOY_MOCKED_SANCTIONS_CONTRACT: true | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: '18.19.1' | |
- name: Start Containers | |
run: | | |
./bin/setup-nightfall | |
./bin/start-nightfall -g -d &> anvil-test.log &disown | |
- name: Wait for images to be ready | |
uses: Wandalen/[email protected] | |
with: | |
command: | | |
docker wait nightfall_3_deployer_1 | |
attempt_limit: 100 | |
attempt_delay: 20000 | |
- name: Debug logs - after image builds | |
if: always() | |
run: cat anvil-test.log | |
- name: Run integration test | |
run: | | |
npm run test-erc20-tokens | |
- name: Debug logs - after integration test run | |
if: always() | |
run: | | |
cat anvil-test.log | |
- name: If integration test failed, shutdown the Containers | |
if: failure() | |
run: npm run nightfall-down | |
- name: If integration test failed, upload logs files as artifacts | |
if: failure() | |
uses: actions/upload-artifact@master | |
with: | |
name: anvil-test-logs | |
path: ./anvil-test.log | |
anvil-erc721-test: | |
env: | |
CONFIRMATIONS: 1 | |
NF_SERVICES_TO_START: blockchain,client,deployer,mongodb,optimist,rabbitmq,worker | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: '18.19.1' | |
- name: Start Containers | |
run: | | |
./bin/setup-nightfall | |
./bin/start-nightfall -g -d &> anvil-test.log &disown | |
- name: Wait for images to be ready | |
uses: Wandalen/[email protected] | |
with: | |
command: | | |
docker wait nightfall_3_deployer_1 | |
attempt_limit: 100 | |
attempt_delay: 20000 | |
- name: Debug logs - after image builds | |
if: always() | |
run: cat anvil-test.log | |
- name: Run integration test | |
run: | | |
npm run test-erc721-tokens | |
- name: Debug logs - after integration test run | |
if: always() | |
run: cat anvil-test.log | |
- name: If integration test failed, shutdown the Containers | |
if: failure() | |
run: npm run nightfall-down | |
- name: If integration test failed, upload logs files as artifacts | |
if: failure() | |
uses: actions/upload-artifact@master | |
with: | |
name: anvil-test-logs | |
path: ./anvil-test.log | |
anvil-erc1155-test: | |
env: | |
CONFIRMATIONS: 1 | |
NF_SERVICES_TO_START: blockchain,client,deployer,mongodb,optimist,rabbitmq,worker | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: '18.19.1' | |
- name: Start Containers | |
run: | | |
./bin/setup-nightfall | |
./bin/start-nightfall -g -d &> anvil-test.log &disown | |
- name: Wait for images to be ready | |
uses: Wandalen/[email protected] | |
with: | |
command: | | |
docker wait nightfall_3_deployer_1 | |
attempt_limit: 100 | |
attempt_delay: 20000 | |
- name: Debug logs - after image builds | |
if: always() | |
run: cat anvil-test.log | |
- name: Run integration test | |
run: | | |
npm run test-erc1155-tokens | |
- name: Debug logs - after integration test run | |
if: always() | |
run: cat anvil-test.log | |
- name: If integration test failed, shutdown the Containers | |
if: failure() | |
run: npm run nightfall-down | |
- name: If integration test failed, upload logs files as artifacts | |
if: failure() | |
uses: actions/upload-artifact@master | |
with: | |
name: anvil-test-logs | |
path: ./anvil-test.log | |
anvil-tokenisation-l2-test: | |
env: | |
CONFIRMATIONS: 1 | |
NF_SERVICES_TO_START: blockchain,client,deployer,mongodb,optimist,rabbitmq,worker | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: '18.19.1' | |
- name: Start Containers | |
run: | | |
./bin/setup-nightfall | |
./bin/start-nightfall -g -d &> anvil-test.log &disown | |
- name: Wait for images to be ready | |
uses: Wandalen/[email protected] | |
with: | |
command: | | |
docker wait nightfall_3_deployer_1 | |
attempt_limit: 100 | |
attempt_delay: 20000 | |
- name: Debug logs - after image builds | |
if: always() | |
run: cat anvil-test.log | |
- name: Run integration test | |
run: | | |
npm run test-l2tokenisation | |
- name: Debug logs - after integration test run | |
if: always() | |
run: cat anvil-test.log | |
- name: If integration test failed, shutdown the Containers | |
if: failure() | |
run: npm run nightfall-down | |
- name: If integration test failed, upload logs files as artifacts | |
if: failure() | |
uses: actions/upload-artifact@master | |
with: | |
name: anvil-test-logs | |
path: ./anvil-test.log | |
x509-test: | |
env: | |
WHITELISTING: enable | |
CONFIRMATIONS: 1 | |
NF_SERVICES_TO_START: blockchain,client,deployer,mongodb,optimist,rabbitmq,worker | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: '18.19.1' | |
- name: Start Containers | |
run: | | |
./bin/setup-nightfall | |
./bin/start-nightfall -g -d &> x509-test.log &disown | |
- name: Wait for images to be ready | |
uses: Wandalen/[email protected] | |
with: | |
command: | | |
docker wait nightfall_3_deployer_1 | |
attempt_limit: 100 | |
attempt_delay: 20000 | |
- name: Debug logs - after image builds | |
if: always() | |
run: cat x509-test.log | |
- name: Run integration test | |
run: npm run test-x509 | |
- name: Debug logs - after integration test run | |
if: always() | |
run: cat x509-test.log | |
- name: If integration test failed, shutdown the Containers | |
if: failure() | |
run: docker-compose -f docker-compose.yml -f docker-compose.anvil.yml down -v | |
- name: If integration test failed, upload logs files as artifacts | |
if: failure() | |
uses: actions/upload-artifact@master | |
with: | |
name: x509-test-logs | |
path: ./x509-test.log | |
administrator-test: | |
runs-on: ubuntu-20.04 | |
env: | |
CONFIRMATIONS: 1 | |
NF_SERVICES_TO_START: administrator,blockchain,client,deployer,mongodb,optimist,rabbitmq,worker | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: '18.19.1' | |
- name: Start Containers | |
run: | | |
./bin/setup-nightfall | |
./bin/start-nightfall -g -d &> administrator-test.log &disown | |
- name: Wait for images to be ready | |
uses: Wandalen/[email protected] | |
with: | |
command: | | |
docker wait nightfall_3_deployer_1 | |
attempt_limit: 100 | |
attempt_delay: 20000 | |
- name: Debug logs - after image builds | |
if: always() | |
run: cat administrator-test.log | |
- name: Run integration test | |
run: | | |
npm run test-administrator | |
- name: Debug logs - after integration test run | |
if: always() | |
run: cat administrator-test.log | |
- name: If integration test failed, shutdown the Containers | |
if: failure() | |
run: npm run nightfall-down | |
- name: If integration test failed, upload logs files as artifacts | |
if: failure() | |
uses: actions/upload-artifact@master | |
with: | |
name: administrator-test-logs | |
path: ./administrator-test.log | |
optimist-sync-test: | |
runs-on: ubuntu-22.04 | |
env: | |
CONFIRMATIONS: 1 | |
NF_SERVICES_TO_START: blockchain,client,deployer,mongodb,optimist,rabbitmq,worker | |
steps: | |
- uses: actions/checkout@master | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: '18.19.1' | |
- name: Start Containers | |
run: | | |
./bin/setup-nightfall | |
./bin/start-nightfall -g -d &> optimist-sync-test.log &disown | |
- name: Wait for images to be ready | |
uses: Wandalen/[email protected] | |
with: | |
command: | | |
docker wait nightfall_3_deployer_1 | |
attempt_limit: 100 | |
attempt_delay: 20000 | |
- name: Debug logs - after image builds | |
if: always() | |
run: cat optimist-sync-test.log | |
- name: Run optimist sync test | |
run: | | |
npm run test-optimist-sync | |
- name: Debug logs - after optimist sync test run | |
if: always() | |
run: cat optimist-sync-test.log | |
- name: If optimist sync test failed, shutdown the Containers | |
if: failure() | |
run: npm run nightfall-down | |
- name: If optimist sync test failed, upload logs files as artifacts | |
if: failure() | |
uses: actions/upload-artifact@master | |
with: | |
name: optimist-sync-test-logs | |
path: ./optimist-sync-test.log | |
adversary-test: | |
env: | |
CONFIRMATIONS: 1 | |
NF_SERVICES_TO_START: blockchain,client,deployer,mongodb,optimist,rabbitmq,worker,lazy-optimist,bad-client | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: '18.19.1' | |
- name: Build adversary | |
run: npm run build-adversary | |
- name: Start Containers | |
run: | | |
./bin/setup-nightfall | |
./bin/start-nightfall -g -d -a &> adversary-test.log &disown | |
- name: Wait for images to be ready | |
uses: Wandalen/[email protected] | |
with: | |
command: | | |
docker wait nightfall_3_deployer_1 | |
attempt_limit: 100 | |
attempt_delay: 20000 | |
- name: debug logs - after container startup | |
if: always() | |
run: cat adversary-test.log | |
- name: Run adversary test | |
run: | | |
VERBOSE=true npm run test-adversary | |
- name: debug logs - after integration test run | |
if: always() | |
run: cat adversary-test.log | |
- name: If adversary test failed, shutdown the Containers | |
if: failure() | |
run: | | |
npm run nightfall-down | |
- name: If integration test failed, upload logs files as artifacts | |
if: failure() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: adversary-test-logs | |
path: ./adversary-test.log | |
ping-pong-test: | |
env: | |
CONFIRMATIONS: 1 | |
NF_SERVICES_TO_START: blockchain,deployer,worker | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: '18.19.1' | |
- name: Build adversary | |
run: npm run build-adversary | |
- name: Start Containers | |
run: | | |
./bin/setup-nightfall | |
./bin/start-multiproposer-test-env -g &> ping-pong-test.log &disown | |
- name: Wait for images to be ready | |
uses: Wandalen/[email protected] | |
with: | |
command: | | |
docker wait nightfall_3_deployer_1 | |
attempt_limit: 100 | |
attempt_delay: 20000 | |
- name: Debug logs - after image builds | |
if: always() | |
run: cat ping-pong-test.log | |
- name: 'Check client1 liveliness' | |
uses: Wandalen/[email protected] | |
with: | |
command: | | |
curl -i http://localhost:8083/healthcheck | |
attempt_limit: 10 | |
attempt_delay: 30000 | |
- name: 'Check client2 liveliness' | |
uses: Wandalen/[email protected] | |
with: | |
command: | | |
curl -i http://localhost:8086/healthcheck | |
attempt_limit: 10 | |
attempt_delay: 30000 | |
- name: Run ping-pong test | |
run: | | |
npm ci | |
docker wait nightfall_3_deployer_1 | |
npm run ping-pong | |
- name: If integration test failed, shutdown the Containers | |
if: failure() | |
run: | | |
npm run nightfall-down | |
- name: debug logs - after integration test run | |
if: always() | |
run: cat ping-pong-test.log | |
- name: If integration test failed, upload logs files as artifacts | |
if: failure() | |
uses: actions/upload-artifact@master | |
with: | |
name: ping-pong-test-logs | |
path: ./ping-pong-test.log | |
test-gas: | |
env: | |
MAX_BLOCK_SIZE: 25000 | |
CONFIRMATIONS: 1 | |
NF_SERVICES_TO_START: blockchain,client,deployer,mongodb,optimist,rabbitmq,worker | |
name: check gas transactions per block | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: '18.19.1' | |
- name: Start Containers with anvil | |
run: | | |
./bin/setup-nightfall | |
./bin/start-nightfall -g -d &> test-gas.log &disown | |
- name: Wait for images to be ready | |
uses: Wandalen/[email protected] | |
with: | |
command: | | |
docker wait nightfall_3_deployer_1 | |
attempt_limit: 100 | |
attempt_delay: 20000 | |
- name: Debug logs - after container startup | |
if: always() | |
run: cat test-gas.log | |
- name: Run tx-gas.mjs test suites | |
run: | | |
VERBOSE=true npm run test-gas | |
- name: Debug logs - after integration test run | |
if: always() | |
run: cat test-gas.log | |
- name: If integration test failed, shutdown the Containers | |
if: failure() | |
run: npm run nightfall-down | |
- name: If integration test failed, upload logs files as artifacts | |
if: failure() | |
uses: actions/upload-artifact@master | |
with: | |
name: test-gas-logs | |
path: ./test-gas.log | |
test-apps: | |
name: check apps for liveliness | |
runs-on: ubuntu-20.04 | |
env: | |
NF_SERVICES_TO_START: blockchain,deployer,optimist,worker | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: '18.19.1' | |
- name: Start Containers with anvil | |
run: | | |
./bin/setup-nightfall | |
./bin/start-nightfall -g -d &> test-apps.log &disown | |
- name: Wait for images to be ready | |
uses: Wandalen/[email protected] | |
with: | |
command: | | |
docker wait nightfall_3_deployer_1 | |
attempt_limit: 100 | |
attempt_delay: 20000 | |
- name: Debug logs - after container startup | |
if: always() | |
run: cat test-apps.log | |
- name: Boot up the apps | |
run: | | |
./bin/start-apps &> test-proposer.log &disown | |
- name: 'Check proposer liveliness' | |
uses: Wandalen/[email protected] | |
with: | |
command: | | |
curl -i http://localhost:8092/healthcheck | |
attempt_limit: 10 | |
attempt_delay: 30000 | |
- name: 'Check challenger liveliness' | |
uses: Wandalen/[email protected] | |
with: | |
command: | | |
curl -i http://localhost:8192/healthcheck | |
attempt_limit: 10 | |
attempt_delay: 30000 | |
- name: Debug logs - after integration test run | |
if: always() | |
run: | | |
cat test-apps.log | |
cat test-proposer.log | |
- name: If integration test failed, shutdown the Containers | |
if: failure() | |
run: npm run nightfall-down | |
- name: If integration test failed, upload logs files as artifacts | |
if: failure() | |
uses: actions/upload-artifact@master | |
with: | |
name: test-apps-logs | |
path: | | |
./test-apps.log | |
./test-proposer.log | |
periodic-payment-test: | |
env: | |
CONFIRMATIONS: 1 | |
NF_SERVICES_TO_START: blockchain,client,deployer,mongodb,optimist,rabbitmq,worker | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: '18.19.1' | |
- name: Start Containers | |
run: | | |
./bin/setup-nightfall | |
./bin/start-nightfall -g -d &> periodic-payment-test.log &disown | |
- name: Wait for images to be ready | |
uses: Wandalen/[email protected] | |
with: | |
command: | | |
docker wait nightfall_3_deployer_1 | |
attempt_limit: 100 | |
attempt_delay: 20000 | |
- name: Debug logs - after image builds | |
if: always() | |
run: cat periodic-payment-test.log | |
- name: Run integration test | |
run: | | |
npm run test-periodic-payment | |
- name: Debug logs - after integration test run | |
if: always() | |
run: cat periodic-payment-test.log | |
- name: If integration test failed, shutdown the Containers | |
if: failure() | |
run: npm run nightfall-down | |
- name: If integration test failed, upload logs files as artifacts | |
if: failure() | |
uses: actions/upload-artifact@master | |
with: | |
name: periodic-payment-test-logs | |
path: ./periodic-payment-test.log |