diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..0a69d16 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,15 @@ +.git +.gitlab-ci.yml +.idea +.mvn +src +classes +logs +target/* +!target/netneutrality.jar +*.iml +README.md +checkstyle.xml +mvnw +mvnw.cmd +pom.xml \ No newline at end of file diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 06760cf..c1e9598 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -35,9 +35,9 @@ compile: - "chmod +x ./mvnw" - "./mvnw $MAVEN_CLI_OPTS compile" rules: - - if: '$CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_BRANCH == "main"' - when: always - - when: never + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' + - if: '$CI_COMMIT_BRANCH == "main"' + - if: '$CI_COMMIT_TAG' test: stage: test @@ -52,7 +52,9 @@ test: codequality: - "target/gl-code-quality-report.json" rules: - - if: '$CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_BRANCH == "main"' + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' + - if: '$CI_COMMIT_BRANCH == "main"' + - if: '$CI_COMMIT_TAG' package: stage: package @@ -62,23 +64,38 @@ package: artifacts: name: "Maven artifacts from $CI_PROJECT_NAME on $CI_COMMIT_REF_SLUG" paths: - - "**/target" + - target/netneutrality.jar + - startup.sh + expire_in: 1 week rules: + - if: '$CI_COMMIT_BRANCH == "main"' - if: '$CI_COMMIT_TAG' + +docker-build-main: + stage: docker-build + image: quay.io/buildah/stable + needs: + - job: package + artifacts: true + script: + - echo "$CI_REGISTRY_PASSWORD" | buildah login -u "$CI_REGISTRY_USER" --password-stdin "$CI_REGISTRY" + - buildah bud -f Dockerfile -t $CI_REGISTRY_IMAGE:main . + - buildah push $CI_REGISTRY_IMAGE:main + rules: - if: '$CI_COMMIT_BRANCH == "main"' -docker-build: +docker-build-release: stage: docker-build - resource_group: docker-build image: quay.io/buildah/stable + needs: + - job: package + artifacts: true script: - - buildah bud -f Dockerfile -t $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG . + - export RELEASE_VERSION="${CI_COMMIT_TAG#v}" - echo "$CI_REGISTRY_PASSWORD" | buildah login -u "$CI_REGISTRY_USER" --password-stdin "$CI_REGISTRY" - - buildah push $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG - - | - if [ "$CI_COMMIT_BRANCH" = "main" ]; then - buildah tag $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG $CI_REGISTRY_IMAGE:latest - buildah push $CI_REGISTRY_IMAGE:latest - fi + - buildah bud -f Dockerfile -t $CI_REGISTRY_IMAGE:$RELEASE_VERSION . + - buildah push $CI_REGISTRY_IMAGE:$RELEASE_VERSION + - buildah tag $CI_REGISTRY_IMAGE:$RELEASE_VERSION $CI_REGISTRY_IMAGE:latest + - buildah push $CI_REGISTRY_IMAGE:latest rules: - - if: '$CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_BRANCH == "main"' \ No newline at end of file + - if: '$CI_COMMIT_TAG' \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index cae0a02..8d1720e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,14 +1,3 @@ -FROM docker.io/library/eclipse-temurin:25-jdk-alpine AS build - -COPY .mvn/ .mvn -COPY mvnw pom.xml ./ -COPY src ./src -COPY checkstyle.xml ./ - -RUN ["chmod", "+x", "./mvnw"] -RUN ./mvnw install - - FROM docker.io/library/eclipse-temurin:25-jre RUN apt-get update && apt-get install -y --no-install-recommends netcat-openbsd curl && rm -rf /var/lib/apt/lists/* @@ -19,7 +8,7 @@ ARG API_PORT=9000 EXPOSE ${API_PORT} COPY startup.sh ./ -COPY --from=build /target/netneutrality.jar ./ +COPY target/netneutrality.jar ./ RUN ["chmod", "+x", "./startup.sh"] CMD ["./startup.sh"] \ No newline at end of file