Loading .gitlab-ci.yml +1 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ include: variables: GO_VERSION: "1.22.0" GLAB_VERSION: "1.53.0" # See https://docs.gitlab.com/ee/user/packages/generic_packages/#publish-a-package-file PACKAGE_REGISTRY_URL: "$CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/release-cli" Loading .gitlab/ci/build.yml +27 −1 Original line number Diff line number Diff line Loading @@ -9,10 +9,17 @@ docker-build: entrypoint: [""] script: - mkdir -p .docker-cache - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --no-push --cache-dir .docker-cache - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --no-push --build-arg GLAB_VERSION=${GLAB_VERSION} --tar-path image.tar --cache-dir .docker-cache artifacts: paths: - .docker-cache - image.tar expire_in: 1 day # is-latest checks if the current $CI_COMMIT_TAG is the latest git tag so that the `docker-push-tag` Loading @@ -31,6 +38,25 @@ is-latest: reports: dotenv: latest.env check-glab-version: stage: build image: docker:stable services: - docker:dind needs: - docker-build script: - docker load < image.tar - IMAGE_ID=$(docker images -q | head -n 1) - | docker run --rm $IMAGE_ID glab --version if [ "$(printf "%s\n%s" "${GLAB_VERSION}" "$(docker run --rm $IMAGE_ID glab --version | grep -oE '[0-9]+\.[0-9]+\.[0-9]+')" | sort -V | head -n1)" = "${GLAB_VERSION}" ]; then echo "Validating glab version. OK" else echo "Error: glab version does not match." exit 1 fi .binaries: &binaries extends: .go-cache variables: Loading .gitlab/ci/publish.yml +8 −1 Original line number Diff line number Diff line Loading @@ -6,10 +6,16 @@ script: - echo "pushing to $DESTINATION" - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile $DESTINATION --cache-dir .docker-cache - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --build-arg GLAB_VERSION=${GLAB_VERSION} $DESTINATION --cache-dir .docker-cache needs: - job: docker-build artifacts: true - job: check-glab-version docker-push-mr: extends: .docker-push Loading @@ -32,6 +38,7 @@ docker-push-tag: artifacts: true - job: docker-build artifacts: true - job: check-glab-version rules: - if: '$CI_COMMIT_TAG' variables: Loading Dockerfile +3 −1 Original line number Diff line number Diff line Loading @@ -8,7 +8,9 @@ RUN make build FROM alpine:3.18 RUN wget https://gitlab.com/gitlab-org/cli/-/releases/v1.53.0/downloads/glab_1.53.0_linux_amd64.apk -O /tmp/glab.apk && \ # default, overridable via `--build-arg` ARG GLAB_VERSION=1.53.0 RUN wget https://gitlab.com/gitlab-org/cli/-/releases/v${GLAB_VERSION}/downloads/glab_${GLAB_VERSION}_linux_amd64.apk -O /tmp/glab.apk && \ apk add --allow-untrusted /tmp/glab.apk && \ rm /tmp/glab.apk Loading Loading
.gitlab-ci.yml +1 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ include: variables: GO_VERSION: "1.22.0" GLAB_VERSION: "1.53.0" # See https://docs.gitlab.com/ee/user/packages/generic_packages/#publish-a-package-file PACKAGE_REGISTRY_URL: "$CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/release-cli" Loading
.gitlab/ci/build.yml +27 −1 Original line number Diff line number Diff line Loading @@ -9,10 +9,17 @@ docker-build: entrypoint: [""] script: - mkdir -p .docker-cache - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --no-push --cache-dir .docker-cache - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --no-push --build-arg GLAB_VERSION=${GLAB_VERSION} --tar-path image.tar --cache-dir .docker-cache artifacts: paths: - .docker-cache - image.tar expire_in: 1 day # is-latest checks if the current $CI_COMMIT_TAG is the latest git tag so that the `docker-push-tag` Loading @@ -31,6 +38,25 @@ is-latest: reports: dotenv: latest.env check-glab-version: stage: build image: docker:stable services: - docker:dind needs: - docker-build script: - docker load < image.tar - IMAGE_ID=$(docker images -q | head -n 1) - | docker run --rm $IMAGE_ID glab --version if [ "$(printf "%s\n%s" "${GLAB_VERSION}" "$(docker run --rm $IMAGE_ID glab --version | grep -oE '[0-9]+\.[0-9]+\.[0-9]+')" | sort -V | head -n1)" = "${GLAB_VERSION}" ]; then echo "Validating glab version. OK" else echo "Error: glab version does not match." exit 1 fi .binaries: &binaries extends: .go-cache variables: Loading
.gitlab/ci/publish.yml +8 −1 Original line number Diff line number Diff line Loading @@ -6,10 +6,16 @@ script: - echo "pushing to $DESTINATION" - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile $DESTINATION --cache-dir .docker-cache - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --build-arg GLAB_VERSION=${GLAB_VERSION} $DESTINATION --cache-dir .docker-cache needs: - job: docker-build artifacts: true - job: check-glab-version docker-push-mr: extends: .docker-push Loading @@ -32,6 +38,7 @@ docker-push-tag: artifacts: true - job: docker-build artifacts: true - job: check-glab-version rules: - if: '$CI_COMMIT_TAG' variables: Loading
Dockerfile +3 −1 Original line number Diff line number Diff line Loading @@ -8,7 +8,9 @@ RUN make build FROM alpine:3.18 RUN wget https://gitlab.com/gitlab-org/cli/-/releases/v1.53.0/downloads/glab_1.53.0_linux_amd64.apk -O /tmp/glab.apk && \ # default, overridable via `--build-arg` ARG GLAB_VERSION=1.53.0 RUN wget https://gitlab.com/gitlab-org/cli/-/releases/v${GLAB_VERSION}/downloads/glab_${GLAB_VERSION}_linux_amd64.apk -O /tmp/glab.apk && \ apk add --allow-untrusted /tmp/glab.apk && \ rm /tmp/glab.apk Loading