J'ai écrit un script simple via PowerShell
pour rassembler des fichiers et les compresser dans un dossier, appelons-le Script.ps1
. Je veux que le script s'exécute à chaque fois que Jenkins effectue une nouvelle construction, mais j'aimerais également que le nom du fichier Zip soit le BUILD_NUMBER
.
Comment créer une variable dans PowerShell
qui correspond au numéro de build actuel de Jenkins? À partir du moment où j'appelle le Script.ps1
dans la section de configuration du shell d'exécution.
Vous pouvez ajouter des arguments à votre Script.ps1
. Utilisez simplement Param
en haut du script:
Param( $BuildNumber ) #must be first statement in script
# your current script goes here
alors vous pouvez appeler le script en passant BUILD_NUMBER
en argument de Jenkins. Reportez-vous à cette question pour appeler un script Powershell avec un argument.
Je ne connais pas Jenkins, mais je crois que BUILD_NUMBER
est une variable d'environnement.
Pour y accéder dans PowerShell, utilisez $env:BUILD_NUMBER
Par exemple. Si vous utilisez 7-Zip
7z.exe a "$env:BUILD_NUMBER.Zip" C:\Build\Path
Vous pouvez également utiliser le plugin Powershell, voir ici .
Ensuite, vous pouvez utiliser les variables d’environnement disponibles (voir la documentation du plugin). Notez que l'accès est assez crypté (en ce qui me concerne):
(Get-Content ./Sources/SlmMachineControl/GUI/Project1.rc).replace("`"FileVersion`", `"1.0.0.0`"" ,"`"FileVersion`" `"2.3.$($env:BUILD_NUMBER).0`"") | Set-Content ./Sources/SlmMachineControl/GUI/Project1.rc
Notez également l'échappement des guillemets. M'a pris un bon moment :)