🔖

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

2024/08/10に公開

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

背景

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

運用しやすい設計について

・多くのワークフローは自分たちが思う以上に、長く使ってもらえるものとのこと。

ロギング

・ログは状況把握には役立つとのことですが、多すぎると分かりづらくなってしまうとのことでした。

name: Debug Practice
on: push
jobs:
  log:
    runs-on: ubuntu-latest
    steps:
      - run: echo "::debug::デバッグログを出力します"

期待通りにdebugのプレフィックスがつかず、、、「ACTIONS_STEP_DEBUG」の設定がついていないことに気付いていませんでした。

# variableを追加してみる
gh variable set ACTIONS_STEP_DEBUG --body true

↓いい感じに出ていますね。

ただこれだとログが出過ぎていて、鬱陶しいとのこと。bashのset -xコマンドを使えば実行したコマンドだけ確認できるとのことでした。

またログ自体にグループ機能をつけて、見やすくすることも可能とのことでした。

::group:: グループ名
# ここから始まって
# ここまでの処理をグループでまとめることが可能とのこと
::endgroup::

またセキュリティー的に隠したいものは、「::add-mask::隠したいもの」を記載することで、マスクすることもできるとのことでした。

エラーの出力

・アノテーションでエラーの種類を出し分けることができるとのこと。

- run: echo "::error::エラーメッセージ"
- run: echo "::warning::警告メッセージ"
- run: echo "::Notice::通知メッセージ"

複数ジョブの実行制御

・処理時間がかかり過ぎている場合は、並列して実行ができるようにできないか検討する必要があるとのことでした。

# 並列実行
jobs:
   a:
      Aの処理
  b:
   Bの処理
# 直列実行(どうしても直列で実行しないといけない場合)
jobs:
   a:
      Aの処理
  b:
   Bの処理
   needs: [a]

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

Discussion