J'exécute un flux de travail sur tous les systèmes d'exploitation.
Cependant, il y a une étape spécifique que je dois exécuter uniquement sur 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? <--
Je n'ai trouvé aucun exemple ni explication sur la façon d'exécuter des étapes sur des systèmes d'exploitation spécifiques.
Quelqu'un peut-il aider?
Vous pouvez utiliser soit if: matrix.os == 'NAME_FROM_MATRIX'
ou if: runner.os == 'OS_TYPE'
Pour vérifier le contexte de la matrice:
if: matrix.os == 'ubuntu-latest'
if: matrix.os == 'windows-latest'
if: matrix.os == 'macOS-latest'
Pour vérifier le contexte du coureur:
if: runner.os == 'Linux'
if: runner.os == 'Windows'
if: runner.os == 'macOS'
Documentation connexe: contexte du coureur
[~ # ~] mise à jour [~ # ~]
GitHub fournit RUNNER_OS
variable maintenant, ce qui simplifie les vérifications à l'intérieur d'une seule étape:
- 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
Cela pourrait être une meilleure approche pour les étapes plus complexes, où le système d'exploitation actuel n'est qu'une des nombreuses variables.