stages: - build - release variables: GRADLE_USER_HOME: "$CI_PROJECT_DIR/.gradle" build: stage: build image: gradle:jdk21 # Use the specific Docker image for this job script: - echo "Building with Gradle on Java 21:" - java -version - ./gradlew :daemon-all shadowJar artifacts: paths: - build/libs/ expire_in: 7 days release: stage: release image: alpine:latest # Use a minimal image for release preparation script: - mkdir -p release - cp build/libs/*.jar release/ - echo "Release artifact generated." artifacts: paths: - release/ expire_in: 7 days only: - tags