Skip to content
Snippets Groups Projects
Commit 0f6732b8 authored by Neil-Jocelyn Schark's avatar Neil-Jocelyn Schark
Browse files

Merge branch 'fix-merge-train' into 'develop'

Fix merge train

See merge request !211
parents 75bacde2 105e4fe9
No related branches found
No related tags found
7 merge requests!246Develop,!245Develop into Master,!244Master into develop2 into master,!219Draft: Testing,!214Test pipelines,!211Fix merge train,!138Develop
Pipeline #86554 passed
...@@ -5,19 +5,14 @@ variables: ...@@ -5,19 +5,14 @@ variables:
GOLANG_VERSION: "1.16" GOLANG_VERSION: "1.16"
stages: stages:
- .pre
- build - build
- test - test
- analyze
- apply - apply
- integration-test - integration-test
- deploy - deploy
- .post - .post
workflow:
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
when: never
- when: always
include: include:
- local: '/.gitlab/ci/.build-container.yml' - local: '/.gitlab/ci/.build-container.yml'
......
...@@ -5,6 +5,14 @@ ...@@ -5,6 +5,14 @@
entrypoint: [ "" ] entrypoint: [ "" ]
variables: variables:
TAG: $CI_COMMIT_BRANCH TAG: $CI_COMMIT_BRANCH
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
needs: []
build-testing-image:
rules: rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
variables: variables:
...@@ -14,14 +22,6 @@ ...@@ -14,14 +22,6 @@
TAG: develop TAG: develop
BUILDARGS: -race BUILDARGS: -race
- when: always - when: always
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\"}}}" >/kaniko/.docker/config.json
needs: []
build-testing-image:
script: script:
- /kaniko/executor - /kaniko/executor
--cache=true --cache=true
...@@ -29,11 +29,23 @@ build-testing-image: ...@@ -29,11 +29,23 @@ build-testing-image:
--dockerfile "Dockerfile" --dockerfile "Dockerfile"
--build-arg "GOLANG_VERSION=$GOLANG_VERSION" --build-arg "GOLANG_VERSION=$GOLANG_VERSION"
--build-arg "BUILDARGS=$BUILDARGS" --build-arg "BUILDARGS=$BUILDARGS"
--build-arg "GITLAB_PROXY=${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/"
--destination "$GOSDN_TESTING_IMAGE" --destination "$GOSDN_TESTING_IMAGE"
--target "installer" --target "installer"
<<: *build <<: *build
build-image: build-image:
rules:
- if: '$CI_PIPELINE_SOURCE != "merge_request_event"'
when: never
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
variables:
TAG: latest
- if: $CI_COMMIT_BRANCH == "develop"
variables:
TAG: develop
BUILDARGS: -race
- when: always
script: script:
- /kaniko/executor - /kaniko/executor
--cache=true --cache=true
...@@ -41,6 +53,9 @@ build-image: ...@@ -41,6 +53,9 @@ build-image:
--dockerfile "Dockerfile" --dockerfile "Dockerfile"
--build-arg "GOLANG_VERSION=$GOLANG_VERSION" --build-arg "GOLANG_VERSION=$GOLANG_VERSION"
--build-arg "BUILDARGS=$BUILDARGS" --build-arg "BUILDARGS=$BUILDARGS"
--build-arg "GITLAB_PROXY=${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/"
--destination "$GOSDN_IMAGE" --destination "$GOSDN_IMAGE"
--destination "$CI_REGISTRY_IMAGE:$TAG" --destination "$CI_REGISTRY_IMAGE:$TAG"
<<: *build <<: *build
#--build-arg "GITLAB_PROXY=${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/"
code-quality: code-quality:
image: golangci/golangci-lint:latest-alpine image: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/golangci/golangci-lint:latest-alpine
stage: test stage: analyze
script: script:
# writes golangci-lint output to gl-code-quality-report.json # writes golangci-lint output to gl-code-quality-report.json
- golangci-lint run --config .gitlab/ci/.golangci-config/.golangci.yml --out-format code-climate | tee gl-code-quality-report.json - golangci-lint run --config .gitlab/ci/.golangci-config/.golangci.yml --out-format code-climate | tee gl-code-quality-report.json
......
...@@ -5,6 +5,10 @@ variables: ...@@ -5,6 +5,10 @@ variables:
# Templates for Job Types # Templates for Job Types
.containerlab_deploy: &containerlab_deploy .containerlab_deploy: &containerlab_deploy
stage: apply stage: apply
rules:
- if: '$CI_PIPELINE_SOURCE != "merge_request_event"'
when: never
- when: on_success
tags: tags:
- shell - shell
before_script: before_script:
...@@ -16,8 +20,12 @@ variables: ...@@ -16,8 +20,12 @@ variables:
- docker pull ${CEOS_IMAGE} - docker pull ${CEOS_IMAGE}
.containerlab_template: &containerlab_template .containerlab_template: &containerlab_template
image: alpine:latest image: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/alpine:latest
stage: build stage: build
rules:
- if: '$CI_PIPELINE_SOURCE != "merge_request_event"'
when: never
- when: on_success
before_script: before_script:
- export PATH="${PATH}:${CI_PROJECT_DIR}/.gitlab/ci/scripts" - export PATH="${PATH}:${CI_PROJECT_DIR}/.gitlab/ci/scripts"
- firstOctet=$(generate_octet.sh $CI_COMMIT_SHA) - firstOctet=$(generate_octet.sh $CI_COMMIT_SHA)
...@@ -61,6 +69,10 @@ containerlab:deploy:integration: ...@@ -61,6 +69,10 @@ containerlab:deploy:integration:
containerlab:destroy: containerlab:destroy:
rules:
- if: '$CI_PIPELINE_SOURCE != "merge_request_event"'
when: never
- when: always
stage: .post stage: .post
tags: tags:
- shell - shell
...@@ -72,7 +84,6 @@ containerlab:destroy: ...@@ -72,7 +84,6 @@ containerlab:destroy:
- docker volume rm -f ${CLAB_NAME}-volume - docker volume rm -f ${CLAB_NAME}-volume
- docker image rm -f ${GOSDN_IMAGE} - docker image rm -f ${GOSDN_IMAGE}
allow_failure: true allow_failure: true
when: always
#containerlab:template:develop: #containerlab:template:develop:
......
build:k8s-bot: build:k8s-bot:
stage: build stage: build
image: golang:$GOLANG_VERSION image: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/golang:$GOLANG_VERSION
rules: rules:
- if: $CI_COMMIT_BRANCH == "develop" - if: $CI_COMMIT_BRANCH == "develop"
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
...@@ -14,7 +14,7 @@ build:k8s-bot: ...@@ -14,7 +14,7 @@ build:k8s-bot:
.deploy: &deploy .deploy: &deploy
image: image:
name: bitnami/kubectl:latest name: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/bitnami/kubectl:latest
entrypoint: [""] entrypoint: [""]
before_script: before_script:
- echo "override global before script" - echo "override global before script"
......
.integration-test: &integration-test .integration-test: &integration-test
image: $GOSDN_TESTING_IMAGE image: $GOSDN_TESTING_IMAGE
stage: integration-test stage: integration-test
rules:
- if: '$CI_PIPELINE_SOURCE != "merge_request_event"'
when: never
- when: on_success
needs: needs:
- job: "containerlab:deploy:integration" - job: "containerlab:deploy:integration"
tags: tags:
......
.rules: &rules
stage: analyze
rules:
- if: '$CI_PIPELINE_SOURCE != "merge_request_event"'
when: never
- when: always
needs: []
sast: sast:
variables: variables:
SAST_ANALYZER_IMAGE_TAG: '2' SAST_ANALYZER_IMAGE_TAG: '2'
...@@ -8,3 +16,33 @@ include: ...@@ -8,3 +16,33 @@ include:
- template: Security/SAST.gitlab-ci.yml - template: Security/SAST.gitlab-ci.yml
- template: Dependency-Scanning.gitlab-ci.yml - template: Dependency-Scanning.gitlab-ci.yml
- template: Security/License-Scanning.gitlab-ci.yml - template: Security/License-Scanning.gitlab-ci.yml
# - template: Security/Secret-Detection.gitlab-ci.yml
- template: Security/Container-Scanning.gitlab-ci.yml
gemnasium-dependency_scanning:
<<: *rules
gosec-sast:
<<: *rules
license_scanning:
<<: *rules
semgrep-sast:
<<: *rules
#secret_detection:
# <<: *rules
container_scanning:
stage: analyze
rules:
- if: '$CI_PIPELINE_SOURCE != "merge_request_event"'
when: never
- when: always
variables:
DOCKER_IMAGE: "${GOSDN_IMAGE}"
DOCKER_USER: "${CI_REGISTRY_USER}"
DOCKER_PASSWORD: "${CI_REGISTRY_PASSWORD}"
needs:
- build-image
.test: &test .test: &test
image: $GOSDN_TESTING_IMAGE image: $GOSDN_TESTING_IMAGE
stage: test stage: test
rules:
- when: on_success
variables: variables:
GOSDN_LOG: "nolog" GOSDN_LOG: "nolog"
GOSDN_CHANGE_TIMEOUT: "100ms" GOSDN_CHANGE_TIMEOUT: "100ms"
...@@ -24,3 +26,10 @@ controller-test: ...@@ -24,3 +26,10 @@ controller-test:
script: script:
- gotestsum --junitfile report.xml --format testname -- -race -v -run TestRun - gotestsum --junitfile report.xml --format testname -- -race -v -run TestRun
<<: *test <<: *test
test-build:
artifacts:
when: never
script:
- GOOS=linux go build $BUILDARGS ./cmd/gosdn
<<: *test
goplantuml: goplantuml:
image: golang:$GOLANG_VERSION image: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/golang:$GOLANG_VERSION
stage: .post stage: .post
only: only:
- develop - develop
......
ARG GOLANG_VERSION=1.16 ARG GOLANG_VERSION=1.16
ARG BUILDARGS ARG BUILDARGS
ARG $GITLAB_PROXY
FROM golang:$GOLANG_VERSION-buster AS installer FROM ${GITLAB_PROXY}golang:$GOLANG_VERSION-buster AS installer
WORKDIR /src/gosdn WORKDIR /src/gosdn
COPY go.* ./ COPY go.* ./
...@@ -13,7 +14,7 @@ COPY . ./ ...@@ -13,7 +14,7 @@ COPY . ./
RUN GOOS=linux go build $BUILDARGS ./cmd/gosdn RUN GOOS=linux go build $BUILDARGS ./cmd/gosdn
FROM debian:bullseye FROM ${GITLAB_PROXY}debian:bullseye
EXPOSE 8080 EXPOSE 8080
EXPOSE 55055 EXPOSE 55055
COPY --from=builder /src/gosdn/gosdn . COPY --from=builder /src/gosdn/gosdn .
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment