J'essaie actuellement d'ajouter le flux de travail des actions GitHub à un dépôt ...
Pour faire un développement C ++ / CMake / swig / python (c'est-à-dire un développement de bibliothèque python natif), je dois télécharger et installer swigwin et le mettre à disposition dans le PATH ...
Malheureusement, il semble que la commande $env:Path... ne soit pas prise en compte lors des prochaines étapes suivantes
> Set up job
> Run actions/checkout@v23s
> Check cmake
v Install swig
...
SWIG Version 4.0.1
...
v Check swig
swig -version
shell: C:\Program Files\PowerShell\6\pwsh.EXE -command ". '{0}'"
swig : The term 'swig' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At D:\a\_temp\0a8dc0e1-ec51-429b-abd0-cb3597e983ac.ps1:2 char:1
+ swig -version
+ ~~~~
+ CategoryInfo : ObjectNotFound: (swig:String) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : CommandNotFoundException
##[error]Process completed with exit code 1.
name: Python Windows CI
on: [push, pull_request]
jobs:
# Building using the GitHub runner environment directly.
build:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- name: Check cmake
run: cmake --version
- name: Install swig
run: |
(New-Object System.Net.WebClient).DownloadFile("http://prdownloads.sourceforge.net/swig/swigwin-4.0.1.zip","swigwin-4.0.1.zip");
Expand-Archive .\swigwin-4.0.1.zip .;
$env:Path += ";.\swigwin-4.0.1";
swig -version;
- name: Check swig
run: swig -version # swig cmdlet not found...
3 Réponses :
EDIT: GitHub a déprécié cela, veuillez voir une autre réponse ... réf: https://github.blog/changelog/2020-10-01-github-actions-deprecating-set-env-and-add-path-commands/
Vous devez utiliser la syntaxe d'action echo "::add-path::..." , dans votre cas:
...
- name: Install swig
run: |
(New-Object System.Net.WebClient).DownloadFile("http://prdownloads.sourceforge.net/swig/swigwin-4.0.1.zip","swigwin-4.0.1.zip");
Expand-Archive .\swigwin-4.0.1.zip .;
echo "::add-path::./swigwin-4.0.1"
- name: Check swig
run: swig -version
le lien n'est plus valide
@jitter Link corrigé! semble que les rédacteurs de documents Github suivent mes conseils et réorganisent le document en conséquence: D
Les commandes add-path et set-env sont devenues obsolètes le 1er octobre 2020 pour des raisons de sécurité: https://github.blog/changelog/2020-10-01-github-actions-deprecating-set-env-and-add- commandes de chemin /
La méthode recommandée pour ajouter à% PATH% consiste à utiliser les fichiers d'environnement comme suit:
En supposant que vous utilisez Powershell , le shell par défaut:
echo "C:\directory\to\add\to\path" >> $GITHUB_PATH
ou bien pour bash :
echo "C:\directory\to\add\to\path" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
Les autres réponses sont un peu dépassées (en raison des actions GitHub rendant obsolète add-path comme expliqué dans la réponse de @Kel Solaar), voici un exemple complet basé sur la réponse @Mizus:
- name: Install swig
if: "startsWith(runner.os, 'windows')"
run: |
(New-Object System.Net.WebClient).DownloadFile("http://prdownloads.sourceforge.net/swig/swigwin-4.0.1.zip","swigwin-4.0.1.zip");
Expand-Archive .\swigwin-4.0.1.zip .;
echo "$((Get-Item .).FullName)/swigwin-4.0.1" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
Une autre différence par rapport à la réponse @Mizus est que le chemin absolu vers le répertoire swig est utilisé, c'est pour s'assurer qu'il fonctionne toujours même si le répertoire de travail change.