設置 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