Commit fab777e4 authored by Furkan Ayhan's avatar Furkan Ayhan 2️⃣
Browse files

Add check-glab-version job to CI

parent 558f0d02
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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"

+27 −1
Original line number Diff line number Diff line
@@ -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`
@@ -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:
+8 −1
Original line number Diff line number Diff line
@@ -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
@@ -32,6 +38,7 @@ docker-push-tag:
      artifacts: true
    - job: docker-build
      artifacts: true
    - job: check-glab-version
  rules:
    - if: '$CI_COMMIT_TAG'
  variables:
+3 −1
Original line number Diff line number Diff line
@@ -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