私はCIパイプラインを実行するためにJenkinsfileを設定しようとしています。手順の1つは、ディレクトリツリー全体からファイルを収集し、1つのディレクトリにコピーして圧縮することです。Jenkinsfile sh(シェル)のステップのグロブパターン
私はJenkinsのsh
ステップを使用してglobパターンを使用してこれを実行しようとしていますが、これを動作させることはできません。
簡単な例Jenkinsfile
は、次のようになります
[Pipeline] }
[Pipeline] // stage
[Pipeline] withEnv
[Pipeline] {
[Pipeline] stage
[Pipeline] { (List with Glob)
[Pipeline] sh
[jenkinsfile-pipeline] Running shell script
+ ls '**/*.xml'
ls: cannot access **/*.xml: No such file or directory
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
ERROR: script returned exit code 2
Finished: FAILURE
私は」だと思う:私はワークスペース内の任意の.xmlファイルを一覧表示することを期待するが、代わりに私が受け取る
pipeline {
agent any
stages {
stage('List with Glob'){
steps{
sh 'ls **/*.xml'
}
}
}
}
Groovyの文字列補間で何か不足していますが、私はこの特定のケース(Jenkinsfile経由のJenkinsパイプラインで実行中)のためにいくつかの助けが必要です
ご迷惑をおかけして申し訳ありません。
は、あなたが期待するよりも、使用されている別のシェルのだろう、私はデフォルトでsh' 'ですべてがBourneシェル(ない' bash')によって実行されると信じています。 – mkobit
あなたが正しいと思います。私は 'zsh'を使用しています。これは箱の外でこれをサポートしているようですが、以下の答えはこれが有効なグロブパターンではないことを知らせてくれました。ありがとう –