ci(verify): open promotion PRs against TechAPI develop (#50) #65
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: deploy-pages | |
| # Builds the Astro site (intro homepage + OpenAPI docs) together with the static | |
| # JSON data dump and deploys everything to GitHub Pages. The dataset does not need | |
| # to be complete — whatever is curated in data/ is published. | |
| # Enable once: Settings → Pages → Source = GitHub Actions. | |
| on: | |
| push: | |
| branches: [main] | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| pages: write | |
| id-token: write | |
| concurrency: | |
| group: pages | |
| cancel-in-progress: true | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/checkout@v4 | |
| with: | |
| repository: GetTechAPI/TechAPI | |
| path: TechAPI | |
| - uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.12" | |
| - name: Install Python deps | |
| run: pip install -e . | |
| - name: Validate curated data | |
| env: | |
| TECHAPI_DATA_DIR: ${{ github.workspace }}/TechAPI/data | |
| run: python -m app.validate | |
| - name: Generate static JSON dump + openapi.json | |
| env: | |
| TECHAPI_DATA_DIR: ${{ github.workspace }}/TechAPI/data | |
| # Games are not published here: ~962k per-record files exceed the fixed | |
| # GitHub Pages deployment window (the deploy step times out at | |
| # "syncing_files"). Skipping them at generation time also keeps this | |
| # step from writing files that would only be deleted before upload. | |
| # They remain available as versioned data in the TechAPI repo. | |
| run: python -m app.dump --output dump --exclude games | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: "22" | |
| cache: npm | |
| cache-dependency-path: site/package-lock.json | |
| - name: Build Astro site | |
| run: | | |
| cd site | |
| npm ci | |
| npm run build | |
| - name: Assemble site (Astro dist + JSON data dump) | |
| run: | | |
| mkdir -p _site | |
| cp -r site/dist/. _site/ | |
| cp -r dump/. _site/ | |
| touch _site/.nojekyll | |
| - uses: actions/upload-pages-artifact@v3 | |
| with: | |
| path: _site | |
| deploy: | |
| needs: build | |
| runs-on: ubuntu-latest | |
| environment: | |
| name: github-pages | |
| url: ${{ steps.deployment.outputs.page_url }} | |
| steps: | |
| - id: deployment | |
| uses: actions/deploy-pages@v4 |