diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 07648c5824a9aa6c5d34534ca9a2186946474525..4526552a83f85c1affdbda45416e52eb8671913c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -73,6 +73,8 @@ stages: # - dast - staging - canary + - jar + - publish - production - incremental rollout 10% - incremental rollout 25% @@ -127,17 +129,71 @@ trampoline-feedback: expire_in: 1 week checkstyle: - stage: test +# image: $CI_REGISTRY/$CI_PROJECT_PATH/$CI_COMMIT_REF_NAME:$CI_COMMIT_SHA image: wukl/auta-build:0.1.0 + stage: test script: - ./gradlew checkstyleMain checkstyleTest spotbugs: - stage: test +# image: $CI_REGISTRY/$CI_PROJECT_PATH/$CI_COMMIT_REF_NAME:$CI_COMMIT_SHA image: wukl/auta-build:0.1.0 + stage: test script: - ./gradlew :spotbugsMain :core:spotbugsMain :worker:spotbugsMain +jar-core: +# image: $CI_REGISTRY/$CI_PROJECT_PATH/$CI_COMMIT_REF_NAME:$CI_COMMIT_SHA + image: wukl/auta-build:0.1.0 + stage: jar + script: + - ./gradlew bootJar + artifacts: + paths: + - core/build/libs/core-*.jar + expire_in: 1h + +jar-worker: +# image: $CI_REGISTRY/$CI_PROJECT_PATH/$CI_COMMIT_REF_NAME:$CI_COMMIT_SHA + image: wukl/auta-build:0.1.0 + stage: jar + script: + - ./gradlew :worker:jar + artifacts: + paths: + - worker/build/libs/worker-*.jar + expire_in: 1h + +publish-core: + image: registry.gitlab.com/gitlab-org/cluster-integration/auto-build-image/master:stable + variables: + DOCKER_TLS_CERTDIR: "" + services: + - docker:19.03.5-dind + only: + - branches + stage: publish + dependencies: + - jar-core + script: + - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY + - devops/build-slim-image core $CI_COMMIT_REF_NAME + +publish-worker: + image: registry.gitlab.com/gitlab-org/cluster-integration/auto-build-image/master:stable + variables: + DOCKER_TLS_CERTDIR: "" + services: + - docker:19.03.5-dind + only: + - branches + stage: publish + dependencies: + - jar-worker + script: + - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY + - devops/build-slim-image worker $CI_COMMIT_REF_NAME + # Override DAST job to exclude master branch #dast: # except: diff --git a/devops/build-slim-image b/devops/build-slim-image new file mode 100755 index 0000000000000000000000000000000000000000..3670308e02fa9f4844389702d5fa7f757fde87c6 --- /dev/null +++ b/devops/build-slim-image @@ -0,0 +1,44 @@ +#!/bin/bash +set -e + +COMPONENT=$1 +TAG=$2 + +if [ -z "$COMPONENT" ] || [ "$COMPONENT" = all ] +then + ./$0 core $TAG + ./$0 worker $TAG + exit +fi + +if [ -n "$TAG" ] +then + TAG=-$TAG +fi + +VERSION=$(grep -o " version = '[^']*'" build.gradle | cut -d "'" -f 2 | tr -d '\n') + +/bin/echo -e "\033[33;1mReleasing AuTA $COMPONENT v$VERSION$TAG\033[0m" + +if [ $COMPONENT = core ] +then + ARGS= +else + ARGS='host=$COREADDRESS name=$WORKERNAME api-token=$APIKEY api-protocol=$APIPROTOCOL api-port=$APIPORT docker-api=$DOCKERAPI' +fi + +docker build --no-cache --pull -t $CI_REGISTRY/$CI_PROJECT_PATH/$COMPONENT -f slim-$COMPONENT.Dockerfile . \ + --build-arg VERSION=$VERSION --build-arg COMPONENT=$COMPONENT --build-arg ARGS="$ARGS" + +if [ "$TAG" = -local ] +then + exit +fi + +if [ "$TAG" = -latest ] || [ "$TAG" = -master ] +then + docker push $CI_REGISTRY/$CI_PROJECT_PATH/$COMPONENT +else + docker tag $CI_REGISTRY/$CI_PROJECT_PATH/$COMPONENT $CI_REGISTRY/$CI_PROJECT_PATH/$COMPONENT:$VERSION$TAG + docker push $CI_REGISTRY/$CI_PROJECT_PATH/$COMPONENT:$VERSION$TAG +fi