PR title のバリデーション
これ 使うと便利。
.github/semantic.yml として設定ファイル置く。
ex.) PR title のみチェック
# Disable validation, and skip status check creation
# enabled: false
# Always validate the PR title, and ignore the commits
titleOnly: true
# Always validate all commits, and ignore the PR title
# commitsOnly: true
# Always validate the PR title AND all the commits
# titleAndCommits: true
# Require at least one commit to be valid
# this is only relevant when using commitsOnly: true or titleAndCommits: true,
# which validate all commits by default
# anyCommit: true
# By default types specified in commitizen/conventional-commit-types is used.
# See: https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json
# You can override the valid types
# types:
# - feat
# - fix
# - docs
# - style
# - refactor
# - perf
# - test
# - build
# - ci
# - chore
# - revert
# Allow use of Merge commits (eg on github: "Merge branch 'master' into feature/ride-unicorns")
# this is only relevant when using commitsOnly: true (or titleAndCommits: true)
# allowMergeCommits: true
# Allow use of Revert commits (eg on github: "Revert "feat: ride unicorns"")
# this is only relevant when using commitsOnly: true (or titleAndCommits: true)
# allowRevertCommits: true
やってみた感想
automatically といいつつも release の生成は手動。
github の画面から対象の tag を指定して、release 内容生成のボタンを押して作成する。
github action などと連携して自動で作る方法は紹介されていなかったのでまだ対応してなさそう。
そうなると conventional-github-releaser を ci で回したほうが楽。
ex.) circle ci 設定例
conventional_github_release:
docker:
- image: circleci/node:15.12.0-browsers
steps:
- checkout
- run: npm install --prefix=$HOME/.local --global conventional-github-releaser
- run: CONVENTIONAL_GITHUB_RELEASER_TOKEN=$GH_TOKEN conventional-github-releaser --help
- run: DEBUG=conventional-github-releaser CONVENTIONAL_GITHUB_RELEASER_TOKEN=$GH_TOKEN conventional-github-releaser -p angular
tag push で起動するようにしておけば勝手に動いて作ってくれる。ちなみに、fork した js repository で使う際は、package.json のrepository を見にいってしまうので注意。自分の repository の名前に変更しておく。
automatically release を使うメリット
github の issue などを使って運用している project はメリットありそう。
release.yml を設定すれば、label の内容を拾って release の内容を設定してくれる。
しかも、first contributor の表示も可能。名前載せてくれるのは気持ちいいと思う。
複数人開発の OSS project の release 周りは少し楽になりそうな気がする。
conventional-github-releaser の設定簡易版
-
github のアクセストークン作成
- repository にチェック
- circle ci の environment に登録
- ci で呼ぶ