今日のインプット/アウトプット #9 2024-08-15

ルール

  • 毎日何かしら記録する。

  • どんな些細なことでもOK。レベル感気にしない

  • 書いたらtwitterにでもポストしておく

Duolingo

祝 200日

キリ番でした。目指せ365

GitHub CI/CD実践ガイド

https://github.com/dznbk/gha_sandbox

学習用のリポジトリたててチマチマ試していく。
※朝やりはじめたら、件の障害の時間であまりできず。
3章 ワークフロー構文の基礎をちょっとやる。
ある程度業務で見たことあるものは多いが、直接設定したこともないものもあるので、基本から。

  • コンテキスト

  • env

  • Variables

  • Secrets

VariablesはリポジトリのSettings -> Secrets & Variables から設定。

gh variable set USERNAME2 --body 'pontaro'

ghコマンドでも設定できるらしい。
そういえばプライベートマシンに入れてなかったので、下記参考にインストール
https://github.com/cli/cli/blob/trunk/docs/install_linux.md#official-sources

eval "$(gh completion -s bash)"

bashrcとかに↑設定しておくと、サブコマンドの補完もできる

env:
  USERNAME2: ${{ vars.USERNAME2 }}
steps:
  - run: echo "${USERNAME2}"

Variablesなどは、直接シェルで参照すると特殊文字が含まれている場合など予期せぬ挙動になるのもあり、envに設定して中間環境変数として参照するのがベターっぽい。

name: CI Sandbox

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]
  workflow_dispatch:

jobs:
  build:
    runs-on: ubuntu-latest
    env:
      ACTOR: ${{ github.actor }}
      USERNAME2: ${{ vars.USERNAME2 }}
    steps:
      - uses: actions/checkout@v4
      - name: Run a one-line script
        run: echo Hello, world!

      - name: Run a multi-line script
        run: |
          echo Add other actions to build,
          echo test, and deploy your project.
          echo "${{ github.workspace }}"
          echo "${{ github.repository }}"
          echo "${{ runner.os }}"
          echo "${{ runner.arch }}"
          echo "${{ runner.temp }}"
          echo "${{ github.event_name }}"
          echo "${{ github.action }}"
          echo "${{ env.ACTOR }}"
          echo "${ACTOR}"
          echo "${USERNAME2}"

いくつか適当にechoさせてみたらこんな感じ

Secretsは、ログ出力時はマスクしてくれるが、完全一致なのでやりようでマスクせずに出てしまうらしい(意図してやることはないだろうが、そういうリスクがあるというのを知っておくのが吉)

この記事が気に入ったらサポートをしてみませんか?