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.