diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 2ec3542..4013869 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -1,51 +1,49 @@ -# Simple workflow for deploying static content to GitHub Pages -name: Deploy static content to Pages +name: Deploy 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 the GITHUB_TOKEN permissions 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 + branches: + - main jobs: - # Single deploy job since we're just deploying - deploy: - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} + build: + name: Build runs-on: ubuntu-latest + steps: - - name: Checkout + - name: Checkout repo uses: actions/checkout@v4 - - name: Set up Node + + - name: Setup Node uses: actions/setup-node@v4 - with: - node-version: 20 - cache: 'npm' + - name: Install dependencies - run: npm ci - - name: Build + uses: bahmutov/npm-install@v1 + + - name: Build project run: npm run build - - name: Setup Pages - uses: actions/configure-pages@v4 - - name: Upload artifact - uses: actions/upload-pages-artifact@v3 + + - name: Upload production-ready build files + uses: actions/upload-artifact@v4 with: - # Upload dist folder - path: './dist' + name: production-files + path: ./dist + + deploy: + name: Deploy + needs: build + runs-on: ubuntu-latest + if: github.ref == 'refs/heads/main' + + steps: + - name: Download artifact + uses: actions/download-artifact@v4 + with: + name: production-files + path: ./dist + - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v4 + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./dist