diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..812aa88957a85b7a9d389c09140f2fdec5eb064d --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,23 @@ +services: + - docker:dind +variables: + # explicit tag to be used within pipeline + BUILD_IMAGE_NAME: "$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG:$CI_COMMIT_SHA" + + # we also publish a floating tag to simplify manual testing + BUILD_IMAGE_NAME_LATEST: "$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG:latest" + + DOCKER_VERSION: 19.03.8 + + CI_APPLICATION_TAG: "$CI_COMMIT_SHA" + CI_APPLICATION_REPOSITORY: "$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG/$CI_JOB_NAME" + +stages: + - build + - test + - release + +include: + - local: .gitlab/ci/build.gitlab-ci.yml + - local: .gitlab/ci/test.gitlab-ci.yml + diff --git a/.gitlab/ci/build.gitlab-ci.yml b/.gitlab/ci/build.gitlab-ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..c26ef10851b9b8412af459050f7b7325669aa7e3 --- /dev/null +++ b/.gitlab/ci/build.gitlab-ci.yml @@ -0,0 +1,16 @@ +build: + stage: build + image: "docker:${DOCKER_VERSION}" + services: + - "docker:${DOCKER_VERSION}-dind" + before_script: + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY" + script: + - docker build --build-arg DOCKER_VERSION="$DOCKER_VERSION" + --tag "$BUILD_IMAGE_NAME" + --tag "$BUILD_IMAGE_NAME_LATEST" + . + - docker push "$BUILD_IMAGE_NAME" + - docker push "$BUILD_IMAGE_NAME_LATEST" + tags: + - nexus_runner \ No newline at end of file diff --git a/.gitlab/ci/test.gitlab-ci.yml b/.gitlab/ci/test.gitlab-ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..59f933b0347c2d4ee0863bffb6ad2a89287be68a --- /dev/null +++ b/.gitlab/ci/test.gitlab-ci.yml @@ -0,0 +1,6 @@ +test-shellcheck: + stage: test + image: koalaman/shellcheck-alpine + needs: [] + script: + - shellcheck src/release.sh \ No newline at end of file