# Simple workflow for deploying static content to GitHub Pages name: Deploy static content to Pages on: # Runs on pushes targeting the default branch push: branches: ["main"] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages permissions: contents: read pages: write id-token: write # Allow one concurrent deployment concurrency: group: "pages" cancel-in-progress: true jobs: build: runs-on: ubuntu-latest steps: - name: 🛎️ Checkout uses: actions/checkout@v3 - name: 🦭 Set up Node uses: actions/setup-node@v3 with: cache: "npm" - name: 👷 Run build run: | npm ci npm run build - name: 📝 list contents run: ls dist/ # Copy index.html to 404.html to serve the same file when a file is not found. This fixes GitHub Pages routing issues - name: 🚷 Copy index.html to 404.html run: cp ./dist/index.html ./dist/404.html - name: 🆙 Upload artifact uses: actions/upload-pages-artifact@v1 with: # Upload public path: "dist/" deploy: # Only start after build needs: build environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} runs-on: ubuntu-latest steps: - name: 🛎️ Checkout uses: actions/checkout@v3 - name: 🚨 Setup Pages uses: actions/configure-pages@v2 - name: 🚀 Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v1