Skip to content

Reff_App_Test_Develop #936

Reff_App_Test_Develop

Reff_App_Test_Develop #936

# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
name: Reference App QA - Development
on:
push:
branches: [ develop ]
repository_dispatch:
types:
- Reff_App_Test_Develop
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [ 16.x ]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps:
- name: Event Information
if: github.event.action == 'Reff_App_Test_Develop'
run: |
echo "Event '${{ github.event.action }}' received from '${{ github.event.client_payload.repository }}'"
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- run: npm install
- name: Compile contracts
env:
BLOCKCHAIN_PROVIDER_URL: ${{ secrets.BLOCKCHAIN_PROVIDER_URL_ETH_DEVELOP }}
REGISTRY_CONTRACT_ADDRESS: ${{ secrets.REGISTRY_CONTRACT_ADDRESS_ETH_DEVELOP }}
run: npm run compile
- name: Solidity Lint
run: npm run lint:sol
- name: JS Lint
run: npm run lint:ts
- name: Run coders examples
run: npx hardhat run scripts/coders.ts
- name: Unit tests for BSC
if: ${{ always() }}
env:
BLOCKCHAIN_PROVIDER_URL: ${{ secrets.BLOCKCHAIN_PROVIDER_URL_BSC_DEVELOP }}
REGISTRY_CONTRACT_ADDRESS: ${{ secrets.REGISTRY_CONTRACT_ADDRESS_BSC_DEVELOP }}
run: npm run test
- name: Run API Client examples for BSC
if: ${{ always() }}
env:
BLOCKCHAIN_PROVIDER_URL: ${{ secrets.BLOCKCHAIN_PROVIDER_URL_BSC_DEVELOP }}
REGISTRY_CONTRACT_ADDRESS: ${{ secrets.REGISTRY_CONTRACT_ADDRESS_BSC_DEVELOP }}
API_BASE_URL: ${{ secrets.API_BASE_URL_DEVELOP }}
API_KEY: ${{ secrets.API_KEY_DEVELOP }}
CHAIN_ID: ${{ secrets.CHAIN_ID_BSC }}
run: npx hardhat run scripts/api-client.ts
- name: Run proof verification example for BSC
if: ${{ always() }}
env:
BLOCKCHAIN_PROVIDER_URL: ${{ secrets.BLOCKCHAIN_PROVIDER_URL_BSC_DEVELOP }}
REGISTRY_CONTRACT_ADDRESS: ${{ secrets.REGISTRY_CONTRACT_ADDRESS_BSC_DEVELOP }}
API_BASE_URL: ${{ secrets.API_BASE_URL_DEVELOP }}
API_KEY: ${{ secrets.API_KEY_DEVELOP }}
CHAIN_ID: ${{ secrets.CHAIN_ID_BSC }}
run: npx hardhat run scripts/proof-verification.ts
- name: Unit tests for ETH
if: ${{ always() }}
env:
BLOCKCHAIN_PROVIDER_URL: ${{ secrets.BLOCKCHAIN_PROVIDER_URL_ETH_DEVELOP }}
REGISTRY_CONTRACT_ADDRESS: ${{ secrets.REGISTRY_CONTRACT_ADDRESS_ETH_DEVELOP }}
run:
npm run test
- name: Run API Client examples for ETH
if: ${{ always() }}
env:
BLOCKCHAIN_PROVIDER_URL: ${{ secrets.BLOCKCHAIN_PROVIDER_URL_ETH_DEVELOP }}
REGISTRY_CONTRACT_ADDRESS: ${{ secrets.REGISTRY_CONTRACT_ADDRESS_ETH_DEVELOP }}
API_BASE_URL: ${{ secrets.API_BASE_URL_DEVELOP }}
API_KEY: ${{ secrets.API_KEY_DEVELOP }}
CHAIN_ID: ${{ secrets.CHAIN_ID_ETH }}
run:
npx hardhat run scripts/api-client.ts
- name: Run proof verification example for ETH
if: ${{ always() }}
env:
BLOCKCHAIN_PROVIDER_URL: ${{ secrets.BLOCKCHAIN_PROVIDER_URL_ETH_DEVELOP }}
REGISTRY_CONTRACT_ADDRESS: ${{ secrets.REGISTRY_CONTRACT_ADDRESS_ETH_DEVELOP }}
API_BASE_URL: ${{ secrets.API_BASE_URL_DEVELOP }}
API_KEY: ${{ secrets.API_KEY_DEVELOP }}
CHAIN_ID: ${{ secrets.CHAIN_ID_ETH }}
run: npx hardhat run scripts/proof-verification.ts
- name: Unit tests for POLYGON
if: ${{ always() }}
env:
BLOCKCHAIN_PROVIDER_URL: ${{ secrets.BLOCKCHAIN_PROVIDER_URL_POLYGON_DEVELOP }}
REGISTRY_CONTRACT_ADDRESS: ${{ secrets.REGISTRY_CONTRACT_ADDRESS_POLYGON_DEVELOP }}
run:
npm run test
- name: Run API Client examples for POLYGON
if: ${{ always() }}
env:
BLOCKCHAIN_PROVIDER_URL: ${{ secrets.BLOCKCHAIN_PROVIDER_URL_POLYGON_DEVELOP }}
REGISTRY_CONTRACT_ADDRESS: ${{ secrets.REGISTRY_CONTRACT_ADDRESS_POLYGON_DEVELOP }}
API_BASE_URL: ${{ secrets.API_BASE_URL_DEVELOP }}
API_KEY: ${{ secrets.API_KEY_DEVELOP }}
CHAIN_ID: ${{ secrets.CHAIN_ID_POLYGON }}
run:
npx hardhat run scripts/api-client.ts
- name: Run proof verification example for POLYGON
if: ${{ always() }}
env:
BLOCKCHAIN_PROVIDER_URL: ${{ secrets.BLOCKCHAIN_PROVIDER_URL_POLYGON_DEVELOP }}
REGISTRY_CONTRACT_ADDRESS: ${{ secrets.REGISTRY_CONTRACT_ADDRESS_POLYGON_DEVELOP }}
API_BASE_URL: ${{ secrets.API_BASE_URL_DEVELOP }}
API_KEY: ${{ secrets.API_KEY_DEVELOP }}
CHAIN_ID: ${{ secrets.CHAIN_ID_POLYGON }}
run: npx hardhat run scripts/proof-verification.ts
- name: Unit tests for AVAX
if: ${{ always() }}
env:
BLOCKCHAIN_PROVIDER_URL: ${{ secrets.BLOCKCHAIN_PROVIDER_URL_AVAX_DEVELOP }}
REGISTRY_CONTRACT_ADDRESS: ${{ secrets.REGISTRY_CONTRACT_ADDRESS_AVAX_DEVELOP }}
run:
npm run test
- name: Run API Client examples for AVAX
if: ${{ always() }}
env:
BLOCKCHAIN_PROVIDER_URL: ${{ secrets.BLOCKCHAIN_PROVIDER_URL_AVAX_DEVELOP }}
REGISTRY_CONTRACT_ADDRESS: ${{ secrets.REGISTRY_CONTRACT_ADDRESS_AVAX_DEVELOP }}
API_BASE_URL: ${{ secrets.API_BASE_URL_DEVELOP }}
API_KEY: ${{ secrets.API_KEY_DEVELOP }}
CHAIN_ID: ${{ secrets.CHAIN_ID_AVAX }}
run:
npx hardhat run scripts/api-client.ts
- name: Run proof verification example for AVAX
if: ${{ always() }}
env:
BLOCKCHAIN_PROVIDER_URL: ${{ secrets.BLOCKCHAIN_PROVIDER_URL_AVAX_DEVELOP }}
REGISTRY_CONTRACT_ADDRESS: ${{ secrets.REGISTRY_CONTRACT_ADDRESS_AVAX_DEVELOP }}
API_BASE_URL: ${{ secrets.API_BASE_URL_DEVELOP }}
API_KEY: ${{ secrets.API_KEY_DEVELOP }}
CHAIN_ID: ${{ secrets.CHAIN_ID_AVAX }}
run: npx hardhat run scripts/proof-verification.ts
# Arbitrum
- name: Unit tests for Arbitrum
if: ${{ always() }}
env:
BLOCKCHAIN_PROVIDER_URL: ${{ secrets.BLOCKCHAIN_PROVIDER_URL_ARBITRUM_DEVELOP }}
REGISTRY_CONTRACT_ADDRESS: ${{ secrets.REGISTRY_CONTRACT_ADDRESS_ARBITRUM_DEVELOP }}
run:
npm run test
- name: Run API Client examples for Arbitrum
if: ${{ always() }}
env:
BLOCKCHAIN_PROVIDER_URL: ${{ secrets.BLOCKCHAIN_PROVIDER_URL_ARBITRUM_DEVELOP }}
REGISTRY_CONTRACT_ADDRESS: ${{ secrets.REGISTRY_CONTRACT_ADDRESS_ARBITRUM_DEVELOP }}
API_BASE_URL: ${{ secrets.API_BASE_URL_DEVELOP }}
API_KEY: ${{ secrets.API_KEY_DEVELOP }}
CHAIN_ID: ${{ secrets.CHAIN_ID_ARBITRUM }}
run:
npx hardhat run scripts/api-client.ts
- name: Run proof verification example for Arbitrum
if: ${{ always() }}
env:
BLOCKCHAIN_PROVIDER_URL: ${{ secrets.BLOCKCHAIN_PROVIDER_URL_ARBITRUM_DEVELOP }}
REGISTRY_CONTRACT_ADDRESS: ${{ secrets.REGISTRY_CONTRACT_ADDRESS_ARBITRUM_DEVELOP }}
API_BASE_URL: ${{ secrets.API_BASE_URL_DEVELOP }}
API_KEY: ${{ secrets.API_KEY_DEVELOP }}
CHAIN_ID: ${{ secrets.CHAIN_ID_ARBITRUM }}
run: npx hardhat run scripts/proof-verification.ts
# Solana
- name: Run API Client examples for Solana
if: ${{ always() }}
env:
API_BASE_URL: ${{ secrets.API_BASE_URL_DEVELOP }}
API_KEY: ${{ secrets.API_KEY_DEVELOP }}
ANCHOR_WALLET: ${{ secrets.SOLANA_WALLET }}
ANCHOR_PROVIDER_URL: ${{ secrets.BLOCKCHAIN_PROVIDER_URL_SOLANA_DEVELOP }}
SOLANA_CHAIN_PROGRAM_ID: ${{ secrets.SOLANA_CHAIN_PROGRAM_ID_DEVELOP }}
SOLANA_CALLER_PROGRAM_ID: ${{ secrets.SOLANA_CALLER_PROGRAM_ID_DEVELOP }}
run:
echo $ANCHOR_WALLET > my_wallet.json;
ANCHOR_WALLET="./my_wallet.json" npx hardhat run ./scripts/solana_fetch_fcd.ts
- name: Run proof verification example for Solana
if: ${{ always() }}
env:
API_BASE_URL: ${{ secrets.API_BASE_URL_DEVELOP }}
API_KEY: ${{ secrets.API_KEY_DEVELOP }}
ANCHOR_WALLET: ${{ secrets.SOLANA_WALLET }}
ANCHOR_PROVIDER_URL: ${{ secrets.BLOCKCHAIN_PROVIDER_URL_SOLANA_DEVELOP }}
SOLANA_CHAIN_PROGRAM_ID: ${{ secrets.SOLANA_CHAIN_PROGRAM_ID_DEVELOP }}
SOLANA_CALLER_PROGRAM_ID: ${{ secrets.SOLANA_CALLER_PROGRAM_ID_DEVELOP }}
run:
echo $ANCHOR_WALLET > my_wallet.json;
ANCHOR_WALLET="./my_wallet.json" npx hardhat run ./scripts/solana_verify.ts
- name: Run proof verification through cpi-call example for Solana
if: ${{ always() }}
env:
API_BASE_URL: ${{ secrets.API_BASE_URL_DEVELOP }}
API_KEY: ${{ secrets.API_KEY_DEVELOP }}
ANCHOR_WALLET: ${{ secrets.SOLANA_WALLET }}
ANCHOR_PROVIDER_URL: ${{ secrets.BLOCKCHAIN_PROVIDER_URL_SOLANA_DEVELOP }}
SOLANA_CHAIN_PROGRAM_ID: ${{ secrets.SOLANA_CHAIN_PROGRAM_ID_DEVELOP }}
SOLANA_CALLER_PROGRAM_ID: ${{ secrets.SOLANA_CALLER_PROGRAM_ID_DEVELOP }}
run:
echo $ANCHOR_WALLET > my_wallet.json;
ANCHOR_WALLET="./my_wallet.json" npx hardhat run ./scripts/solana_verify_cpi_call.ts
notify:
name: Discord Notification
runs-on: ubuntu-latest
needs:
- build
if: ${{ always() }} # You always want to be notified: success, failure, or cancelled
steps:
- name: Notify
uses: nobrayner/discord-webhook@v1
with:
github-token: ${{ secrets.BOT_GITHUB_TOKEN }}
discord-webhook: ${{ secrets.DISCORD_NONPROD_WEBHOOK }}
title: '${{ github.workflow }}: {{STATUS}}'
description: '${{ github.event_name }} trigged this {{STATUS}}!'
# include-details: 'false'