--- 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@6044e13b5dc448c55e2357c09f80417699197238 # 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@6044e13b5dc448c55e2357c09f80417699197238 # 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@c7c53464625b32c7a7e944ae62b3e17d2b600130 # v3.7.0 - name: Set up Docker Buildx uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3 - 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@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - name: Build Docker Image id: push uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6 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@96278af6caaf10aea03fd8d33a09a777ca52d62f # 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) }}