diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5fd03e46ffad1bbd546c2045687ce8efacd0461a..e20cff9435241efddbf1fc3fcd93fd837e19d8cf 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,3 +1,8 @@ +include: + - project: "picodata/devops/ci-templates" + file: "build_ci.yml" + ref: 0.1.0 + stages: - test - lint @@ -5,7 +10,7 @@ stages: variables: GIT_STRATEGY: clone - CI_IMAGE_REPOSITORY: docker-picodata.binary.picodata.io + CI_IMAGE_REPOSITORY: docker-public.binary.picodata.io CI_IMAGE: "${CI_IMAGE_REPOSITORY}/${CI_PROJECT_NAME}:0.1.0" DOCKER_AUTH_CONFIG: $DOCKER_AUTH_RO CARGO_NET_GIT_FETCH_WITH_CLI: "true" @@ -78,36 +83,6 @@ publish: build_ci: stage: utility - tags: - - shell - inherit: - default: false + extends: .build_ci_template variables: - DOCKER_AUTH_CONFIG: $DOCKER_AUTH_RW - - # Image version MUST be passed to CI job, or job will be failed. - CI_IMAGE_VERSION: "" - - # If true is passed here, job will overwrite existing image with the same tag. - # If it is false(default) and image with the same tag already resides in docker registry, job will be failed. - CI_IMAGE_OVERWRITE_TAG: "false" - - # If true is passed here, resulting image would also be tagged as latest. - CI_IMAGE_IS_LATEST: "true" - - BASE_IMAGE_NAME: "${CI_IMAGE_REPOSITORY}/${CI_PROJECT_NAME}" - IMAGE_TAG: "${BASE_IMAGE_NAME}:${CI_IMAGE_VERSION}" - LATEST_IMAGE_TAG: "${BASE_IMAGE_NAME}:latest" - before_script: - - if [ -z "$CI_IMAGE_VERSION" ]; then echo "Image version should be specified, got '$CI_IMAGE_VERSION'" 1>&2 && exit 1; fi - - IMAGE_EXIST=$(docker manifest inspect $IMAGE_TAG > /dev/null; echo $?) - - if [[ "$CI_IMAGE_OVERWRITE_TAG" == "false" && "$IMAGE_EXIST" == "0" ]]; then echo "Image tag already resides in registry and it must not be overwritten" 1>&2 && exit 1; fi - script: - - docker build --file Dockerfile.ci -t $IMAGE_TAG . - - if [ $CI_IMAGE_IS_LATEST = "true" ]; then docker tag $IMAGE_TAG $LATEST_IMAGE_TAG; fi - - docker push --all-tags $BASE_IMAGE_NAME - when: manual - only: - changes: - - Dockerfile.ci - needs: [] + DOCKER_REPOSITORY: "docker-public.binary.picodata.io" diff --git a/Dockerfile.ci b/Dockerfile.ci index 63ee2941f2996e31560a9c62f2d477f27dae5167..44e32f580223c162ed3320b2b3cb1aca4f12a87f 100644 --- a/Dockerfile.ci +++ b/Dockerfile.ci @@ -13,7 +13,7 @@ RUN dnf install -y epel-release && \ dnf clean all # install rust -RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain 1.67 -y +RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain 1.70 -y ENV PATH="/kafka/bin:/root/.cargo/bin:${PATH}" RUN cargo install sccache