website #12
This file contains 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: website | |
on: | |
push: | |
branches: | |
- 'main' | |
- 'release-**' | |
pull_request: | |
types: | |
- opened | |
- reopened | |
- synchronize | |
- ready_for_review | |
branches: | |
- 'main' | |
- 'release-**' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
jobs: | |
changes: | |
outputs: | |
should-run-link-check: ${{ steps.changes.outputs.src == 'true' }} | |
if: github.event.pull_request.draft == false | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dorny/paths-filter@v2 | |
id: changes | |
with: | |
filters: | | |
src: | |
- '**.js' | |
- 'yarn.lock' | |
- 'package.json' | |
- '.github/workflows/website.yml' | |
# Check that the website builds and there's no missing links. | |
# This job builds the website, starts a server to serve it, and then uses | |
# muffet (https://github.com/raviqqe/muffet) to perform the link check. | |
link-check: | |
needs: [changes] | |
if: github.event.pull_request.draft == false && needs.changes.outputs.should-run-link-check == 'true' | |
name: Website Link Check | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version-file: .node-version | |
- name: run http-server | |
env: | |
# renovate: datasource=github-releases depName=raviqqe/muffet | |
MUFFET_VERSION: 2.6.3 | |
run: | | |
npm install -g yarn | |
# http-server is used to serve the website locally as muffet checks it. | |
yarn global add http-server | |
# install raviqqe/muffet to check for broken links. | |
curl -L https://github.com/raviqqe/muffet/releases/download/v${MUFFET_VERSION}/muffet_${MUFFET_VERSION}_Linux_x86_64.tar.gz | tar -xz | |
yarn install | |
yarn website:build | |
http-server runatlantis.io/.vuepress/dist & | |
- name: wait until server listened | |
run: curl --retry-delay 1 --retry 30 --retry-all-error http://localhost:8080 | |
# medium.com => was being rate limited: HTTP 429 | |
- run: | | |
./muffet \ | |
-e 'https://medium.com/runatlantis' \ | |
-e 'https://github\.com/runatlantis/atlantis/edit/main/.*' \ | |
-e 'https://github.com/runatlantis/helm-charts#customization' \ | |
-e 'https://confluence.atlassian.com/*' \ | |
--header 'Accept-Encoding:deflate, gzip' \ | |
--buffer-size 8192 \ | |
http://localhost:8080/ | |
skip-link-check: | |
needs: [changes] | |
if: needs.changes.outputs.should-run-link-check == 'false' | |
name: Website Link Check | |
runs-on: ubuntu-latest | |
steps: | |
- run: 'echo "No build required"' |