web-dev-qa-db-ja.com

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

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

ただし、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でステップを実行する方法の例や説明は見つかりませんでした。

誰か助けてもらえますか?

9
yahavi

どちらかを使用できます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変数が追加されました。これにより、シングルステップ内のチェックが簡素化されます。

- 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が多くの変数の1つにすぎない、より複雑なステップのより良いアプローチである可能性があります。

10
Samira