From 5883b7f2a0164d024144bec8016b638f1beb7668 Mon Sep 17 00:00:00 2001 From: Neil-Jocelyn Schark <neil-jocelyn.schark@stud.h-da.de> Date: Wed, 8 Dec 2021 11:55:24 +0000 Subject: [PATCH] Tag release container and packages --- .gitlab-ci.yml | 5 +- .gitlab/ci/.build-container.yml | 6 +-- .gitlab/ci/.build-release.yml | 86 +++++++++++++++++++++++++++++++++ 3 files changed, 90 insertions(+), 7 deletions(-) create mode 100644 .gitlab/ci/.build-release.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a6e281c4f..fca153397 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -10,10 +10,9 @@ stages: - analyze - apply - integration-test - - deploy + - build-release - .post - include: - local: '/.gitlab/ci/.build-container.yml' - local: '/.gitlab/ci/.code-quality-ci.yml' @@ -22,4 +21,4 @@ include: - local: '/.gitlab/ci/.containerlab-ci.yml' - local: '/.gitlab/ci/.integration-test.yml' - local: '/.gitlab/ci/.uml-autogen-ci.yml' -# - local: '/.gitlab/ci/.deploy-k8s.yml' + - local: '/.gitlab/ci/.build-release.yml' diff --git a/.gitlab/ci/.build-container.yml b/.gitlab/ci/.build-container.yml index 189e34f47..d948433ab 100644 --- a/.gitlab/ci/.build-container.yml +++ b/.gitlab/ci/.build-container.yml @@ -19,7 +19,7 @@ build-testing-image: TAG: latest - if: $CI_COMMIT_BRANCH == "develop" variables: - TAG: develop + TAG: $CI_COMMIT_BRANCH BUILDARGS: -race - when: always script: @@ -40,7 +40,7 @@ build-image: when: never - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH variables: - TAG: latest + TAG: $CI_DEFAULT_BRANCH - if: $CI_COMMIT_BRANCH == "develop" variables: TAG: develop @@ -57,5 +57,3 @@ build-image: --destination "$GOSDN_IMAGE" --destination "$CI_REGISTRY_IMAGE:$TAG" <<: *build - - #--build-arg "GITLAB_PROXY=${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/" diff --git a/.gitlab/ci/.build-release.yml b/.gitlab/ci/.build-release.yml new file mode 100644 index 000000000..e671eb527 --- /dev/null +++ b/.gitlab/ci/.build-release.yml @@ -0,0 +1,86 @@ +.build-release-docker: &build-release-docker + stage: build-release + image: + name: gcr.io/kaniko-project/executor:debug + entrypoint: [ "" ] + rules: + # TODO: Implement later when we need it + #- if: $CI_COMMIT_TAG =~ .+ && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH + # variables: + # TAG: $CI_COMMIT_TAG + # when: on_success + - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH + variables: + TAG: $CI_DEFAULT_BRANCH + when: on_success + - when: never + before_script: + # replace all slashes in the tag with hyphen, because slashes are not allowed in tags + - TAG=${TAG//\//-} + - mkdir -p /kaniko/.docker + - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"},\"$CI_DEPENDENCY_PROXY_SERVER\":{\"username\":\"$CI_DEPENDENCY_PROXY_USER\",\"password\":\"$CI_DEPENDENCY_PROXY_TOKEN\"}}}" > /kaniko/.docker/config.json + +build-release-image: + script: + - /kaniko/executor + --cache=true + --context "$CI_PROJECT_DIR" + --dockerfile "Dockerfile" + --build-arg "GOLANG_VERSION=$GOLANG_VERSION" + --build-arg "BUILDARGS=$BUILDARGS" + --build-arg "GITLAB_PROXY=${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/" + --destination "$GOSDN_IMAGE" + --destination "$CI_REGISTRY_IMAGE:$TAG" + - /kaniko/executor + --cache=true + --context "$CI_PROJECT_DIR" + --dockerfile "Dockerfile" + --build-arg "GOLANG_VERSION=$GOLANG_VERSION" + --build-arg "BUILDARGS=$BUILDARGS" + --build-arg "GITLAB_PROXY=${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/" + --destination "$GOSDN_IMAGE" + --destination "$CI_REGISTRY_IMAGE:latest" + <<: *build-release-docker + + +.build-release-binary: &build-release-binary + stage: build-release + image: + name: ${GITLAB_PROXY}golang:$GOLANG_VERSION + rules: + # TODO: Implement later when we need it + #- if: $CI_COMMIT_TAG =~ .+ && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH + # variables: + # TAG: $CI_COMMIT_TAG + # when: on_success + - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH + variables: + TAG: $CI_DEFAULT_BRANCH + when: on_success + - if: $CI_COMMIT_BRANCH == "develop" + variables: + TAG: $CI_COMMIT_BRANCH + when: on_success + - when: never + +build-release-linux: + script: + - GOOS=linux go build ./cmd/gosdn + - mv gosdn gosdn-$TAG + - 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file gosdn-$TAG "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/gosdn/$TAG/gosdn-$TAG-linux"' + artifacts: + paths: + - gosdn-$TAG + expire_in: 4 weeks + <<: *build-release-binary + +build-release-freebsd: + script: + - GOOS=freebsd go build ./cmd/gosdn + - mv gosdn gosdn-$TAG + - - 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file gosdn-$TAG "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/gosdn/$TAG/gosdn-$TAG-freebsd"' + artifacts: + paths: + - gosdn-$TAG + expire_in: 4 weeks + <<: *build-release-binary \ No newline at end of file -- GitLab