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"'