diff --git a/.github/actions/conditional/action.yml b/.github/actions/conditional/action.yml index b323a25a90..596344b43b 100644 --- a/.github/actions/conditional/action.yml +++ b/.github/actions/conditional/action.yml @@ -10,6 +10,9 @@ outputs: ci: description: Should "ci.yml" execute value: ${{ steps.changes.outputs.ci }} + ci-quarkus: + description: Should "ci.yml" execute + value: ${{ steps.changes.outputs.ci-quarkus }} ci-store: description: Should "ci.yml" execute value: ${{ steps.changes.outputs.ci-store }} diff --git a/.github/actions/conditional/conditions b/.github/actions/conditional/conditions index 04e3eb39e8..61949e0f65 100644 --- a/.github/actions/conditional/conditions +++ b/.github/actions/conditional/conditions @@ -2,27 +2,29 @@ # # To test a pattern run '.github/actions/conditional/conditional.sh ' -.github/actions/ ci ci-store ci-sssd operator js codeql-java codeql-themes guides documentation -.github/scripts/ ci ci-sssd +.github/actions/ ci ci-quarkus ci-store ci-sssd operator js codeql-java codeql-themes guides documentation +.github/scripts/ ci ci-quarkus ci-sssd .github/scripts/ansible/ ci-store .github/scripts/aws/ ci-store -.github/workflows/ci.yml ci ci-store ci-sssd +.github/workflows/ci.yml ci ci-quarkus ci-store ci-sssd .github/workflows/operator-ci.yml operator .github/workflows/js-ci.yml js .github/workflows/codeql-analysis.yml codeql-java codeql-themes .github/workflows/guides.yml guides .github/workflows/documentation.yml documentation -.mvn/ ci ci-store ci-sssd operator js codeql-java codeql-themes guides documentation -mvnw ci ci-store ci-sssd operator js codeql-java codeql-themes guides documentation -mvnw.cmd ci ci-store ci-sssd operator js codeql-java codeql-themes guides documentation +.mvn/ ci ci-quarkus ci-store ci-sssd operator js codeql-java codeql-themes guides documentation +mvnw ci ci-quarkus ci-store ci-sssd operator js codeql-java codeql-themes guides documentation +mvnw.cmd ci ci-quarkus ci-store ci-sssd operator js codeql-java codeql-themes guides documentation */src/main/ ci operator */src/test/ ci operator -pom.xml ci ci-store operator +pom.xml ci ci-quarkus ci-store operator federation/sssd/ ci ci-sssd +quarkus/ ci-quarkus guides + model/ ci-store operator/ operator diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 496fb53917..b6101d497f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -29,6 +29,7 @@ jobs: runs-on: ubuntu-latest outputs: ci: ${{ steps.conditional.outputs.ci }} + ci-quarkus: ${{ steps.conditional.outputs.ci-quarkus }} ci-store: ${{ steps.conditional.outputs.ci-store }} ci-sssd: ${{ steps.conditional.outputs.ci-sssd }} ci-store-matrix: ${{ steps.conditional-stores.outputs.matrix }} @@ -174,7 +175,8 @@ jobs: quarkus-unit-tests: name: Quarkus UT - needs: build + needs: [build, conditional] + if: needs.conditional.outputs.ci-quarkus == 'true' timeout-minutes: 15 strategy: matrix: @@ -204,21 +206,28 @@ jobs: quarkus-integration-tests: name: Quarkus IT - needs: build + needs: [build, conditional] timeout-minutes: 115 strategy: matrix: - os: [ubuntu-latest, windows-latest] - server: [sanity-check-zip, zip, container, storage] + os: [ubuntu-latest] + suite: [zip, container, storage, smoke] + full-testsuite: + - ${{ needs.conditional.outputs.ci-quarkus == 'true' }} + # Win runs always as includes are evaluated after excludes + include: + - os: windows-latest + suite: win + # Either run smoke tests, or full testsuite exclude: - - os: windows-latest - server: zip - - os: windows-latest - server: container - - os: windows-latest - server: storage - - os: ubuntu-latest - server: sanity-check-zip + - full-testsuite: false + suite: zip + - full-testsuite: false + suite: container + - full-testsuite: false + suite: storage + - full-testsuite: true + suite: smoke fail-fast: false runs-on: ${{ matrix.os }} env: @@ -231,16 +240,18 @@ jobs: uses: ./.github/actions/unit-test-setup # Not sure why, but needs to re-build otherwise there's some failures starting up + # Smoke tests should cover scenarios that could be broken by changes in other modules that quarkus - name: Run Quarkus integration Tests run: | declare -A PARAMS - PARAMS["sanity-check-zip"]="-Dtest=StartCommandDistTest,StartDevCommandDistTest,BuildAndStartDistTest,ImportAtStartupDistTest" + PARAMS["win"]="-Dtest=StartCommandDistTest,StartDevCommandDistTest,BuildAndStartDistTest,ImportAtStartupDistTest" PARAMS["zip"]="" PARAMS["container"]="-Dkc.quarkus.tests.dist=docker" PARAMS["storage"]="-Ptest-database -Dtest=PostgreSQLDistTest,MariaDBDistTest#testSuccessful,MySQLDistTest#testSuccessful,DatabaseOptionsDistTest,JPAStoreDistTest,HotRodStoreDistTest,MixedStoreDistTest,TransactionConfigurationDistTest,ExternalInfinispanTest" + PARAMS["smoke"]="-Dtest=ClusterConfigDistTest,CustomJpaEntityProviderDistTest,ExportDistTest,FeaturesDistTest,ImportAtStartupDistTest,ImportDistTest,JaxRsDistTest,TruststoreDistTest" ./mvnw install -pl quarkus/tests/integration -am -DskipTests - ./mvnw test -pl quarkus/tests/integration ${PARAMS["${{ matrix.server }}"]} 2>&1 | misc/log/trimmer.sh + ./mvnw test -pl quarkus/tests/integration ${PARAMS["${{ matrix.suite }}"]} 2>&1 | misc/log/trimmer.sh - name: Upload JVM Heapdumps if: always()