From 6d81935dcf43a5b1500c0ffa2bea0d1de46a36aa Mon Sep 17 00:00:00 2001 From: Sebastian Scatularo Date: Tue, 31 Oct 2023 12:18:34 -0300 Subject: [PATCH 1/3] add connect manual deployment --- .github/workflows/connect.yml | 258 ++++++++++++++++++++++++++++++++++ 1 file changed, 258 insertions(+) create mode 100644 .github/workflows/connect.yml diff --git a/.github/workflows/connect.yml b/.github/workflows/connect.yml new file mode 100644 index 000000000..ada671c4c --- /dev/null +++ b/.github/workflows/connect.yml @@ -0,0 +1,258 @@ +name: Portal Bridge [Manual] + +on: + workflow_dispatch: + inputs: + connect-repository: + description: 'connect repository bame' + required: true + default: 'wormhole-foundation/wormhole-connect' + connect-branch: + description: 'connect branch bame' + required: true + default: 'portal-bridge' + portal-branch: + description: 'portal branch bame' + required: true + default: 'advance' + network: + type: choice + description: 'cluster branch bame' + required: true + default: 'testnet' + options: + - testnet + - mainnet + +jobs: + branch-sha: + name: Compute Branch Sha + runs-on: ubuntu-latest + outputs: + value: ${{ steps.set-version.outputs._BRANCH_NAME_SHA }} + steps: + - name: Set Version + id: set-version + run: echo "_BRANCH_NAME_SHA=$(echo ${{ inputs.connect-branch }}_${{ inputs.portal-branch }} | sha256sum | cut -c -10)" >> "${GITHUB_OUTPUT}" + + docs: + name: "Build Portal Bridge Documentation" + runs-on: "ubuntu-latest" + concurrency: + group: ${{ github.ref }}-portal-docs-preview + needs: + - branch-sha + steps: + - name: Checkout repository + uses: actions/checkout@v3 + - name: Set up Node environment + uses: actions/setup-node@v3 + with: + node-version: v16.19.1 + - name: Install dependencies + run: | + pushd apps/docs + npm ci + - name: Build + env: + PUBLIC_URL: "/${{ needs.branch-sha.outputs.value }}/docs" + run: | + pushd apps/docs + npm run build + - name: Upload Artifact + uses: actions/upload-artifact@v3 + with: + name: preview-docs-build + path: apps/docs/build + + portal: + name: "Build Portal Bridge (Advance)" + runs-on: xlabs-large-runner + concurrency: + group: ${{ github.ref }}-portal-preview + cancel-in-progress: true + environment: Cloudflare-Preview + needs: + - branch-sha + steps: + - name: Checkout repository + uses: actions/checkout@v3 + with: + repository: ${{ inputs.connect-repository }} + ref: ${{ inputs.connect-branch }} + path: apps/portal + - name: Set up Node environment + uses: actions/setup-node@v3 + with: + node-version: v18.17.1 + - name: Setup Git + run: | + git config user.name "xLabs CI" + git config user.email "devops@xlabs.xyz" + - name: Install dependencies + run: | + pushd apps/portal + npm install + - name: Set Version + id: set-version + run: | + pushd apps/portal + npm version $(node -p -e "require('./package.json').version")-P$(echo ${{ github.sha }} | cut -c -10) + - name: Build + env: + PUBLIC_URL: "/${{ needs.branch-sha.outputs.value }}/advance" + NODE_OPTIONS: "--max-old-space-size=10240" + REACT_APP_CLUSTER: ${{ inputs.network }} + REACT_APP_SOLANA_API_URL: ${{ vars.REACT_APP_SOLANA_API_URL }} + REACT_APP_COVALENT_API_KEY: ${{ secrets.REACT_APP_COVALENT_API_KEY }} + REACT_APP_WALLET_CONNECT_PROJECT_ID: ${{ secrets.REACT_APP_WALLET_CONNECT_PROJECT_ID }} + run: | + pushd apps/portal + pushd public + npm run set-version + popd + echo 'REACT_APP_VERSION=$npm_package_version' > .env + npm run build + - name: Upload Artifact + uses: actions/upload-artifact@v3 + with: + name: preview-advance-build + path: apps/portal/build + + connect: + name: "Build Portal Bridge" + runs-on: "ubuntu-latest" + concurrency: + group: ${{ github.ref }}-connect-preview + 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: ${{ inputs.connect-repository }} + ref: ${{ inputs.connect-branch }} + 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: ${{ inputs.network }} + 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 + - name: Upload Portal Bridge Artifact + uses: actions/upload-artifact@v3 + with: + name: preview-connect-build + path: portal/apps/connect/dist + + publish: + name: "Publish" + needs: + - portal + - connect + - docs + runs-on: "ubuntu-latest" + concurrency: + group: ${{ github.ref }}-publish-preview + cancel-in-progress: true + permissions: + contents: read + packages: write + steps: + - name: Download Artifact + uses: actions/download-artifact@v3 + with: + name: preview-connect-build + - name: Download Artifact + uses: actions/download-artifact@v3 + with: + name: preview-advance-build + path: advance + - name: Download Artifact + uses: actions/download-artifact@v3 + with: + name: preview-docs-build + path: docs + - name: Set up GitHub NPM registry + uses: actions/setup-node@v3 + with: + node-version: v16.19.1 + registry-url: https://npm.pkg.github.com + - name: Publish + env: + NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: npm publish + + deploy: + name: "Deploy Preview" + needs: + - publish + - branch-sha + - connect + runs-on: "ubuntu-latest" + concurrency: + group: ${{ github.ref }}-deploy-preview + cancel-in-progress: true + permissions: + contents: write + environment: Cloudflare-Preview + steps: + - name: Checkout preview branch + uses: actions/checkout@v3 + with: + ref: preview + - name: Setup Git + run: | + git config user.name "xLabs CI" + git config user.email "devops@xlabs.xyz" + - name: Trigger a preview Deploy + run: | + sleep 30s + mkdir -p preview/${{ needs.branch-sha.outputs.value }} + pushd preview/${{ needs.branch-sha.outputs.value }} + [[ ! -f .latest ]] && touch .latest + [[ ! -f .artifacts ]] && touch .artifacts + cat .latest >> .artifacts + echo ${{ needs.connect.outputs.pkg-version }} > .latest + git add .artifacts .latest + git commit -m"Update preview artifacts ${{ needs.connect.outputs.pkg-version }}" + git push + echo "The preview URL is: ${{ vars.PREVIEW_ROOT_URL }}/${{ needs.branch-sha.outputs.value }}/" >> ${GITHUB_STEP_SUMMARY} From d7f7f744c066569d458f62595193f022c149607e Mon Sep 17 00:00:00 2001 From: Sebastian Scatularo Date: Wed, 1 Nov 2023 10:14:16 -0300 Subject: [PATCH 2/3] upadte runner --- .github/workflows/connect.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/connect.yml b/.github/workflows/connect.yml index ada671c4c..cad5d396f 100644 --- a/.github/workflows/connect.yml +++ b/.github/workflows/connect.yml @@ -67,7 +67,7 @@ jobs: portal: name: "Build Portal Bridge (Advance)" - runs-on: xlabs-large-runner + runs-on: ubuntu-latest concurrency: group: ${{ github.ref }}-portal-preview cancel-in-progress: true From 728cc5a28f908bd2c8134be256a16c2fa7326e79 Mon Sep 17 00:00:00 2001 From: Sebastian Scatularo Date: Thu, 2 Nov 2023 14:15:07 -0300 Subject: [PATCH 3/3] add fixes --- .github/workflows/connect.yml | 28 +++++++++------------------- 1 file changed, 9 insertions(+), 19 deletions(-) diff --git a/.github/workflows/connect.yml b/.github/workflows/connect.yml index cad5d396f..9a743afa6 100644 --- a/.github/workflows/connect.yml +++ b/.github/workflows/connect.yml @@ -3,10 +3,6 @@ name: Portal Bridge [Manual] on: workflow_dispatch: inputs: - connect-repository: - description: 'connect repository bame' - required: true - default: 'wormhole-foundation/wormhole-connect' connect-branch: description: 'connect branch bame' required: true @@ -66,8 +62,8 @@ jobs: path: apps/docs/build portal: - name: "Build Portal Bridge (Advance)" - runs-on: ubuntu-latest + name: "Build Portal Bridge [Advance]" + runs-on: "ubuntu-latest" concurrency: group: ${{ github.ref }}-portal-preview cancel-in-progress: true @@ -78,9 +74,8 @@ jobs: - name: Checkout repository uses: actions/checkout@v3 with: - repository: ${{ inputs.connect-repository }} - ref: ${{ inputs.connect-branch }} - path: apps/portal + repository: xlabs/portal-bridge-ui + ref: ${{ inputs.portal-branch }} - name: Set up Node environment uses: actions/setup-node@v3 with: @@ -90,14 +85,10 @@ jobs: git config user.name "xLabs CI" git config user.email "devops@xlabs.xyz" - name: Install dependencies - run: | - pushd apps/portal - npm install + run: npm install - name: Set Version id: set-version - run: | - pushd apps/portal - npm version $(node -p -e "require('./package.json').version")-P$(echo ${{ github.sha }} | cut -c -10) + run: npm version $(node -p -e "require('./package.json').version")-P$(echo ${{ github.sha }} | cut -c -10) - name: Build env: PUBLIC_URL: "/${{ needs.branch-sha.outputs.value }}/advance" @@ -107,7 +98,6 @@ jobs: REACT_APP_COVALENT_API_KEY: ${{ secrets.REACT_APP_COVALENT_API_KEY }} REACT_APP_WALLET_CONNECT_PROJECT_ID: ${{ secrets.REACT_APP_WALLET_CONNECT_PROJECT_ID }} run: | - pushd apps/portal pushd public npm run set-version popd @@ -117,10 +107,10 @@ jobs: uses: actions/upload-artifact@v3 with: name: preview-advance-build - path: apps/portal/build + path: build connect: - name: "Build Portal Bridge" + name: "Build Portal Bridge [Connect]" runs-on: "ubuntu-latest" concurrency: group: ${{ github.ref }}-connect-preview @@ -138,7 +128,7 @@ jobs: - name: Checkout Wormhole Connect uses: actions/checkout@v3 with: - repository: ${{ inputs.connect-repository }} + repository: wormhole-foundation/wormhole-connect ref: ${{ inputs.connect-branch }} path: wormhole-connect - name: Checkout Portal Bridge