GitHub Actionで自動タグ付けとリリースをやってみる
はじめに
- CI/CDについて習熟するべく、GitHub Actionでタグ付けやリリースの自動化を勉強してました。
試しに、以前記事にしたRustのプロジェクトにタグ付けやリリースを自動で行うように挑戦してみました。
変更した内容
コード
name: Rust Continuous-Integration on: [push, pull_request] jobs: # この部分は以前記事に書いたものと全く同じなので省略 create_release: needs: - check - test - fmt - clippy name: Create Release runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@master - name: Set current time id: version run: echo "::set-output name=text::ver$(TZ=Asia/Tokyo date +%y%m%d%H%M)" - name: Create Release id: create_release uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ steps.version.outputs.text }} release_name: ${{ steps.version.outputs.text }} draft: false prerelease: false
簡単な説明
needs:
では、その前に実行しておくべきjobを指定しています。check
,test
,fmt
,clippy
の、Rustコードをチェックしている4つの作業を事前に行い、その後にリリース作業を行うようにしています。
name: Set current time
では東京での現在時刻を取得しています。- これは、タグはリリース名に日付を入れたいために行っています。
name: Create Release
では、create-release
というアクションを使ってタグやリリースを行っています。
結果
まずActionのタブを見てみると、想定通りRustコードのチェックをした後、リリースに関する作業を行っていること、そして全ての作業が成功していることが分かります。
次にリリースを見てみると、こちらも想定通りに作成されていることが分かるかと思います。
おわりに
- タグやリリースを自動で行うことが出来るようになりました。
- 上のymlファイルではタグやリリースの処理をpushやpullrequestの度に行っていたり、リリースノートに何も説明をつけるようにしてないので、実運用上ではまだ修正が必要ですが、CI/CDに向けて一歩前進できたと思います。