I'm using GitHub Actions to run a workflow on multiple operating systems.
However, there is a specific step that I have to run only on 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? <--
How can I run steps only on specific operating systems?
GitHub provides RUNNER_OS
variable now, which simplifies checks inside single step:
- 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
This might be better approach for more complex steps, where current OS is just one of many variables.
Do not use matrix.os
because runner names are not a reliable way to determine the platform.