diff --git a/.github/workflows/tutorial-deploy-preview.yml b/.github/workflows/tutorial-deploy-preview.yml new file mode 100644 index 00000000..db0d7264 --- /dev/null +++ b/.github/workflows/tutorial-deploy-preview.yml @@ -0,0 +1,94 @@ +name: Deploy preview tutorial + +on: + pull_request: + branches: + - dev + +jobs: + deploy-tutorial-preview: + runs-on: ubuntu-latest + + defaults: + run: + working-directory: tutorial + + steps: + - name: Check out the repo + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - id: check-changes + run: | + if [ -n "$(git diff --name-only ${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }} | grep '^tutorial/')" ]; then + echo "::set-output name=changed::true" + else + echo "::set-output name=changed::false" + fi + + - name: Install Pnpm + if: steps.check-changes.outputs.changed == 'true' + uses: pnpm/action-setup@v2 + with: + version: 8 + run_install: false + + - name: Install Node.js + if: steps.check-changes.outputs.changed == 'true' + uses: actions/setup-node@v3 + with: + node-version: 18 + cache: pnpm + + - name: Get pnpm store directory + if: steps.check-changes.outputs.changed == 'true' + shell: bash + run: | + echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV + + - uses: actions/cache@v3 + if: steps.check-changes.outputs.changed == 'true' + name: Setup pnpm cache + with: + path: ${{ env.STORE_PATH }} + key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm-store- + + - name: Install dependencies + if: steps.check-changes.outputs.changed == 'true' + run: pnpm install --frozen-lockfile + + - name: Build + if: steps.check-changes.outputs.changed == 'true' + run: pnpm run build:netlify + env: + VITE_WALLETCONNECT_PROJECT_ID: ${{ secrets.VITE_WALLETCONNECT_PROJECT_ID }} + + - name: Deploy to Netlify + if: steps.check-changes.outputs.changed == 'true' + uses: nwtgck/actions-netlify@v2.0 + with: + publish-dir: "./tutorial/dist" + github-token: ${{ secrets.GITHUB_TOKEN }} + deploy-message: "Deploy from GitHub Actions" + enable-pull-request-comment: true + enable-commit-comment: true + overwrites-pull-request-comment: true + env: + NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} + NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID_TUTORIAL_STAGING }} + timeout-minutes: 1 + + - name: Add tutorial deployment summary + if: steps.check-changes.outputs.changed == 'true' + run: | + echo "## Tutorial staging deployment result" >> $GITHUB_STEP_SUMMARY + echo "✅ Passed" >> $GITHUB_STEP_SUMMARY + + - name: Add tutorial deployment summary + if: steps.check-changes.outputs.changed == 'false' + run: | + echo "## Tutorial staging deployment result" >> $GITHUB_STEP_SUMMARY + echo "✅ No change detected in the tutorial" >> $GITHUB_STEP_SUMMARY diff --git a/.github/workflows/tutorial-deploy.yml b/.github/workflows/tutorial-deploy-prod.yml similarity index 61% rename from .github/workflows/tutorial-deploy.yml rename to .github/workflows/tutorial-deploy-prod.yml index d2b80cbb..b8791a18 100644 --- a/.github/workflows/tutorial-deploy.yml +++ b/.github/workflows/tutorial-deploy-prod.yml @@ -1,26 +1,11 @@ -name: Deploy tutorial +name: Deploy production tutorial on: push: - branches: ["dev"] - paths: - - tutorial/** - -permissions: - contents: read - pages: write - id-token: write - -concurrency: - group: "pages" - cancel-in-progress: true - + branches: + - dev jobs: - deploy-tutorial: - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - + deploy-tutorial-prod: runs-on: ubuntu-latest defaults: @@ -60,24 +45,19 @@ jobs: run: pnpm install --frozen-lockfile - name: Build - run: pnpm run build + run: pnpm run build:netlify env: VITE_WALLETCONNECT_PROJECT_ID: ${{ secrets.VITE_WALLETCONNECT_PROJECT_ID }} - VITE_INFURA_API_KEY: ${{ secrets.VITE_INFURA_API_KEY }} - - name: Setup Pages - uses: actions/configure-pages@v3 - - - name: Upload artifact - uses: actions/upload-pages-artifact@v2 + - name: Deploy tutorial to Netlify + uses: netlify/actions/cli@master + env: + NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} + NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID_TUTORIAL }} with: - path: "./tutorial/dist" - - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v2 + args: deploy --dir=./tutorial/dist --filter tutorial --prod - name: Add tutorial deployment summary run: | - echo "## Tutorial deployment result" >> $GITHUB_STEP_SUMMARY + echo "## Tutorial production deployment result" >> $GITHUB_STEP_SUMMARY echo "✅ Passed" >> $GITHUB_STEP_SUMMARY