web-dev-qa-db-ja.com

WindowsでAzureパイプラインにPATHを設定する

Azure Pipelinesを使用して、WindowsでPerl 6用の Rakudo バイナリを構築しています。

これは私の_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
_

パイプラインスクリプトは、$(Build.SourcesDirectory)/rakudo-win/binフォルダー内に_Perl6_バイナリファインをビルドします。確かに$(Build.SourcesDirectory)/rakudo-win/binの中に_Perl6.exe_があります。これを使用できるようにするために、bashスクリプトの前にパスを追加してパスを設定します。しかし、コマンド_Perl6 -v_を実行しようとすると、このステップでビルドが失敗します。

SO hereherehere )で同様の問題を検索しました。

それでも問題を解決できませんでした。 _Perl6_バイナリをPATHで利用可能にする方法を教えてください。

[〜#〜]編集済み[〜#〜]

次に行ったのは、次のように別の_.yml_スクリプトを作成することです。

_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

_

そしてPATHをPowerShellで1回、コマンドラインでもう1回変更しようとしました。しかし、それでも次のエラーがスローされます:

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

何か助けは?

6
Suman Khanal

なぜこれをしないのですか?

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