
設置 semantic ,自動生成版本號和標簽
FROM node:14-buster-slim LABEL maintainer="wangyunpeng" COPY sources.list /etc/apt/sources.list RUN apt-get update && \ apt-get install -y --no-install-recommends git-core ca-certificates && \ npm install --global \ semantic-release@17.1.1 \ @semantic-release/exec@5.0.0 \ @semantic-release/gitlab@6.0.4 && \ apt-get clean
sources.list
1 # 默認注釋了源碼鏡像以提高 apt update 速度,如有需要可自行取消注釋 2 deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free 3 # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free 4 deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free 5 # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free 6 deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free 7 # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free 8 deb http://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free 9 # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free
創建docker鏡像
docker build -f ./Dockerfile -t wangyp/semantic-release:17.1.1 .
Windows 推送景象
docker tag wangyp/semantic-release:17.1.1 localhost:8088/semantic-release:17.1.1 docker login -u docker-push -p 123456 localhost:8088 docker push localhost:8088/semantic-release:17.1.1
docker pull localhost:8089/semantic-release:17.1.1

私有倉庫

使用gitlab搭建生成版本號和標簽
.releaserc.json
{
"plugins": [
[
"@semantic-release/commit-analyzer",
{
"preset": "angular",
"releaseRules": [
{
"type": "refactor",
"release": "patch"
},
{
"type": "style",
"release": "patch"
},
{
"type": "chore",
"release": "patch"
}
],
"parserOpts": {
"noteKeywords": [
"BREAKING CHANGE",
"BREAKING CHANGES"
]
}
}
],
"@semantic-release/release-notes-generator",
"@semantic-release/gitlab",
[
"@semantic-release/exec",
{
"successCmd": "echo \"VERSION=${nextRelease.version}\" >> .version"
}
]
]
}
.gitlab-ci.yml
variables: # BUILD_VERSION: "test" stages: - publish - version - build publish: stage: publish script: - if [ ! -d ./publish ]; then mkdir ./publish; fi artifacts: name: "${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}" paths: - publish/ expire_in: 1 days only: refs: - branches - merge_requests version: stage: version image: localhost:8089/wangyp/semantic-release:17.1.1 script: - if [ $CI_COMMIT_REF_NAME == 'alpha' -o $CI_COMMIT_REF_NAME == 'master' ]; then semantic-release; fi - if [ ! -f ./.version ]; then echo "VERSION=${BUILD_VERSION:-$(date +%Y%m%d%H%M%S)}">.version; fi - cat .version artifacts: paths: - .version expire_in: 1 days needs: - job: publish artifacts: false rules: - if: "$CI_PIPELINE_SOURCE == 'merge_request_event'" when: never - if: "$CI_COMMIT_REF_NAME == 'dev'" when: on_success - if: "$CI_COMMIT_REF_NAME == 'alpha'" when: on_success - if: "$CI_COMMIT_REF_NAME == 'master'" when: on_success - if: "$CI_COMMIT_REF_NAME =~ /.*-bug-fix/" when: on_success build: stage: build image: "docker:stable" services: - docker:stable-dind variables: DOCKER_TLS_CERTDIR: "" script: - source ./.version - cat .version - if [ ! -d ./build ]; then mkdir ./build; fi - exit needs: - job: version artifacts: true - job: publish artifacts: true artifacts: name: "${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}" paths: - build/ expire_in: 1 days rules: - if: "$CI_PIPELINE_SOURCE == 'merge_request_event'" when: never - if: "$CI_COMMIT_REF_NAME == 'dev'" when: on_success - if: "$CI_COMMIT_REF_NAME == 'alpha'" when: on_success - if: "$CI_COMMIT_REF_NAME == 'master'" when: on_success - if: "$CI_COMMIT_REF_NAME =~ /.*-bug-fix/" when: on_success
查看版本號

自動打標簽生成文檔:

無法生成語音文檔報錯:

解決方法:






GITLAB_TOKEN


