diff --git a/jobs/build-container.yml b/jobs/build-container.yml new file mode 100644 index 0000000..836f909 --- /dev/null +++ b/jobs/build-container.yml @@ -0,0 +1,119 @@ +stages: + - build +version: + image: gittools/gitversion:5.12.0 + stage: .pre + variables: + GIT_DEPTH: "0" + script: + # Begin of version-number.sh + - | + #Check for configuration + echo "mode: ContinuousDeployment + continuous-delivery-fallback-tag: '' + branches: + master: + mode: ContinuousDeployment + tag: 'dev' + increment: Minor + track-merge-target: true + tracks-release-branches: true + is-release-branch: false + prevent-increment-of-merged-branch-version: false + release: + regex: release?[/] + mode: ContinuousDeployment + increment: Minor + tag: '' + is-release-branch: true + prevent-increment-of-merged-branch-version: true + feature: + regex: feature?[/] + mode: ContinuousDeployment + increment: Inherit + tag: 'alpha' + is-release-branch: false + prevent-increment-of-merged-branch-version: true + ignore: + sha: [] + " > GitVersion.yml + version=$(/tools/dotnet-gitversion /showvariable NuGetVersionV2) + echo "VERSION=$version" >> version.env + cat version.env + # End of version-number.sh + artifacts: + reports: + dotenv: version.env +sonarcloud-check: + stage: .pre + variables: + SONAR_USER_HOME: "${CI_PROJECT_DIR}/.sonar" # Defines the location of the analysis task cache + GIT_DEPTH: "0" # Tells git to fetch all the branches of the project, required by the analysis task + image: + name: sonarsource/sonar-scanner-cli:latest + entrypoint: [""] + cache: + key: "${CI_JOB_NAME}" + paths: + - .sonar/cache + script: + - sonar-scanner + rules: + - if: $CI_COMMIT_REF_NAME == 'main' || $CI_PIPELINE_SOURCE == 'merge_request_event' +build-container: + image: registry.durp.info/docker:20.10.17 + variables: + DOCKER_DRIVER: overlay2 + DOCKER_TLS_CERTDIR: "" + DOCKER_HOST: tcp://127.0.0.1:2375/ + services: + - name: docker:dind + entrypoint: ["dockerd-entrypoint.sh", "--tls=false"] + stage: build + script: + # Begin of docker-login.sh + - | + #login to docker + docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY/$CI_PROJECT_PATH + # End of docker-login.sh + + # Begin of docker-build.sh + - | + #Build Docker Container + docker build -t $CI_REGISTRY/$CI_PROJECT_PATH:$VERSION -t $CI_REGISTRY/$CI_PROJECT_PATH:latest . + docker push "$CI_REGISTRY/$CI_PROJECT_PATH:latest" + docker push "$CI_REGISTRY/$CI_PROJECT_PATH:$VERSION" + # End of docker-build.sh + needs: + - job: version + artifacts: true + only: + - main +HelmChart: + image: registry.durp.info/dtzar/helm-kubectl + stage: build + script: + # Begin of helm-addrepo.sh + - | + #Helm repo add + helm repo add --username gitlab-ci-token --password ${CI_JOB_TOKEN} ${CI_PROJECT_NAME} ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/helm/stable + # End of helm-addrepo.sh + + # Begin of helm-package.sh + - | + #Helm Package + for chart in charts/*; do + if [ -d "$chart" ]; then + helm package "$chart" -d ./packages --version ${VERSION} + fi + done + # End of helm-package.sh + + # Begin of helm-push.sh + - "#Helm Push \n \nhelm plugin install https://github.com/chartmuseum/helm-push\nfor chart in packages/*; do\n helm cm-push ./$chart ${CI_PROJECT_NAME}\ndone\n" + # End of helm-push.sh + needs: + - job: version + artifacts: true + only: + - main