refactor: 빌드 로직 개선, gradle 파일 경량화

This commit is contained in:
donghyeon-ka
2026-09-18 15:22:30 +09:00
parent ace8aaaef6
commit 60b6a319e7
397 changed files with 19320 additions and 8406 deletions
+14 -5
View File
@@ -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}" \
+10 -10
View File
@@ -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