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?
pourquoi ne pas simplement faire ceci:
- script: |
PATH=$BUILD_SOURCESDIRECTORY/rakudo-win/bin:$PATH Perl6 -v