refactor: 빌드 로직 개선, gradle 파일 경량화
This commit is contained in:
@@ -51,11 +51,6 @@ jobs:
|
||||
- name: Run the pull-request gate
|
||||
working-directory: src
|
||||
run: ./gradlew :ci :verifyPublicPathSnapshot :verifyDependencyLocks --warning-mode=fail --stacktrace
|
||||
# build-logic is an included build: its own suite is not reachable from the root project's
|
||||
# `check`, so the convention plugins every leaf applies would otherwise ship untested.
|
||||
- name: Test the build-logic convention plugins
|
||||
working-directory: src
|
||||
run: ./gradlew -p build-logic test --stacktrace
|
||||
# Named as its own step because nothing else runs it: `check` does not depend on
|
||||
# graphqlStableTest, so the lane's required-class guard — the check that its module-boundary
|
||||
# suite has not silently stopped being discovered — would protect nothing in CI.
|
||||
@@ -66,6 +61,17 @@ jobs:
|
||||
working-directory: src
|
||||
run: ./gradlew :conditionalTransportQualification --stacktrace
|
||||
|
||||
build-logic:
|
||||
# Included-build tests are independent of the main project task graph. Running them as a
|
||||
# separate blocking job keeps plugin TestKit work off the quality-gates critical path.
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # actions/checkout@v4.2.2
|
||||
- uses: ./.github/actions/setup-gradle-java
|
||||
- name: Test the build-logic convention plugins
|
||||
working-directory: src
|
||||
run: ./gradlew -p build-logic test --stacktrace
|
||||
|
||||
redis-sdk:
|
||||
# Milestone A of the Redis wrapper/typed API plan: policy catalog, typed API parity, permit
|
||||
# provenance, connection isolation, and the executor guard. There is no real-server lane yet.
|
||||
@@ -149,6 +155,7 @@ jobs:
|
||||
release-gate:
|
||||
needs:
|
||||
- quality-gates
|
||||
- build-logic
|
||||
- redis-sdk
|
||||
- jpa-candidate-evidence
|
||||
- optional-platforms
|
||||
@@ -161,6 +168,7 @@ jobs:
|
||||
- name: Require every current blocking job to succeed
|
||||
env:
|
||||
QUALITY_RESULT: ${{ needs.quality-gates.result }}
|
||||
BUILD_LOGIC_RESULT: ${{ needs.build-logic.result }}
|
||||
REDIS_RESULT: ${{ needs.redis-sdk.result }}
|
||||
JPA_CANDIDATE_RESULT: ${{ needs.jpa-candidate-evidence.result }}
|
||||
OPTIONAL_PLATFORMS_RESULT: ${{ needs.optional-platforms.result }}
|
||||
@@ -169,6 +177,7 @@ jobs:
|
||||
set -euo pipefail
|
||||
for result in \
|
||||
"${QUALITY_RESULT}" \
|
||||
"${BUILD_LOGIC_RESULT}" \
|
||||
"${REDIS_RESULT}" \
|
||||
"${JPA_CANDIDATE_RESULT}" \
|
||||
"${OPTIONAL_PLATFORMS_RESULT}" \
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
name: jpa-release
|
||||
|
||||
# The release gate. src/config/jpa/release-registry.json is the source: every gate it declares has a
|
||||
# job or an assertion here, JpaReleaseRenderingTest holds this file's matrix and promotion lists to
|
||||
# the registry's Stable majors, and verifyJpaReleaseGateTasks resolves each gate's task against the
|
||||
# real Gradle graph. So a gate removed from the registry, or a major demoted in it, fails the build
|
||||
# rather than quietly ceasing to be checked.
|
||||
# The release registry is the gate-task source: jpaReleaseQualification reads its blocking gates,
|
||||
# while JpaReleaseRenderingTest holds this file's matrix and promotion lists to the registry's Stable
|
||||
# majors and verifyJpaReleaseGateTasks resolves each declared task against the real Gradle graph.
|
||||
# CI therefore owns release scheduling, not a second JPA gate-task inventory.
|
||||
#
|
||||
# The matrix below is therefore not free to drift: editing it without editing the registry fails the
|
||||
# unit lane.
|
||||
@@ -44,13 +43,12 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # actions/checkout@v4.2.2
|
||||
- uses: ./.github/actions/setup-gradle-java
|
||||
- name: Run the full JPA release gate on PostgreSQL ${{ matrix.postgresql }}
|
||||
- name: Run the JPA database qualification set on PostgreSQL ${{ matrix.postgresql }}
|
||||
working-directory: src
|
||||
run: >-
|
||||
./gradlew
|
||||
jpaReleaseGate
|
||||
jpaReleaseQualification
|
||||
-Pjpa.matrix.versions=${{ matrix.postgresql }}
|
||||
|
||||
--stacktrace
|
||||
- name: Record which major this evidence covers
|
||||
if: always()
|
||||
@@ -61,7 +59,7 @@ jobs:
|
||||
echo "sha=${{ github.sha }}"
|
||||
echo "ref=${{ github.ref }}"
|
||||
echo "postgresql-major=${{ matrix.postgresql }}"
|
||||
echo "task=jpaReleaseGate"
|
||||
echo "task-set=jpa-database-qualification"
|
||||
} > "build/jpa-release-evidence/manifest-${{ matrix.postgresql }}.properties"
|
||||
- name: Upload the release evidence
|
||||
if: always()
|
||||
@@ -120,9 +118,11 @@ jobs:
|
||||
working-directory: src
|
||||
run: >-
|
||||
./gradlew
|
||||
:verifyJpaReleaseGateTasks
|
||||
:verifyJpaReadinessRegistry
|
||||
:verifyCleanArchitectureDependencies
|
||||
checkstyleMain
|
||||
:app-bootstrap:test --tests 'dev.caskeleton.bootstrap.architecture.*'
|
||||
:app-bootstrap:architectureTest
|
||||
:adapter:outbound:persistence-jpa:test --tests '*JpaReleaseManifestTest'
|
||||
|
||||
--stacktrace
|
||||
|
||||
Reference in New Issue
Block a user