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@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3 id: changes with: filters: | src: - '**.js' - 'pnpm-lock.yaml' - '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@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 - name: markdown-lint uses: DavidAnson/markdownlint-cli2-action@b4c9feab76d8025d1e83c653fa3990936df0e6c8 # v16 with: config: .markdownlint.yaml globs: 'runatlantis.io/**/*.md' - uses: wyvox/action-setup-pnpm@6597ef5c1300fe08efa6bc75e6141f7153e2b4cc # v3 with: node-version: 20 - name: run http-server env: # renovate: datasource=github-releases depName=raviqqe/muffet MUFFET_VERSION: 2.9.3 run: | # install raviqqe/muffet to check for broken links. curl -Ls https://github.com/raviqqe/muffet/releases/download/v${MUFFET_VERSION}/muffet_linux_amd64.tar.gz | tar -xz # build site pnpm install pnpm website:build # start http-server for integration testing npx http-server runatlantis.io/.vitepress/dist & - name: Run Playwright E2E tests run: | pnpx playwright install --with-deps pnpm run e2e - 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://github.com/sethvargo/atlantis-on-gke/blob/master/terraform/tls.tf#L64-L84' \ -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"'