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 permissions: # Required: allow read access to the content for analysis. contents: read jobs: changes: outputs: should-run-website-check: ${{ steps.changes.outputs.src == 'true' }} if: github.event.pull_request.draft == false runs-on: ubuntu-24.04 steps: - name: Harden Runner uses: step-security/harden-runner@c6295a65d1254861815972266d5933fd6e532bdf # v2.11.1 with: egress-policy: audit - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3 id: changes with: filters: | src: - 'runatlantis.io/**' - 'package-lock.json' - 'package.json' - '.github/workflows/website.yml' # Check that the website builds and there's no missing links. website-check: needs: [changes] if: github.event.pull_request.draft == false && needs.changes.outputs.should-run-website-check == 'true' name: Website Check runs-on: ubuntu-latest steps: - name: Harden Runner uses: step-security/harden-runner@c6295a65d1254861815972266d5933fd6e532bdf # v2.11.1 with: egress-policy: audit - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - name: markdown-lint uses: DavidAnson/markdownlint-cli2-action@05f32210e84442804257b2a6f20b273450ec8265 # v19 with: config: .markdownlint.yaml globs: 'runatlantis.io/**/*.md' - name: Link Checker id: lychee uses: lycheeverse/lychee-action@1d97d84f0bc547f7b25f4c2170d87d810dc2fb2c # v2.4.0 with: args: --verbose --no-progress ./runatlantis.io - name: setup npm uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4 with: cache: 'npm' - name: run http-server run: | # build site npm install npm run website:build # start http-server for integration testing npx http-server runatlantis.io/.vitepress/dist & - name: Run Playwright E2E tests run: | npx playwright install --with-deps npm run e2e skip-website-check: needs: [changes] if: needs.changes.outputs.should-run-website-check == 'false' name: Website Check runs-on: ubuntu-latest steps: - name: Harden Runner uses: step-security/harden-runner@c6295a65d1254861815972266d5933fd6e532bdf # v2.11.1 with: egress-policy: audit - run: 'echo "No build required"'