name: Keycloak Documentation on: push: branches-ignore: - main - dependabot/** pull_request: schedule: - cron: 0 5 * * * workflow_dispatch: env: DEFAULT_JDK_VERSION: 17 DEFAULT_JDK_DIST: temurin concurrency: # Only cancel jobs for PR updates group: documentation-${{ github.head_ref || github.run_id }} cancel-in-progress: true defaults: run: shell: bash jobs: conditional: name: Check conditional workflows and jobs if: github.event_name != 'schedule' || github.repository == 'keycloak/keycloak' runs-on: ubuntu-latest outputs: documentation: ${{ steps.conditional.outputs.documentation }} steps: - uses: actions/checkout@v3 - id: conditional uses: ./.github/actions/conditional build: name: Build if: ${{ needs.conditional.outputs.documentation == 'true' }} runs-on: ubuntu-latest needs: conditional steps: - uses: actions/checkout@v3 - id: setup-java name: Setup Java uses: actions/setup-java@v3 with: distribution: ${{ env.DEFAULT_JDK_DIST }} java-version: ${{ env.DEFAULT_JDK_VERSION }} - id: maven-cache name: Maven cache uses: ./.github/actions/maven-cache - id: build-documentation name: Build Keycloak shell: bash run: | MVN_HTTP_CONFIG="-Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.http.retryHandler.class=standard -Dmaven.wagon.http.retryHandler.count=3 -Dmaven.wagon.httpconnectionManager.ttlSeconds=120" ./mvnw install -DskipTests -am -pl docs/documentation/tests,docs/documentation/dist -nsu -B -e $MVN_HTTP_CONFIG -Pdocumentation - id: test-documentation name: Verify Keycloak documentation shell: bash run: | ./mvnw test -Dtest=!ExternalLinksTest -am -pl docs/documentation/tests,docs/documentation/dist -nsu -B -e -Pdocumentation - id: upload-keycloak-documentation name: Upload Keycloak documentation uses: actions/upload-artifact@v3 with: name: keycloak-documentation path: docs/documentation/dist/target/*.zip retention-days: 1 external-links: name: External links check if: ${{ needs.conditional.outputs.documentation == 'true' }} runs-on: ubuntu-latest needs: conditional steps: - uses: actions/checkout@v3 - id: setup-java name: Setup Java uses: actions/setup-java@v3 with: distribution: ${{ env.DEFAULT_JDK_DIST }} java-version: ${{ env.DEFAULT_JDK_VERSION }} - id: maven-cache name: Maven cache uses: ./.github/actions/maven-cache - id: build-documentation name: Build Keycloak shell: bash run: | MVN_HTTP_CONFIG="-Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.http.retryHandler.class=standard -Dmaven.wagon.http.retryHandler.count=3 -Dmaven.wagon.httpconnectionManager.ttlSeconds=120" ./mvnw install -DskipTests -am -pl docs/documentation/tests -nsu -B -e -Pdocumentation $MVN_HTTP_CONFIG - id: test-documentation name: Verify Keycloak documentation shell: bash run: | ./mvnw test -Dtest=ExternalLinksTest -am -pl docs/documentation/tests,docs/documentation/dist -nsu -B -e -Pdocumentation check-set-status: name: Set check conclusion needs: - build runs-on: ubuntu-latest outputs: conclusion: ${{ steps.check.outputs.conclusion }} steps: - uses: actions/checkout@v3 - id: check uses: ./.github/actions/checks-success check: name: Status Check - Keycloak Documentation if: always() && ( github.event_name != 'schedule' || github.repository == 'keycloak/keycloak' ) needs: - conditional - check-set-status runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Check status uses: ./.github/actions/checks-job-pass with: required: ${{ needs.conditional.outputs.documentation == 'true' }} conclusion: ${{ needs.check-set-status.outputs.conclusion }}