👏

【インフラ_12日目】CI/CD_1冊目

2024/08/11に公開

こんにちは投資ロウトです。

背景

・CI/ CDをシステムに導入していかなければならない背景があります。

ソフトウェアをリリース

・バージョニング・・・一意でわかるようにソフトウェアを区別させること

・セマンティックバージョニング「A.B.C」
A・・・メジャーバージョン
B・・・マイナーバージョン
C・・・パッチバージョン
→これらのバージョンがしっかりしているかは、提供者に依存するため、よく大きな影響を受けてしまうとのことでした。

GitHub Releases

・GitHub Releases・・・ソフトウェアの配信や告知等が行えるサービス

# ファイルの生成
date > test.txt
gh release create v0.1.0 --title "初期バージョン" --notes "リリースノートの中身を記述"

gh releaseでできること
・指定したバージョンのGitタグを作成
・GitHub Releasesに指定したバージョンのリリースノートを作成してくれるとのこと。

【余談】
AWSのCodecommitにもCICDの機能はあるのかなと確認すると、CodePipelineというサービスがあることを知りました。

https://aws.amazon.com/jp/codepipeline/

またAzureも「Azure Repos」というソースコード管理および、「Azure Pipelines」というCI/ CDがありそうですね。

https://azure.microsoft.com/ja-jp/products/devops/pipelines

リリースノートを参照できますが、v0.1.0のように記載しないと、下記のように変なリリースノートになってしまいます笑

リリースノートを作成すると、ちゃんとできているようです

リリースのワークフロー

【流れ】
・バージョニングのGitタグがプッシュされたら起動
・対象の言語のビルドコマンドを実行し、リリースするための実行ファイルを生成
・リリースノートを作り、2で生成したファイルをアップロード

Gitタグを守る

Gitタグ自体が可変なため、ルールを用いて、正しく運用する必要があるとのこと。

Gitタグからルールを作って行きます

・ルール名を決める
・Enforcement statusをActiveに

・vから始まるもので作られるように指定。

・タグの変更と削除を防ぐように設定する

そうすることで、削除しようとしても防がれていることを確認。

と短いですが、以上で学習を区切りたいと思います。ご精読ありがとうございました。焦らずコツコツ頑張っていきたいと思います。

Discussion