keycloak-scim/.github/workflows/documentation.yml

142 lines
4.1 KiB
YAML
Raw Normal View History

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 }}