Publish Gecode 6.4.0 website and documentation #1
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: Build and Deploy Pages | |
| on: | |
| push: | |
| pull_request: | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| pages: write | |
| id-token: write | |
| concurrency: | |
| group: pages | |
| cancel-in-progress: true | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| cache: npm | |
| - name: Setup Ruby | |
| uses: ruby/setup-ruby@v1 | |
| with: | |
| ruby-version: '3.1' | |
| bundler-cache: true | |
| - name: Install Node dependencies | |
| run: npm ci | |
| - name: Check executable bits | |
| run: npm run check:mode | |
| - name: Build site | |
| run: npm run build | |
| - name: Verify generated CSS | |
| run: npm run check:css | |
| - name: Validate generated HTML | |
| run: npm run check:html | |
| - name: Collect active HTML pages | |
| id: active_pages | |
| run: | | |
| pages="$(./scripts/list-active-html.sh _site | tr '\n' ' ')" | |
| echo "pages=$pages" >> "$GITHUB_OUTPUT" | |
| - name: Accessibility smoke check (Lighthouse) | |
| uses: treosh/lighthouse-ci-action@v12 | |
| with: | |
| configPath: ./lighthouserc.json | |
| uploadArtifacts: true | |
| - name: Check internal links | |
| uses: lycheeverse/lychee-action@v2 | |
| with: | |
| args: >- | |
| --verbose --no-progress --offline --exclude-mail | |
| ${{ steps.active_pages.outputs.pages }} | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Check external links | |
| continue-on-error: true | |
| uses: lycheeverse/lychee-action@v2 | |
| with: | |
| args: >- | |
| --verbose --no-progress --exclude-mail | |
| ${{ steps.active_pages.outputs.pages }} | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Configure Pages | |
| uses: actions/configure-pages@v5 | |
| - name: Upload artifact | |
| uses: actions/upload-pages-artifact@v3 | |
| with: | |
| path: ./_site | |
| deploy: | |
| if: github.event_name == 'workflow_dispatch' || (github.event_name == 'push' && github.ref == format('refs/heads/{0}', github.event.repository.default_branch)) | |
| environment: | |
| name: github-pages | |
| url: ${{ steps.deployment.outputs.page_url }} | |
| runs-on: ubuntu-latest | |
| needs: build | |
| steps: | |
| - name: Deploy to GitHub Pages | |
| id: deployment | |
| uses: actions/deploy-pages@v4 |