diff --git a/.github/workflows/deploy-pages.yml b/.github/workflows/deploy-pages.yml new file mode 100644 index 0000000..85bee49 --- /dev/null +++ b/.github/workflows/deploy-pages.yml @@ -0,0 +1,57 @@ +name: Deploy GitHub Pages + +on: + push: + branches: + - main + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: pages + cancel-in-progress: false + +jobs: + deploy: + runs-on: ubuntu-latest + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + + steps: + - name: Checkout + uses: actions/checkout@v7 + + - name: Setup Node.js + uses: actions/setup-node@v7 + with: + node-version: 24 + cache: npm + + - name: Install dependencies + run: npm ci + + - name: Run tests + run: npm run test + + - name: Build + run: npm run build + + - name: Validate metadata files + run: npm run validate:metadata + + - name: Configure Pages + uses: actions/configure-pages@v5 + + - name: Upload Pages artifact + uses: actions/upload-pages-artifact@v4 + with: + path: dist + + - name: Deploy Pages + id: deployment + uses: actions/deploy-pages@v4 \ No newline at end of file diff --git a/README.md b/README.md index 8412f16..b070d34 100644 --- a/README.md +++ b/README.md @@ -92,6 +92,15 @@ npm exec -- zenodraft metadata validate .zenodo.json During export, OpenCite validates generated `.zenodo.json` metadata. ZIP exports include `METADATA_VALIDATION.txt` for downstream provenance checks. +### GitHub Pages deployment + +The `Deploy GitHub Pages` workflow runs on every push to `main` (and can be run +manually). It installs dependencies, runs tests and metadata validation, builds +the Vite site, and publishes `dist` to GitHub Pages. In the repository's +**Settings > Pages**, select **GitHub Actions** as the build and deployment +source. This replaces the previous `gh-pages` branch publishing setup; keep +that branch until the first workflow deployment succeeds. + ## GitHub Import Workflow 1. Paste a GitHub repository URL into the import field.