【インフラ_12日目】CI/CD_1冊目
こんにちは投資ロウトです。
背景
・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というサービスがあることを知りました。
またAzureも「Azure Repos」というソースコード管理および、「Azure Pipelines」というCI/ CDがありそうですね。
リリースノートを参照できますが、v0.1.0のように記載しないと、下記のように変なリリースノートになってしまいます笑
リリースノートを作成すると、ちゃんとできているようです
リリースのワークフロー
【流れ】
・バージョニングのGitタグがプッシュされたら起動
・対象の言語のビルドコマンドを実行し、リリースするための実行ファイルを生成
・リリースノートを作り、2で生成したファイルをアップロード
Gitタグを守る
Gitタグ自体が可変なため、ルールを用いて、正しく運用する必要があるとのこと。
Gitタグからルールを作って行きます
・ルール名を決める
・Enforcement statusをActiveに
・vから始まるもので作られるように指定。
・タグの変更と削除を防ぐように設定する
そうすることで、削除しようとしても防がれていることを確認。
と短いですが、以上で学習を区切りたいと思います。ご精読ありがとうございました。焦らずコツコツ頑張っていきたいと思います。
Discussion