diff --git a/.github/workflows/nextjs.yml b/.github/workflows/nextjs.yml index 2406cf0..55e3486 100644 --- a/.github/workflows/nextjs.yml +++ b/.github/workflows/nextjs.yml @@ -18,8 +18,8 @@ permissions: pages: write id-token: write -# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. -# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. + # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. + # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. concurrency: group: 'pages' cancel-in-progress: false @@ -29,8 +29,11 @@ jobs: build: runs-on: ubuntu-latest steps: + # Step 1: Checkout the code - name: Checkout uses: actions/checkout@v3 + + # Step 2: Detect package manager (yarn or npm) - name: Detect package manager id: detect-package-manager run: | @@ -48,11 +51,15 @@ jobs: echo "Unable to determine package manager" exit 1 fi + + # Step 3: Set up Node.js - name: Setup Node uses: actions/setup-node@v3 with: node-version: '20' cache: ${{ steps.detect-package-manager.outputs.manager }} + + # Step 4: Configure Pages for Next.js - name: Setup Pages uses: actions/configure-pages@v3 with: @@ -61,6 +68,8 @@ jobs: # # You may remove this line if you want to manage the configuration yourself. static_site_generator: next + + # Step 5: Restore build cache - name: Restore cache uses: actions/cache@v3 with: @@ -72,21 +81,36 @@ jobs: restore-keys: | ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json', '**/yarn.lock') }}- - # Conditionally set NEXT_PUBLIC_BASE_PATH based on the repository + # Step 6: Conditionally set NEXT_PUBLIC_BASE_PATH based on the repository - name: Set base path for GitHub Pages run: | if [ "${{ github.repository }}" == "push-protocol/push-scan" ]; then - echo "NEXT_PUBLIC_BASE_PATH=/push-scan" >> $GITHUB_ENV + echo "NEXT_PUBLIC_BASE_PATH=" >> $GITHUB_ENV else echo "NEXT_PUBLIC_BASE_PATH=" >> $GITHUB_ENV fi - + # Step 7: Install dependencies - name: Install dependencies run: ${{ steps.detect-package-manager.outputs.manager }} ${{ steps.detect-package-manager.outputs.command }} + + # Step 8: Build the Next.js app - name: Build with Next.js run: ${{ steps.detect-package-manager.outputs.runner }} next build + + # Step 9: Export the app to static files - name: Static HTML export with Next.js run: ${{ steps.detect-package-manager.outputs.runner }} next export + + # Step 10: Set up a dynamic CNAME file based on the repository + - name: Set custom domain (CNAME) + run: | + if [ "${{ github.repository }}" == "push-protocol/push-analytics-dashboard" ]; then + echo "push.network" > ./out/CNAME + elif [ "${{ github.repository }}" == "push-protocol/push-scan" ]; then + echo "scan.push.org" > ./out/CNAME + fi + + # Step 11: Upload the static files to be deployed - name: Upload artifact uses: actions/upload-pages-artifact@v1 with: @@ -100,6 +124,7 @@ jobs: runs-on: ubuntu-latest needs: build steps: + # Step 11: Deploy to GitHub Pages - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v2 diff --git a/CNAME b/CNAME deleted file mode 100644 index 71ba33d..0000000 --- a/CNAME +++ /dev/null @@ -1 +0,0 @@ -push.network