1. ホーム
  2. github-actions

Githubのアクション。特定のOSでステップを実行する

2023-11-07 06:25:07

質問

いくつかのオペレーティング システムでワークフローを実行しています。

しかし、Ubuntu 上でのみ実行しなければならない特定の手順があります。

runs-on: ${{ matrix.os }}
strategy:
    matrix:
        os: [ubuntu-latest, windows-latest, macOS-latest]
steps:
    - name: Setup Ubuntu
      run : export DISPLAY="127.0.0.1:10.0"
      if: # --> What should be here? <--

特定のOSでステップを実行する方法についての例や説明は見つかりませんでした。

どなたか教えてください。

どのように解決するのですか?

以下のどちらかを使用します。 if: matrix.os == 'NAME_FROM_MATRIX' または if: runner.os == 'OS_TYPE'

行列のコンテキストを確認するためのものです。

if: matrix.os == 'ubuntu-latest'

if: matrix.os == 'windows-latest'

if: matrix.os == 'macOS-latest'

ランナーコンテキストの確認用。

if: runner.os == 'Linux'

if: runner.os == 'Windows'

if: runner.os == 'macOS'

関連するドキュメント ランナーコンテキスト

アップデイト

GitHubが提供する RUNNER_OS という変数が追加され、1ステップ内のチェックが簡単になりました。

- name:  Install
  run:   |
         if [ "$RUNNER_OS" == "Linux" ]; then
              apt install important_linux_software
         elif [ "$RUNNER_OS" == "Windows" ]; then
              choco install important_windows_software
         else
              echo "$RUNNER_OS not supported"
              exit 1
         fi
  shell: bash

これは、現在のOSが多くの変数の一つに過ぎないような、より複雑なステップのためのより良いアプローチかもしれません。