name: Deploy to GitHub Pages on: push: branches: - master pull_request: branches: - master permissions: contents: write jobs: cypress-run: runs-on: ubuntu-latest steps: - name: Checkout Repository uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v3 with: node-version: 22 - name: Install Dependencies run: npm i - name: Build App run: npm run build - name: Run Cypress Tests uses: cypress-io/github-action@v6 with: start: npm start wait-on: 'http://localhost:3000' browser: chrome - name: Upload Cypress Artifacts if: failure() uses: actions/upload-artifact@v4 with: name: cypress-artifacts path: | cypress/screenshots cypress/videos deploy: needs: cypress-run runs-on: ubuntu-latest steps: - name: Checkout Repository uses: actions/checkout@v3 - name: Setup Node.js uses: actions/setup-node@v3 with: node-version: 22 - name: Install Dependencies run: npm i - name: Build App run: npm run build - name: Configure User run: | git config --global user.email "github-actions@github.com" git config --global user.name "github-actions[bot]" - name: Deploy to GitHub Pages env: GITHUB_TOKEN: ${{ secrets.DEPLOY_TOKEN }} run: npx gh-pages -d build --repo https://x-access-token:${{ secrets.DEPLOY_TOKEN }}@github.com/${{ github.repository }}.git