--- default: image: quay.io/buildah/stable:v1.32 tags: - docker - linux workflow: rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS when: never - if: $CI_COMMIT_BRANCH include: - component: gitlab.com/blue42u/ci.pre-commit/lite@0.2.0 inputs: job_stage: test envars: stage: test script: | echo "Select CI env. vars.:"; printenv | egrep '^CI_' | sort commit_check: stage: test rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" - when: never variables: BADRX: '^(squash!)|(fixup!)' script: | dnf install -y git shortlogtmp=$(mktemp -p '' commit_check_tmp_XXXX) git log --oneline --no-show-signature "${CI_MERGE_REQUEST_DIFF_BASE_SHA}..HEAD" > "$shortlogtmp" if egrep -q "$BADRX" "$shortlogtmp"; then egrep "$BADRX" "$shortlogtmp" die "Found the above commits matching '$BADRX'" fi build: stage: deploy variables: BUILDAH_FORMAT: docker BUILDAH_ISOLATION: chroot STORAGE_DRIVER: vfs before_script: - echo "$CI_REGISTRY_PASSWORD" | buildah login -u "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY script: # N/B: There could be more than one merge-request open with this branch's HEAD - | IMAGE_TAG="${CI_COMMIT_REF_SLUG}"; if [[ -n "$CI_COMMIT_TAG" ]]; then IMAGE_TAG="${CI_COMMIT_TAG}"; elif [[ -n "$CI_OPEN_MERGE_REQUESTS" ]]; then IMAGE_TAG=mr$(echo "${CI_OPEN_MERGE_REQUESTS}" | cut -d, -f -1 | cut -d\! -f 2); elif [[ "$CI_COMMIT_BRANCH" == "main" ]]; then IMAGE_TAG="latest"; fi echo "Building/Pushing to: ${CI_REGISTRY_IMAGE}:${IMAGE_TAG}"; - >- buildah build \ --label "org.opencontainers.image.source=${CI_PROJECT_URL}" \ --label "org.opencontainers.image.revision=$CI_COMMIT_SHA" \ --label "org.opencontainers.image.created=$CI_JOB_STARTED_AT" \ --label "org.opencontainers.image.version=${IMAGE_TAG}" \ -t "${CI_REGISTRY_IMAGE}:${IMAGE_TAG}" "$CI_PROJECT_DIR" - buildah images - buildah push "${CI_REGISTRY_IMAGE}:${IMAGE_TAG}"