web-dev-qa-db-fra.com

définir le CHEMIN dans les pipelines Azure sous Windows

J'utilise Azure Pipelines pour créer un binaire Rakudo pour Perl 6 sous Windows.

Voici mon fichier Azure-pipelines.yml:

jobs:
- job: Windows
  pool:
    vmImage: 'vs2017-win2016'
  steps:
    - bash: |
        mkdir -p $(Build.SourcesDirectory)/rakudo-win
        curl -L https://github.com/rakudo/rakudo/releases/download/2019.07.1/rakudo-2019.07.1.tar.gz | tar xz
        mv rakudo-2019.07.1 rakudo
        cd rakudo
        C:/Strawberry/Perl/bin/Perl Configure.pl --gen-moar --gen-nqp --backends=moar --prefix=$(Build.SourcesDirectory)/rakudo-win
        make
        make install

    - bash: |
        echo "##vso[task.prependpath]$(Build.SourcesDirectory)/rakudo-win/bin"

    - bash: |
        Perl6 -v

Le script de pipeline crée une amende binaire Perl6 À l'intérieur du dossier $(Build.SourcesDirectory)/rakudo-win/bin. Il y a en effet Perl6.exe Dans $(Build.SourcesDirectory)/rakudo-win/bin. Pour le rendre disponible, j'ai défini le chemin en le faisant précéder dans le script bash. Mais lorsque j'essaie d'exécuter la commande Perl6 -v, La construction échoue à cette étape.

J'ai cherché des problèmes similaires dans SO ici , ici , ici .

Je n'ai toujours pas pu résoudre mon problème. Avez-vous de l'aide pour rendre le binaire Perl6 Disponible sur PATH?

[~ # ~] modifié [~ # ~]

La prochaine chose que j'ai faite a été de créer un autre script .yml Comme suit:

jobs:
- job: Windows
  pool:
    vmImage: 'vs2017-win2016'
  steps:
    - script: |
        call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
    - pwsh: |
        mkdir -p C:\rakudo-win
        Invoke-WebRequest -Uri "https://github.com/rakudo/rakudo/releases/download/2019.07.1/rakudo-2019.07.1.tar.gz" -OutFile "rakudo.tar.gz"
        tar -xvf .\rakudo.tar.gz
        cd rakudo-2019.07.1
        C:\Strawberry\Perl\bin\Perl Configure.pl --gen-moar --gen-nqp --backends=moar --prefix=C:\rakudo-win
        make
        make install
    - pwsh: |
        $oldpath = (Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment' -Name PATH).path
        $newpath = "C:\rakudo-win\bin;$oldpath" 
        Set-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment' -Name PATH -Value $newpath
    - script: |
        SET PATH=C:\rakudo-win\bin;%PATH%

    - script: |
        Perl6 -v

et a essayé de changer PATH deux fois une fois en PowerShell et une autre en cmdline. Mais il lance toujours l'erreur suivante:

'Perl6' is not recognized as an internal or external command,
operable program or batch file.

De l'aide?

6
Suman Khanal

pourquoi ne pas simplement faire ceci:

- script: |
  PATH=$BUILD_SOURCESDIRECTORY/rakudo-win/bin:$PATH Perl6 -v
1
4c74356b41