This repository has been archived by the owner on Oct 31, 2024. It is now read-only.
Frontend Faucet #5
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: Frontend Faucet | |
on: | |
pull_request: | |
branches: | |
- main | |
workflow_dispatch: | |
inputs: | |
local-erc20-messaging-infra-ref: | |
description: "Git ref of local-erc20-messaging-infra" | |
required: false | |
faucet-ref: | |
description: "Git ref of faucet" | |
required: false | |
topos-docker-tag: | |
description: "Docker tag of topos" | |
required: false | |
topos-smart-contracts-docker-tag: | |
description: "Docker tag of topos-smart-contracts" | |
required: false | |
env: | |
TOPOS_DOCKER_TAG: ${{ inputs.topos-docker-tag || 'latest' }} | |
CONTRACTS_DOCKER_TAG: ${{ inputs.topos-smart-contracts-docker-tag || 'latest' }} | |
jobs: | |
infra-metadata: | |
uses: ./.github/workflows/util:get-latest-release.yml | |
with: | |
organization: topos-protocol | |
repository: local-erc20-messaging-infra | |
faucet-metadata: | |
uses: ./.github/workflows/util:get-latest-release.yml | |
with: | |
organization: topos-protocol | |
repository: faucet | |
e2e: | |
runs-on: ubuntu-latest-16-core | |
environment: devnet-1 | |
env: | |
INFRA_REF: ${{ inputs.local-erc20-messaging-infra-ref || needs.infra-metadata.outputs.latest-release }} | |
FAUCET_REF: ${{ inputs.faucet-ref || needs.faucet-metadata.outputs.latest-release }} | |
needs: | |
- infra-metadata | |
- faucet-metadata | |
steps: | |
- name: Display stack component versions | |
run: | | |
echo "infra ref: ${{ env.INFRA_REF }}" | |
echo "faucet ref: ${{ env.FAUCET_REF }}" | |
echo "topos docker tag: ${{ env.TOPOS_DOCKER_TAG }}" | |
echo "contracts docker tag: ${{ env.CONTRACTS_DOCKER_TAG }}" | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Cache Docker layers | |
uses: actions/cache@v3 | |
with: | |
path: /tmp/.buildx-cache | |
key: ${{ runner.os }}-buildx-${{ github.sha }} | |
restore-keys: | | |
${{ runner.os }}-buildx- | |
- name: Checkout local-erc20-messaging-infra repo | |
uses: actions/checkout@v3 | |
with: | |
repository: topos-protocol/local-erc20-messaging-infra | |
ref: ${{ env.INFRA_REF }} | |
path: infra | |
- name: Start local ERC20 messaging infra containers | |
run: > | |
cd infra && | |
docker compose up -d | |
env: | |
PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }} | |
TOKEN_DEPLOYER_SALT: ${{ secrets.TOKEN_DEPLOYER_SALT }} | |
TOPOS_CORE_SALT: ${{ secrets.TOPOS_CORE_SALT }} | |
TOPOS_CORE_PROXY_SALT: ${{ secrets.TOPOS_CORE_PROXY_SALT }} | |
ERC20_MESSAGING_SALT: ${{ secrets.ERC20_MESSAGING_SALT }} | |
SUBNET_REGISTRATOR_SALT: ${{ secrets.SUBNET_REGISTRATOR_SALT }} | |
TOPOS_VERSION: ${{ env.TOPOS_DOCKER_TAG }} | |
TOPOS_MESSAGING_PROTOCOL_CONTRACTS_VERSION: ${{ env.CONTRACTS_DOCKER_TAG }} | |
- name: Debug containers | |
if: failure() | |
run: docker inspect contracts-topos | grep Image && docker logs contracts-topos | |
- name: Get contracts .env file and expose contract addresses for faucet | |
run: | | |
mkdir ./contracts | |
docker cp contracts-topos:/contracts/.env ./contracts/.env | |
source ./contracts/.env | |
echo "SUBNET_REGISTRATOR_CONTRACT_ADDRESS=${SUBNET_REGISTRATOR_CONTRACT_ADDRESS}" >> $GITHUB_ENV | |
echo "TOPOS_CORE_PROXY_CONTRACT_ADDRESS=${TOPOS_CORE_PROXY_CONTRACT_ADDRESS}" >> $GITHUB_ENV | |
- name: Checkout faucet repo | |
uses: actions/checkout@v3 | |
with: | |
repository: topos-protocol/faucet | |
ref: ${{ env.FAUCET_REF }} | |
path: faucet | |
- name: Install dependencies | |
working-directory: faucet | |
run: npm ci | |
- name: Build frontend | |
working-directory: faucet | |
run: npm run frontend:build | |
env: | |
VITE_RECAPTCHA_SITE_KEY: ${{ secrets.RECAPTCHA_SITE_KEY }} | |
VITE_SUBNET_REGISTRATOR_CONTRACT_ADDRESS: ${{ env.SUBNET_REGISTRATOR_CONTRACT_ADDRESS }} | |
VITE_TOPOS_CORE_PROXY_CONTRACT_ADDRESS: ${{ env.TOPOS_CORE_PROXY_CONTRACT_ADDRESS }} | |
VITE_TOPOS_SUBNET_ENDPOINT_HTTP: ${{ vars.TOPOS_SUBNET_ENDPOINT_HTTP }} | |
VITE_TOPOS_SUBNET_ENDPOINT_WS: ${{ vars.TOPOS_SUBNET_ENDPOINT_WS }} | |
- name: Run e2e tests | |
working-directory: faucet | |
run: npm run test:e2e | |
env: | |
CYPRESS_REMOTE_DEBUGGING_PORT: ${{ vars.CYPRESS_REMOTE_DEBUGGING_PORT }} | |
PORT: 3002 | |
AUTH0_AUDIENCE: ${{ secrets.AUTH0_AUDIENCE }} | |
AUTH0_CLIENT_ID: ${{ secrets.AUTH0_CLIENT_ID }} | |
AUTH0_CLIENT_SECRET: ${{ secrets.AUTH0_CLIENT_SECRET }} | |
AUTH0_ISSUER_URL: ${{ secrets.AUTH0_ISSUER_URL }} | |
PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }} | |
THROTTLER_TTL_SECONDS: ${{ vars.THROTTLER_TTL_SECONDS }} | |
- name: Debug docker show infra containers | |
if: failure() | |
run: docker ps | |
- name: Debug sending sequencer | |
if: failure() | |
run: docker logs topos-sequencer | |
- name: Debug receiving sequencer | |
if: failure() | |
run: docker logs incal-sequencer | |
- name: Debug topos node 1 | |
if: failure() | |
run: docker logs topos-node-1 | |
- name: Debug topos node 2 | |
if: failure() | |
run: docker logs topos-node-2 | |
- name: Debug topos node 3 | |
if: failure() | |
run: docker logs topos-node-3 | |
- name: Debug topos node 4 | |
if: failure() | |
run: docker logs topos-node-4 | |
- name: Debug incal node 1 | |
if: failure() | |
run: docker logs incal-node-1 |