From 0ba40662ba1d9406eff3fcc020114fedc4cb9bf0 Mon Sep 17 00:00:00 2001 From: Anna Ishkhanyan Date: Sun, 18 Jan 2026 01:55:08 +0400 Subject: [PATCH] Add gitlab file --- .gitlab-ci.yml | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 000000000..0e5496c6f --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,80 @@ +stages: + - checkstyle + - test + - build + - docker + +variables: + MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository" + DOCKER_TLS_CERTDIR: "" + +# -------------------- +# CHECKSTYLE +# -------------------- +checkstyle: + stage: checkstyle + image: maven:3.8.5-openjdk-17 + script: + - mvn validate + artifacts: + when: always + paths: + - target/checkstyle-result.xml + rules: + - if: $CI_MERGE_REQUEST_ID + +# -------------------- +# TEST +# -------------------- +test: + stage: test + image: maven:3.8.5-openjdk-17 + script: + - mvn test + rules: + - if: $CI_MERGE_REQUEST_ID + +# -------------------- +# BUILD (NO TESTS) +# -------------------- +build: + stage: build + image: maven:3.8.5-openjdk-17 + script: + - mvn package -DskipTests + rules: + - if: $CI_MERGE_REQUEST_ID + +# -------------------- +# DOCKER IMAGE FOR MERGE REQUEST +# -------------------- +docker-mr: + stage: docker + image: docker:25 + services: + - docker:25-dind + variables: + IMAGE_NAME: registry.gitlab.com/$CI_PROJECT_PATH/mr + script: + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY + - docker build -t $IMAGE_NAME:$CI_COMMIT_SHORT_SHA . + - docker push $IMAGE_NAME:$CI_COMMIT_SHORT_SHA + rules: + - if: $CI_MERGE_REQUEST_ID + +# -------------------- +# DOCKER IMAGE FOR MAIN +# -------------------- +docker-main: + stage: docker + image: docker:25 + services: + - docker:25-dind + variables: + IMAGE_NAME: registry.gitlab.com/$CI_PROJECT_PATH/main + script: + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY + - docker build -t $IMAGE_NAME:latest . + - docker push $IMAGE_NAME:latest + rules: + - if: $CI_COMMIT_BRANCH == "main" \ No newline at end of file