I'm running a workflow on some 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? <--
I couldn't find any examples nor explanation on how to run steps on specific OSes.
Can somebody help?
Not at this moment. Only jobs can run in parallel, but steps always run sequentially.
To set a custom environment variable, you must define it in the workflow file. The scope of a custom environment variable is limited to the element in which it is defined. You can define environment variables that are scoped for: The entire workflow, by using env at the top level of the workflow file.
By default, all steps in a single job execute sequentially. If you're trying to limit the number of parallel 'jobs' then you you can set a limit of 1 for the workflow by setting max-parallel: 1 within the jobs.
You can configure your workflows to run when specific activity on GitHub happens, at a scheduled time, or when an event outside of GitHub occurs.
You can use either if: matrix.os == 'NAME_FROM_MATRIX'
or if: runner.os == 'OS_TYPE'
For checking matrix context:
if: matrix.os == 'ubuntu-latest'
if: matrix.os == 'windows-latest'
if: matrix.os == 'macOS-latest'
For checking runner context:
if: runner.os == 'Linux'
if: runner.os == 'Windows'
if: runner.os == 'macOS'
Related documentation: runner context
UPDATE
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With