すべてのオペレーティングシステムでワークフローを実行しています。
ただし、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
変数が追加されました。これにより、シングルステップ内のチェックが簡素化されます。
- 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つにすぎない、より複雑なステップのより良いアプローチである可能性があります。