Spark Interface #175
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 and deploy to IPFS | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} | |
cancel-in-progress: true | |
on: | |
pull_request: | |
branches: ['main'] | |
push: | |
branches: ['main'] | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
if: | | |
(github.event_name == 'push' && github.ref == 'refs/heads/main') || | |
(github.event.pull_request.head.repo.full_name == github.event.pull_request.base.repo.full_name && | |
!contains(github.head_ref, 'dependabot')) | |
steps: | |
- uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 | |
with: | |
persist-credentials: false | |
- name: Build App | |
uses: ./.github/actions/build | |
with: | |
NEXT_PUBLIC_ENV: 'prod' | |
NEXT_PUBLIC_FORK_BASE_CHAIN_ID: ${{ secrets[format('FORK_BASE_CHAIN_ID_{0}', github.event.pull_request.number)] }} | |
NEXT_PUBLIC_FORK_CHAIN_ID: ${{ secrets[format('FORK_CHAIN_ID_{0}', github.event.pull_request.number)] }} | |
NEXT_PUBLIC_FORK_URL_RPC: ${{ secrets[format('FORK_URL_RPC_{0}', github.event.pull_request.number)] }} | |
NEXT_PUBLIC_WALLET_CONNECT_PROJECT_ID: ${{ secrets.WALLET_CONNECT_PROJECT_ID }} | |
NEXT_PUBLIC_VPN_PROTECTION: '1' | |
- name: Upload artifacts | |
uses: ./.github/actions/upload-artifacts | |
with: | |
BUILD_ARTIFACT_NAME: 'out' | |
build_staging: | |
runs-on: ubuntu-latest | |
if: | | |
github.event_name == 'push' && github.ref == 'refs/heads/main' | |
steps: | |
- uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 | |
with: | |
persist-credentials: false | |
- name: Build App | |
uses: ./.github/actions/build | |
with: | |
NEXT_PUBLIC_ENV: 'staging' | |
- name: Upload artifacts | |
uses: ./.github/actions/upload-artifacts | |
with: | |
BUILD_ARTIFACT_NAME: 'out_staging' | |
NEXTJS_BUILD: 'false' | |
PR_INFO: 'false' | |
cypress_smoke_v2: | |
runs-on: ubuntu-latest | |
if: "!contains(github.event.head_commit.message, '[skip cypress]')" | |
needs: build | |
strategy: | |
fail-fast: false | |
matrix: | |
market: | |
- ethereum | |
- amm | |
- polygon | |
- avalanche | |
steps: | |
- uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 | |
- name: Run tests | |
uses: ./.github/actions/cypress | |
with: | |
CYPRESS_TENDERLY_ACCOUNT: ${{ secrets.TENDERLY_ACCOUNT }} | |
CYPRESS_TENDERLY_KEY: ${{ secrets.TENDERLY_KEY }} | |
CYPRESS_TENDERLY_PROJECT: ${{ secrets.TENDERLY_PROJECT }} | |
YARN_TEST_COMMAND: npx cypress-repeat run -n 2 --rerun-failed-only --config-file ./cypress/configs/v2-markets/${{ matrix.market }}-v2-smoke.config.ts | |
cypress_smoke_v3: | |
runs-on: ubuntu-latest | |
if: "!contains(github.event.head_commit.message, '[skip cypress]')" | |
needs: build | |
strategy: | |
fail-fast: false | |
matrix: | |
market: | |
- polygon | |
- avalanche | |
- optimism | |
- ethereum | |
steps: | |
- uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 | |
- name: Run tests | |
uses: ./.github/actions/cypress | |
with: | |
CYPRESS_TENDERLY_ACCOUNT: ${{ secrets.TENDERLY_ACCOUNT }} | |
CYPRESS_TENDERLY_KEY: ${{ secrets.TENDERLY_KEY }} | |
CYPRESS_TENDERLY_PROJECT: ${{ secrets.TENDERLY_PROJECT }} | |
YARN_TEST_COMMAND: npx cypress-repeat run -n 2 --rerun-failed-only --config-file ./cypress/configs/v3-markets/${{ matrix.market }}-v3-smoke.config.ts | |
next_js_analyze: | |
runs-on: ubuntu-latest | |
needs: build | |
steps: | |
- uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 | |
- name: download build | |
uses: actions/download-artifact@fb598a63ae348fa914e94cd0ff38f362e927b741 # v3.0.0 | |
with: | |
name: nextjs_build | |
path: .next | |
- uses: ./.github/actions/analyze-comment | |
if: github.event_name != 'pull_request' | |
- uses: ./.github/actions/analyze-comment | |
if: github.event_name == 'pull_request' | |
with: | |
PULL_REQUEST_NUMBER: ${{ github.event.number }} | |
deploy: | |
runs-on: ubuntu-latest | |
needs: | |
- build | |
outputs: | |
pinata_hash: '${{ steps.pinata.outputs.hash }}' | |
steps: | |
- uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 | |
- name: download build | |
uses: actions/download-artifact@fb598a63ae348fa914e94cd0ff38f362e927b741 # v3.0.0 | |
with: | |
name: out | |
path: out | |
- name: pinata | |
id: pinata | |
uses: phoenixlabsresearch/pinata-action@a3409e26f4cb859a2d9984109317caac53db5f68 | |
with: | |
PINATA_API_KEY: ${{ secrets.PINATA_API_KEY }} | |
PINATA_SECRET_KEY: ${{ secrets.PINATA_SECRET_KEY }} | |
PIN_ALIAS: 'app-spark-${{ github.head_ref || github.ref }}' | |
BUILD_LOCATION: './out' | |
CID_VERSION: 1 | |
cypress_full_v2: | |
runs-on: ubuntu-latest | |
if: "!contains(github.event.head_commit.message, '[skip cypress]')" | |
needs: | |
- deploy | |
- cypress_smoke_v2 | |
- cypress_smoke_v3 | |
strategy: | |
fail-fast: false | |
matrix: | |
market: | |
- ethereum | |
- amm | |
- polygon | |
- avalanche | |
steps: | |
- uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 | |
- name: Run tests | |
uses: ./.github/actions/cypress | |
with: | |
CYPRESS_TENDERLY_ACCOUNT: ${{ secrets.TENDERLY_ACCOUNT }} | |
CYPRESS_TENDERLY_KEY: ${{ secrets.TENDERLY_KEY }} | |
CYPRESS_TENDERLY_PROJECT: ${{ secrets.TENDERLY_PROJECT }} | |
YARN_TEST_COMMAND: npx cypress-repeat run -n 2 --rerun-failed-only --config-file ./cypress/configs/v2-markets/${{ matrix.market }}-v2-full.config.ts | |
cypress_full_v3: | |
runs-on: ubuntu-latest | |
if: "!contains(github.event.head_commit.message, '[skip cypress]')" | |
needs: | |
- deploy | |
- cypress_smoke_v2 | |
- cypress_smoke_v3 | |
strategy: | |
fail-fast: false | |
matrix: | |
market: | |
- polygon | |
- avalanche | |
- optimism | |
- ethereum | |
steps: | |
- uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 | |
- name: Run tests | |
uses: ./.github/actions/cypress | |
with: | |
CYPRESS_TENDERLY_ACCOUNT: ${{ secrets.TENDERLY_ACCOUNT }} | |
CYPRESS_TENDERLY_KEY: ${{ secrets.TENDERLY_KEY }} | |
CYPRESS_TENDERLY_PROJECT: ${{ secrets.TENDERLY_PROJECT }} | |
YARN_TEST_COMMAND: npx cypress-repeat run -n 2 --rerun-failed-only --config-file ./cypress/configs/v3-markets/${{ matrix.market }}-v3-full.config.ts | |
cypress_additional_v2: | |
if: "!(github.event_name == 'push' && github.ref == 'refs/heads/main')" | |
runs-on: ubuntu-latest | |
needs: | |
- deploy | |
- cypress_smoke_v2 | |
- cypress_smoke_v3 | |
strategy: | |
fail-fast: false | |
matrix: | |
market: | |
- ethereum | |
- polygon | |
- avalanche | |
steps: | |
- uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 | |
- name: Run tests | |
uses: ./.github/actions/cypress | |
with: | |
CYPRESS_TENDERLY_ACCOUNT: ${{ secrets.TENDERLY_ACCOUNT }} | |
CYPRESS_TENDERLY_KEY: ${{ secrets.TENDERLY_KEY }} | |
CYPRESS_TENDERLY_PROJECT: ${{ secrets.TENDERLY_PROJECT }} | |
YARN_TEST_COMMAND: npx cypress-repeat run -n 2 --rerun-failed-only --config-file ./cypress/configs/v2-markets/${{ matrix.market }}-v2-additional.config.ts | |
cypress_additional_v3: | |
if: "!(github.event_name == 'push' && github.ref == 'refs/heads/main')" | |
runs-on: ubuntu-latest | |
needs: | |
- deploy | |
- cypress_smoke_v2 | |
- cypress_smoke_v3 | |
strategy: | |
fail-fast: false | |
matrix: | |
market: | |
- polygon | |
- avalanche | |
- optimism | |
- ethereum | |
steps: | |
- uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 | |
- name: Run tests | |
uses: ./.github/actions/cypress | |
with: | |
CYPRESS_TENDERLY_ACCOUNT: ${{ secrets.TENDERLY_ACCOUNT }} | |
CYPRESS_TENDERLY_KEY: ${{ secrets.TENDERLY_KEY }} | |
CYPRESS_TENDERLY_PROJECT: ${{ secrets.TENDERLY_PROJECT }} | |
YARN_TEST_COMMAND: npx cypress-repeat run -n 2 --rerun-failed-only --config-file ./cypress/configs/v3-markets/${{ matrix.market }}-v3-additional.config.ts | |
cypress_app_functionality: | |
runs-on: ubuntu-latest | |
if: "!contains(github.event.head_commit.message, '[skip cypress]')" | |
needs: | |
- deploy | |
- cypress_smoke_v2 | |
- cypress_smoke_v3 | |
strategy: | |
fail-fast: false | |
matrix: | |
scoupe: | |
- settings | |
- mobile | |
steps: | |
- uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 | |
- name: Run tests | |
uses: ./.github/actions/cypress | |
with: | |
CYPRESS_TENDERLY_ACCOUNT: ${{ secrets.TENDERLY_ACCOUNT }} | |
CYPRESS_TENDERLY_KEY: ${{ secrets.TENDERLY_KEY }} | |
CYPRESS_TENDERLY_PROJECT: ${{ secrets.TENDERLY_PROJECT }} | |
YARN_TEST_COMMAND: npx cypress-repeat run -n 2 --rerun-failed-only --config-file ./cypress/configs/${{ matrix.scoupe }}.config.ts | |
update_domains: | |
if: | | |
github.event_name == 'push' && | |
github.ref == 'refs/heads/main' && | |
!contains(github.event.head_commit.message, '[skip cypress]') | |
needs: | |
- deploy | |
- build_staging | |
- cypress_full_v2 | |
- cypress_full_v3 | |
- cypress_app_functionality | |
uses: ./.github/workflows/update-prod-staging.yml | |
with: | |
PINATA_HASH: '${{ needs.deploy.outputs.pinata_hash }}' | |
secrets: inherit | |
update_domains_no_cypress: | |
if: | | |
github.event_name == 'push' && | |
github.ref == 'refs/heads/main' && | |
contains(github.event.head_commit.message, '[skip cypress]') | |
needs: | |
- deploy | |
- build_staging | |
uses: ./.github/workflows/update-prod-staging.yml | |
with: | |
PINATA_HASH: '${{ needs.deploy.outputs.pinata_hash }}' | |
secrets: inherit |