0f1093774f
Replace custom registry variables with GitLab's predefined CI_REGISTRY, CI_REGISTRY_IMAGE, and CI_REGISTRY_USER to ensure the built-in CI_JOB_TOKEN has correct push permissions.
58 lines
1.3 KiB
YAML
58 lines
1.3 KiB
YAML
variables:
|
|
GRADLE_OPTS: -Dorg.gradle.daemon=false
|
|
DOCKER_HOST: unix:///var/run/docker.sock
|
|
|
|
stages:
|
|
- build
|
|
- package
|
|
- deploy
|
|
|
|
build:
|
|
stage: build
|
|
image: amazoncorretto:21-alpine
|
|
cache:
|
|
key: gradle
|
|
paths:
|
|
- .gradle/wrapper
|
|
- .gradle/caches
|
|
before_script:
|
|
- chmod +x gradlew
|
|
script:
|
|
- ./gradlew bootJar -x test -PartefactVersion="$CI_COMMIT_TAG"
|
|
artifacts:
|
|
paths:
|
|
- build/libs/*.jar
|
|
expire_in: 30 min
|
|
rules:
|
|
- if: $CI_COMMIT_TAG
|
|
|
|
package:
|
|
stage: package
|
|
image: docker:27
|
|
needs:
|
|
- build
|
|
script:
|
|
- JAR_FILE=$(find build/libs -name '*.jar' | head -1)
|
|
- echo "Building Docker image for tag $CI_COMMIT_TAG with JAR $JAR_FILE"
|
|
- docker build
|
|
-f Dockerfile.ci
|
|
--build-arg JAR_FILE="$JAR_FILE"
|
|
-t "$CI_REGISTRY_IMAGE:$CI_COMMIT_TAG"
|
|
.
|
|
- docker tag "$CI_REGISTRY_IMAGE:$CI_COMMIT_TAG" "$CI_REGISTRY_IMAGE:latest"
|
|
rules:
|
|
- if: $CI_COMMIT_TAG
|
|
|
|
deploy:
|
|
stage: deploy
|
|
image: docker:27
|
|
needs:
|
|
- package
|
|
script:
|
|
- echo "Pushing image $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG"
|
|
- docker login "$CI_REGISTRY" -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD"
|
|
- docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_TAG"
|
|
- docker push "$CI_REGISTRY_IMAGE:latest"
|
|
rules:
|
|
- if: $CI_COMMIT_TAG
|