기존 변경 로그 지원
Photo by Daniel McCullough on Unsplash
소개
이 게시물은 처음부터 Angular 애플리케이션을 빌드하는 방법을 보여주는 것을 목표로 하는 시리즈로 작성되었습니다.
쉽게 개발하고 유지 관리하는 데 필요한 모든 자산으로 엔터프라이즈 규모의 각도 응용 프로그램을 구축하는 방법을 살펴보겠습니다.
This post will show you how to add support for conventional changelog generation for and add it to .
우리의 목표는 마스터 브랜치에서 변경 로그 생성을 자동화하고 변경 로그가 업데이트된 태그를 생성하는 것입니다.
This post will show you how to add support for conventional changelog generation for and add it to .
[매뉴얼]
develop
를 master
로 병합합니다(Pull 요청에 의해). [매뉴얼]
master
로 태그prerelease-X.Y.Z
를 지정합니다(Gitlab 또는 git cli 사용). [자동] CI가 업데이트
CHANGELOG.md
및 package.json
+ 제거prerelease-X.Y.Z
태그로 트리거되었습니다. [자동]
master
에 푸시하고 태그X.Y.Z
를 추가하면 릴리스 준비가 완료됩니다. 힘내 워크플로우
git checkout develop
git pull
# Retrieve the last develop version
git checkout -b feature/changelog
# Feature Branch creation
저장소를 Comitizen 친화적으로 만드십시오.
먼저 Commitizen cli 도구를 설치합니다.
npm install commitizen --save --save-exact --save-dev
다음으로 다음을 입력하여 cz-conventional-changelog
어댑터를 사용하도록 프로젝트를 초기화합니다.
commitizen init cz-conventional-changelog --save-dev --save-exact
위의 명령은 세 가지 작업을 수행합니다.
git checkout develop
git pull
# Retrieve the last develop version
git checkout -b feature/changelog
# Feature Branch creation
먼저 Commitizen cli 도구를 설치합니다.
npm install commitizen --save --save-exact --save-dev
다음으로 다음을 입력하여
cz-conventional-changelog
어댑터를 사용하도록 프로젝트를 초기화합니다.commitizen init cz-conventional-changelog --save-dev --save-exact
위의 명령은 세 가지 작업을 수행합니다.
cz-conventional-changelog
어댑터 npm 모듈을 설치합니다. package.json
의 종속성 또는 devDependencies
에 저장합니다. config.commitizen
의 루트에 package.json
키를 추가합니다....
"devDependencies": {
....
"cz-conventional-changelog": "^3.1.0",
}
...
"config": {
"commitizen": {
"path": "./node_modules/cz-conventional-changelog"
}
}
...
이는 기여자가 이 저장소에 커밋하려고 할 때 실제로 사용하기를 원하는 어댑터를 Commitizen에 알려줍니다.
코미티즌 사용
comitizen 스크립트를 package.json
에 추가하십시오.
"scripts": {
...
"commit": "git-cz"
...
},
git commit 대신 npmrun commit
을 사용하여 즐기세요!
When you're working in a Commitizen friendly repository, you'll be prompted to fill in any required fields and your commit messages will be formatted according to the standards you defined above.
기존 변경 로그 사용
기존 Changelog CLI를 설치합니다.
npm install conventional-changelog-cli --save --save-exact --save-dev
다음 스크립트를 포함하도록 package.json을 업데이트합니다.
"scripts": {
...
"init-changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0",
"version": "conventional-changelog -p angular -i CHANGELOG.md -s && git add CHANGELOG.md"
...
}
Changelog 초기화 :
npm run init-changelog
노드 구성 업데이트
새 npm 스크립트version
를 사용하여 npm 버전 수명 주기에 몇 가지 논리를 추가합니다. .npmrc
파일은 npm version
가 호출될 때 사용되는 일부 변수를 정의하는 데 도움이 됩니다.
.npmrc
파일을 업데이트하거나 다음을 사용하여 파일을 만드십시오.
tag-version-prefix=""
message="chore(release): Version %s"
For more informations about the npm versionlife-cycle, refer to :
https://docs.npmjs.com/cli/version
CI 업데이트
GitLab 액세스 토큰 생성
GitlabUser Settings > Access Token으로 이동하여 GIT_ACCESS_TOKEN
범위가 선택된 api
라는 새 토큰을 만듭니다.
새 개인 액세스 토큰이 프롬프트되면 저장하십시오.
이제 프로젝트 설정 > CI/CD 패널로 이동합니다.
변수 패널을 확장하고 변수 추가를 클릭합니다.
변수 이름을 GIT_ACCESS_TOKEN
로 지정하고 이전에 저장된 개인 액세스 토큰을 지나서 protected
및 masked
가 선택 해제되어 있는지 확인합니다.
The variable $GIT_ACCESS_TOKEN
can now be accessed from your CI jobs and enable credential to write/read your git repository.
CI 작업 업데이트
.gitlab-ci.yml
단계를 추가하려면 publish-version
를 업데이트하십시오.
이 단계는 prerelease-X.Y.Z
태그가 있는 코드tagging(예: prerelease-1.0.0
)일 때 트리거됩니다.
그것은:
"scripts": {
...
"commit": "git-cz"
...
},
When you're working in a Commitizen friendly repository, you'll be prompted to fill in any required fields and your commit messages will be formatted according to the standards you defined above.
기존 Changelog CLI를 설치합니다.
npm install conventional-changelog-cli --save --save-exact --save-dev
다음 스크립트를 포함하도록 package.json을 업데이트합니다.
"scripts": {
...
"init-changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0",
"version": "conventional-changelog -p angular -i CHANGELOG.md -s && git add CHANGELOG.md"
...
}
Changelog 초기화 :
npm run init-changelog
노드 구성 업데이트
새 npm 스크립트version
를 사용하여 npm 버전 수명 주기에 몇 가지 논리를 추가합니다. .npmrc
파일은 npm version
가 호출될 때 사용되는 일부 변수를 정의하는 데 도움이 됩니다.
.npmrc
파일을 업데이트하거나 다음을 사용하여 파일을 만드십시오.
tag-version-prefix=""
message="chore(release): Version %s"
For more informations about the npm versionlife-cycle, refer to :
https://docs.npmjs.com/cli/version
CI 업데이트
GitLab 액세스 토큰 생성
GitlabUser Settings > Access Token으로 이동하여 GIT_ACCESS_TOKEN
범위가 선택된 api
라는 새 토큰을 만듭니다.
새 개인 액세스 토큰이 프롬프트되면 저장하십시오.
이제 프로젝트 설정 > CI/CD 패널로 이동합니다.
변수 패널을 확장하고 변수 추가를 클릭합니다.
변수 이름을 GIT_ACCESS_TOKEN
로 지정하고 이전에 저장된 개인 액세스 토큰을 지나서 protected
및 masked
가 선택 해제되어 있는지 확인합니다.
The variable $GIT_ACCESS_TOKEN
can now be accessed from your CI jobs and enable credential to write/read your git repository.
CI 작업 업데이트
.gitlab-ci.yml
단계를 추가하려면 publish-version
를 업데이트하십시오.
이 단계는 prerelease-X.Y.Z
태그가 있는 코드tagging(예: prerelease-1.0.0
)일 때 트리거됩니다.
그것은:
tag-version-prefix=""
message="chore(release): Version %s"
For more informations about the npm versionlife-cycle, refer to :
https://docs.npmjs.com/cli/version
GitLab 액세스 토큰 생성
GitlabUser Settings > Access Token으로 이동하여
GIT_ACCESS_TOKEN
범위가 선택된 api
라는 새 토큰을 만듭니다.새 개인 액세스 토큰이 프롬프트되면 저장하십시오.
이제 프로젝트 설정 > CI/CD 패널로 이동합니다.
변수 패널을 확장하고 변수 추가를 클릭합니다.
변수 이름을
GIT_ACCESS_TOKEN
로 지정하고 이전에 저장된 개인 액세스 토큰을 지나서 protected
및 masked
가 선택 해제되어 있는지 확인합니다.The variable
$GIT_ACCESS_TOKEN
can now be accessed from your CI jobs and enable credential to write/read your git repository.
CI 작업 업데이트
.gitlab-ci.yml
단계를 추가하려면 publish-version
를 업데이트하십시오.이 단계는
prerelease-X.Y.Z
태그가 있는 코드tagging(예: prerelease-1.0.0
)일 때 트리거됩니다.그것은:
prerelease-X.Y.Z
태그를 검색합니다. package.json
, package-lock.json
및 npm-shrinkwrap.json
)을 X.Y.Z
값으로 업데이트합니다. npm version
명령을 실행하고 git에서 커밋 및 태그를 지정합니다. version
스크립트를 실행하여 CHANGELOG.md
를 업데이트하고 커밋에 추가합니다. prerelease-X.Y.Z
태그를 제거하십시오. master
분기에 푸시하고 X.Y.Z
태그를 지정합니다.image: node:latest
stages:
- CodeQuality
- Release
test:
stage: CodeQuality
script:
- npm ci
- npm run ci:test
lint:
stage: CodeQuality
script:
- npm ci
- npm run ci:lint
publish-version:
image: node:12.16.1
stage: Release
rules:
- if: '$CI_COMMIT_TAG =~ /^prerelease-\d+.\d+.\d+/'
before_script:
- npm ci
- npm config set unsafe-perm true
script:
- TAG_VERSION=`echo $CI_COMMIT_TAG | sed "s/.*prerelease-\([^ ]*\).*/\1/"`
- git config --global user.name "$GITLAB_USER_NAME"
- git config --global user.email "$GITLAB_USER_EMAIL"
- git remote set-url origin "https://gitlab-ci-token:$GIT_ACCESS_TOKEN@$CI_SERVER_HOST/$CI_PROJECT_PATH.git"
- git tag -d $CI_COMMIT_TAG
- git push origin --delete $CI_COMMIT_TAG
- npm version $TAG_VERSION
- git push origin HEAD:master --tags
수정 사항을 푸시합니다.
git add package.json package-lock.json .gitlab-ci.yml CHANGELOG.md .npmrc
# Use the magic !!
npm run commit
git push -u origin feature/changelog
Each time you tag your master branch with a tag prerelease-X.Y.Z
, the CI will take care of updating your application version and generating the corresponding Changelog.
Reference
이 문제에 관하여(기존 변경 로그 지원), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/fairen/conventional-changelog-support-41hp
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
git add package.json package-lock.json .gitlab-ci.yml CHANGELOG.md .npmrc
# Use the magic !!
npm run commit
git push -u origin feature/changelog
Each time you tag your master branch with a tag prerelease-X.Y.Z
, the CI will take care of updating your application version and generating the corresponding Changelog.
Reference
이 문제에 관하여(기존 변경 로그 지원), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/fairen/conventional-changelog-support-41hp텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)