--- name: CI - Docs on: push: branches: - main - next - version-* pull_request: branches: - main - version-* jobs: lint: runs-on: ubuntu-latest env: NODE_ENV: production strategy: fail-fast: false matrix: command: - prettier-check steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v5 - name: Install dependencies working-directory: website/ run: npm ci - name: Lint working-directory: website/ run: npm run ${{ matrix.command }} build-docs: runs-on: ubuntu-latest env: NODE_ENV: production steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v5 - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v5 with: node-version-file: website/package.json cache: "npm" cache-dependency-path: website/package-lock.json - working-directory: website/ name: Install Dependencies run: npm ci - name: Build Documentation via Docusaurus working-directory: website/ run: npm run build build-integrations: runs-on: ubuntu-latest env: NODE_ENV: production steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v5 - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v5 with: node-version-file: website/package.json cache: "npm" cache-dependency-path: website/package-lock.json - working-directory: website/ name: Install Dependencies run: npm ci - name: Build Integrations via Docusaurus working-directory: website/ run: npm run build -w integrations build-container: runs-on: ubuntu-latest permissions: # Needed to upload container images to ghcr.io packages: write # Needed for attestation id-token: write attestations: write steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v5 with: ref: ${{ github.event.pull_request.head.sha }} - name: Set up QEMU uses: docker/setup-qemu-action@ce360397dd3f832beb865e1373c09c0e9f86d70a # v4.0.0 - name: Set up Docker Buildx uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 - name: prepare variables uses: ./.github/actions/docker-push-variables id: ev env: DOCKER_USERNAME: ${{ secrets.DOCKER_CORP_USERNAME }} with: image-name: ghcr.io/goauthentik/dev-docs - name: Login to Container Registry if: ${{ steps.ev.outputs.shouldPush == 'true' }} uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - name: Build Docker Image id: push uses: docker/build-push-action@bcafcacb16a39f128d818304e6c9c0c18556b85f # v7.1.0 with: tags: ${{ steps.ev.outputs.imageTags }} file: website/Dockerfile push: ${{ steps.ev.outputs.shouldPush == 'true' }} platforms: linux/amd64,linux/arm64 context: . cache-from: type=registry,ref=ghcr.io/goauthentik/dev-docs:buildcache cache-to: ${{ steps.ev.outputs.shouldPush == 'true' && 'type=registry,ref=ghcr.io/goauthentik/dev-docs:buildcache,mode=max' || '' }} - uses: actions/attest-build-provenance@a2bbfa25375fe432b6a289bc6b6cd05ecd0c4c32 # v3 id: attest if: ${{ steps.ev.outputs.shouldPush == 'true' }} with: subject-name: ${{ steps.ev.outputs.attestImageNames }} subject-digest: ${{ steps.push.outputs.digest }} push-to-registry: true ci-website-mark: if: always() needs: - lint - build-docs - build-integrations - build-container runs-on: ubuntu-latest steps: - uses: re-actors/alls-green@05ac9388f0aebcb5727afa17fcccfecd6f8ec5fe # release/v1 with: jobs: ${{ toJSON(needs) }}