diff --git a/.github/workflows/deploy-pages.yml b/.github/workflows/deploy-pages.yml new file mode 100644 index 0000000..4b3f3db --- /dev/null +++ b/.github/workflows/deploy-pages.yml @@ -0,0 +1,51 @@ +name: Deploy GitHub Pages + +on: + push: + branches: + - main + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: pages + cancel-in-progress: true + +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: Build + run: npm run build + + - name: Configure Pages + uses: actions/configure-pages@v6 + + - name: Upload Pages artifact + uses: actions/upload-pages-artifact@v5 + with: + path: './dist' + + - name: Deploy Pages + id: deployment + uses: actions/deploy-pages@v5 diff --git a/README.md b/README.md index 8412f16..6f4c607 100644 --- a/README.md +++ b/README.md @@ -92,6 +92,16 @@ 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, builds the Vite site, and publishes `dist` +to GitHub Pages. The CI workflow runs tests and metadata +validation. 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.