name: Continuous integration on: [push, pull_request, workflow_dispatch] concurrency: group: ${{ github.workflow }}|${{ github.ref_name }} cancel-in-progress: true jobs: build: name: 🛠️ Build runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v5 - name: Setup Pages uses: actions/configure-pages@v5 - name: Setup Node.js uses: actions/setup-node@v6 with: node-version: 24 cache: npm - name: Install dependencies run: npm ci - name: Build the static content using npm run: npm run build - name: Prepare and copy configuration and data run: npm run publish-db env: GRAPHQL_TOKEN: ${{ secrets.GRAPHQL_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Upload pages artifact uses: actions/upload-pages-artifact@v4 with: path: out/ deploy: name: 📤 Deploy runs-on: ubuntu-latest needs: build if: github.ref_name == github.event.repository.default_branch environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} permissions: contents: read id-token: write pages: write concurrency: group: ci-deploy cancel-in-progress: false steps: - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v4