CI版本管理工具
项目描述
CI版本管理工具
project-version
为CI构建提供版本环境变量。
示例输出
$ cat VERSION
0.2.7
$ project-version --version-source-file VERSION --dev-nr 12345 env-vars
VERSION_SEMVER=0.2.7-dev.12345
VERSION_SEMVER_MAJOR=0
VERSION_SEMVER_MINOR=0.2
VERSION_IS_PRE_RELEASE=1
$ project-version --version-source-file VERSION --dev-nr 12345 --git-tag v0.2.7 env-vars
VERSION_SEMVER=0.2.7
VERSION_SEMVER_MAJOR=0
VERSION_SEMVER_MINOR=0.2
VERSION_IS_RELEASE=1
VERSION_IS_LATEST_RELEASE=1
$ git checkout v0.2.6
Note: switching to 'v0.2.6'.
$ cat VERSION
0.2.6
$ project-version --version-source-file VERSION --dev-nr 12345 --git-tag v0.2.6 env-vars
VERSION_SEMVER=0.2.6
VERSION_SEMVER_MAJOR=0
VERSION_SEMVER_MINOR=0.2
VERSION_IS_RELEASE=1
$ project-version --version-source-file VERSION --dev-nr 12345 --git-tag v9.9.9 env-vars
ERROR:ci_version_tools.project:Version 0.2.7 in the version source does not match the version 9.9.9 in the Git tag
$ echo $?
1
示例应用在.gitlab-cy.yml
version:
image: docker.io/alikov/ci-version-tools:0.1.0
stage: .pre
script:
- project-version
--version-source-file ./VERSION
--git-version-tag-prefix v
--dev-identifier dev
--dev-nr "${CI_PIPELINE_IID:-0}"
${CI_COMMIT_TAG:+--git-tag "$CI_COMMIT_TAG"}
env-vars | tee version.env
artifacts:
reports:
dotenv:
- version.env
.build-image:
stage: build
image: $BUILDAH_CI_IMAGE
script:
- IMAGE="${CI_REGISTRY_IMAGE}:${VERSION_SEMVER}"
- buildah build -t "$IMAGE" .
- buildah push "$IMAGE"
- if [ -n "${VERSION_IS_RELEASE:-}" ]; then
buildah push "$IMAGE" "${CI_REGISTRY_IMAGE}:${VERSION_SEMVER_MAJOR}";
buildah push "$IMAGE" "${CI_REGISTRY_IMAGE}:${VERSION_SEMVER_MINOR}";
fi
- if [ -n "${VERSION_IS_LATEST_RELEASE:-}" ]; then
buildah push "$IMAGE" "${CI_REGISTRY_IMAGE}:latest";
fi
needs:
- version
version-env-vars
解析包含语义版本的环境变量到主要/次要版本。
示例输出
$ export ALPINE_VERSION=3.20.2
$ export TERRAFORM_VERSION=1.9.3
$ version-env-vars parse ALPINE_VERSION TERRAFORM_VERSION
ALPINE_VERSION_MAJOR=3
ALPINE_VERSION_MINOR=3.20
TERRAFORM_VERSION_MAJOR=1
TERRAFORM_VERSION_MINOR=1.9
示例应用在.gitlab-cy.yml
variables:
ALPINE_VERSION: "3.20.2"
TERRAFORM_VERSION: "1.9.3"
tool-versions:
image: docker.io/alikov/ci-version-tools:0.1.0
stage: .pre
script:
- version-env-vars parse ALPINE_VERSION TERRAFORM_VERSION | tee tool-versions.env
artifacts:
reports:
dotenv:
- tool-versions.env
.build-image:
stage: build
image: $BUILDAH_CI_IMAGE
script:
- IMAGE="${CI_REGISTRY_IMAGE}:${VERSION_SEMVER}"
- buildah build
--build-arg "BASE_IMAGE=alpine:${ALPINE_VERSION}"
--build-arg "DOWNLOAD_TERRAFORM_VERSION=${TERRAFORM_VERSION}"
-t "$IMAGE"
.
- buildah inspect "$IMAGE"
- buildah push "$IMAGE"
- if [ -n "${VERSION_IS_RELEASE:-}" ]; then
buildah push "$IMAGE" "${CI_REGISTRY_IMAGE}:alpine-${ALPINE_VERSION_MINOR}";
buildah push "$IMAGE" "${CI_REGISTRY_IMAGE}:terraform-${TERRAFORM_VERSION_MINOR}";
fi
needs:
- version
- tool-versions
开发
有关本地开发设置说明,请参阅DEVELOPING.md。
项目详情
关闭
ci_version_tools-0.1.2.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | c76f937e7e1bce60b2d0d53da6b5b7068f497a37c11f1e2be197e79e593c71aa |
|
MD5 | b90e0dfe50363dbb0ce689dc2b5b29ca |
|
BLAKE2b-256 | 0c8daf09a7ff93ad1999612ce82ff1d1da0449d60aea7dea488ab39ded147a06 |
关闭
ci_version_tools-0.1.2-py3-none-any.whl 的哈希值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 415ac21d4b4e96716bbb1f7982923582dfd057b33b31d453a0327e764b436e7d |
|
MD5 | c8149c61522a0e5ea3028bbb5236879c |
|
BLAKE2b-256 | b1b77664c6338326824a206eb2f18d08a2ac602c0d956da1ed8bca1323e60495 |