GitHub Actions-checkoutとcontext,secretの起動


📝 概要


前の投稿Github-Actionsの非常に基本的な流れを理解した.今回はcheckoutが何であるかを理解し、shellコマンドから各種context情報を取得する練習をします.また、環境情報をSecretで非表示にし、出力方法を決定します.

Contextとは?


ContextはRunnerの実行時にWorkflowにアクセスできる様々な情報を収集している.少し複雑ですが、単純に考えれば、Runner実行時に取得したい情報をContextからインポートできます.

🎉 例


Checkout


以前と同様に、リポジトリのActionsタブに入り、Set up a workflow yourselfを使用してymlファイルを作成します.


name: checkout prac


on:

  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]


  workflow_dispatch:


jobs:

  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3

      - 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.
Stepの使用は、このStepで使用する動作を定義します.{owner}/{repo}@{ref|version}と同じ構成でactionsというcheckoutを使用するレジストリ動作を示します.
関連書類はダウンジャケット行動礼砲で確認できます.
デフォルトでは、Runnerは空の缶で、Usesで作成したレポートをクローンしてチェックアウトし、後で作成したコマンドを実行できます.
checkoutが何であるかを理解するために、ファイルを単独で作成するのではなく、一時的に作成します.

Context


Contexts are a way to access information about workflow runs, runner environments, jobs, and steps. Each context is an object that contains properties, which can be strings or other objects.
Contextから各種情報にアクセスでき、各コンテキストにはオブジェクトとしてPropertyが含まれます.
たとえば
  • github.actor:作者
  • github.repository:リポジトリ
  • github.sha:id提出
  • では、コミットIDをShellに出力する練習をしてみましょう.
    ワークフローではContextにアクセスするために${{}}補間を使用した.

    Context Pracというワークフローが作成され、環境変数が設定されています.
    name: Context prac
    
    
    on: [push]
    
    jobs:
    
      build:
        runs-on: ubuntu-latest
    
        steps:
    
          - name: Context Prac
            env: 
              COMMIT_ID: ${{ github.sha }} # 환경 변수 설정
            run: echo "Commit id => $COMMIT_ID"

    コミットIDはShellで良好に出力されている.

    Secret


    重要な情報をどのように保存し、利用しますか?
    環境情報は、自分のリポジトリの「Secrets」タブに保存して使用できます.

    保存したsecretがないのでpassword情報を保存してみます.

    これにより、PASWORD情報は、以下のセキュリティ上重要なアイコンとともに格納されます.

    コンソールウィンドウにパスワードを表示する簡単なワークフローを作成します.
    name: Echo password
    
    on: [push]
    
    jobs:
      build:
        runs-on: ubuntu-latest
    
        steps:
          - name: Echo password
            env:
              MY_PASSWORD: ${{ secrets.PASSWORD }}
            run: echo $MY_PASSWORD is my password.
    SecretsオブジェクトからSecretsに格納されている情報を取得できます.

    また、出力された情報を確認できないため、安全で信頼性が高い.