From f3734d1bdaba233d435554aa356d30dc18a2b0ca Mon Sep 17 00:00:00 2001 From: Sebastian Scatularo Date: Mon, 20 Nov 2023 23:25:19 -0300 Subject: [PATCH] setup workflow deployment --- .github/workflows/preview.yml | 108 ++++++++++++++++++++++++----- README.md | 37 +++++++++- apps/redirects/src/configs/sui.env | 1 - 3 files changed, 124 insertions(+), 22 deletions(-) diff --git a/.github/workflows/preview.yml b/.github/workflows/preview.yml index a90f460ed..aff5a164b 100644 --- a/.github/workflows/preview.yml +++ b/.github/workflows/preview.yml @@ -42,14 +42,14 @@ jobs: - name: Upload Artifact uses: actions/upload-artifact@v3 with: - name: preview-docs-build + name: build-docs path: apps/docs/build - portal: + advance-tools: name: "Build Portal Bridge (Advance)" runs-on: xlabs-large-runner concurrency: - group: ${{ github.ref }}-portal-preview + group: ${{ github.ref }}-advance-tools cancel-in-progress: true environment: Cloudflare-Preview needs: @@ -58,7 +58,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v3 with: - repository: xlabs/portal-bridge-ui + repository: xLabs/portal-bridge-ui # TODO replace with the advance tools branch after cutover ref: main - name: Set up Node environment @@ -78,6 +78,7 @@ jobs: env: PUBLIC_URL: "/${{ needs.branch-sha.outputs.value }}/advance-tools" NODE_OPTIONS: "--max-old-space-size=10240" + GENERATE_SOURCEMAP: false REACT_APP_CLUSTER: ${{ vars.REACT_APP_CLUSTER }} REACT_APP_SOLANA_API_URL: ${{ vars.REACT_APP_SOLANA_API_URL }} REACT_APP_COVALENT_API_KEY: ${{ secrets.REACT_APP_COVALENT_API_KEY }} @@ -97,7 +98,7 @@ jobs: name: "Build Portal Bridge" runs-on: "ubuntu-latest" concurrency: - group: ${{ github.ref }}-redicts-preview + group: ${{ github.ref }}-redirects cancel-in-progress: true needs: - branch-sha @@ -118,10 +119,74 @@ jobs: - name: Upload Portal Bridge Artifact uses: actions/upload-artifact@v3 with: - name: preview-connect-build + name: build-redirects path: apps/redirects/dist - connect: + usdc-bridge: + name: "Build USDC Bridge" + runs-on: "ubuntu-latest" + concurrency: + group: ${{ github.ref }}-usdc-bridge + cancel-in-progress: true + environment: Cloudflare-Preview + needs: + - branch-sha + outputs: + pkg-version: ${{ steps.set-version.outputs._PKG_VERSION }} + steps: + - name: Set up Node environment + uses: actions/setup-node@v3 + with: + node-version: v18.17.1 + - name: Checkout Wormhole Connect + uses: actions/checkout@v3 + with: + repository: xlabs/wormhole-connect + ref: ${{github.event.pull_request.head.ref}} + path: wormhole-connect + - name: Checkout Portal Bridge + uses: actions/checkout@v3 + with: + path: portal + - name: Setup Git + run: | + pushd portal + git config user.name "xLabs CI" + git config user.email "devops@xlabs.xyz" + - name: Set Portal Bridge Version + id: set-version + run: | + pushd portal/apps/connect + npm version $(node -p -e "require('./package.json').version")-P$(echo ${{ github.sha }} | cut -c -10) + echo "_PKG_VERSION=$(node -p -e "require('./package.json').version")" >> "${GITHUB_OUTPUT}" + - name: Build Portal Bridge + env: + PUBLIC_URL: "/${{ needs.branch-sha.outputs.value }}" + VITE_APP_VERSION: ${{ steps.set-version.outputs._PKG_VERSION }} + VITE_APP_CLUSTER: ${{ vars.REACT_APP_CLUSTER }} + VITE_APP_ADVANCE_PATH: "/${{ needs.branch-sha.outputs.value }}/advance" + run: | + npm install -g husky + pushd wormhole-connect + npm ci --workspaces --if-present + npm run build + npm link --workspaces --if-present + popd + pushd portal/apps/connect + npm ci + npm link @wormhole-foundation/wormhole-connect + pushd public + npm run set-version + popd + echo 'VITE_APP_VERSION=$npm_package_version' > .env + npm run build:usdc-bridge + - name: Upload Portal Bridge Artifact + uses: actions/upload-artifact@v3 + with: + name: build-usdc-bridge + path: portal/apps/connect/dist + + token-bridge: name: "Build Portal Bridge" runs-on: "ubuntu-latest" concurrency: @@ -178,22 +243,23 @@ jobs: npm run set-version popd echo 'VITE_APP_VERSION=$npm_package_version' > .env - npm run build + npm run build:token-bridge - name: Upload Portal Bridge Artifact uses: actions/upload-artifact@v3 with: - name: preview-connect-build + name: build-token-bridge path: portal/apps/connect/dist publish: name: "Publish" needs: - - portal - - connect + - advance-tools + - usdc-bridge + - token-bridge - docs runs-on: "ubuntu-latest" concurrency: - group: ${{ github.ref }}-publish-preview + group: ${{ github.ref }}-publish cancel-in-progress: true permissions: contents: read @@ -202,17 +268,21 @@ jobs: - name: Download Artifact uses: actions/download-artifact@v3 with: - name: preview-connect-build + name: build-token-bridge - name: Download Artifact uses: actions/download-artifact@v3 with: - name: preview-advance-build - path: advance + name: build-advance-tools + path: advance-tools - name: Download Artifact uses: actions/download-artifact@v3 with: - name: preview-docs-build + name: build-docs path: docs + - name: Download Artifact + uses: actions/download-artifact@v3 + with: + name: build-redirects - name: Set up GitHub NPM registry uses: actions/setup-node@v3 with: @@ -228,7 +298,7 @@ jobs: needs: - publish - branch-sha - - connect + - token-bridge runs-on: "ubuntu-latest" concurrency: group: ${{ github.ref }}-deploy-preview @@ -253,8 +323,8 @@ jobs: [[ ! -f .latest ]] && touch .latest [[ ! -f .artifacts ]] && touch .artifacts cat .latest >> .artifacts - echo ${{ needs.connect.outputs.pkg-version }} > .latest + echo ${{ needs.token-bridge.outputs.pkg-version }} > .latest git add .artifacts .latest - git commit -m"Update preview artifacts ${{ needs.connect.outputs.pkg-version }}" + git commit -m"Update preview artifacts ${{ needs.token-bridge.outputs.pkg-version }}" git push echo "The preview URL is: ${{ vars.PREVIEW_ROOT_URL }}/${{ needs.branch-sha.outputs.value }}/" >> ${GITHUB_STEP_SUMMARY} diff --git a/README.md b/README.md index e72d2509a..66ff07bb9 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,39 @@ Portal Bridge with Connect widget Portal Bridge documentation -## Act +## Run Github Actions Locally with Act -act --artifact-server-path /tmp/act-artifacts -W .github/workflows/preview.yml pull_request -j redirects \ No newline at end of file +see https://nektosact.com/installation/index.html + +### All + +```shell +export GITHUB_TOKEN=#your github token + +act --artifact-server-path /tmp/act-artifacts -W .github/workflows/preview.yml pull_request -s GITHUB_TOKEN=${GITHUB_TOKEN} -P=xlabs-large-runner=catthehacker/ubuntu:act-latest --container-options "--memory=10G" +``` + +### advance-tools job + +```shell +export GITHUB_TOKEN=#your github token + +act --artifact-server-path /tmp/act-artifacts -W .github/workflows/preview.yml pull_request -j advance-tools -s GITHUB_TOKEN=${GITHUB_TOKEN} -P=xlabs-large-runner=catthehacker/ubuntu:act-latest --container-options "--memory=12g" +``` + +### redirects job + +```shell +act --artifact-server-path /tmp/act-artifacts -W .github/workflows/preview.yml pull_request -j redirects +``` + +### usdc-bridge job + +```shell +act --artifact-server-path /tmp/act-artifacts -W .github/workflows/preview.yml pull_request -j usdc-bridge -s GITHUB_TOKEN=${GITHUB_TOKEN} +``` +### token-bridge job + +```shell +act --artifact-server-path /tmp/act-artifacts -W .github/workflows/preview.yml pull_request -j token-bridge -s GITHUB_TOKEN=${GITHUB_TOKEN} +``` \ No newline at end of file diff --git a/apps/redirects/src/configs/sui.env b/apps/redirects/src/configs/sui.env index c2ebd3455..80bd83a64 100644 --- a/apps/redirects/src/configs/sui.env +++ b/apps/redirects/src/configs/sui.env @@ -1,3 +1,2 @@ TITLE="Cosmos Token Bridge" DESCRIPTION="Portal is a bridge that offers unlimited transfers across chains for tokens and NFTs wrapped by Wormhole." -MAIN=${PUBLIC_URL}/?sourceChain=sui \ No newline at end of file