私はconfig.jsonファイルが埋め込まれたCIビルドを試しています。Jenkinsfile - 地図の代わりに文字列を返すJsonSlurper
config.json
{
"some_collection": [
{ "foo": "bar" }
]
}
マイJenkinsfile:
import groovy.json.JsonSlurper
node {
bootstrap()
test()
}
def bootstrap() {
stage('bootstrap') {
git([url: "[email protected]:my-user/my-jenkinsfile-repo.git"])
}
}
def test() {
def config = getConfig()
echo "${config}"
echo "${config.class}"
}
@NonCPS
def getConfig() {
new JsonSlurper().parseText(readFile("./config.json")))
}
それがファイルであるようconfigオブジェクトのエコーは、JSONを示し、config.classは、昔ながらの文字列であると言います。コードを返すことを期待しています。
私はJsonSlurperとJsonSluperClassicを試してみましたが、もっと明確になるようにコードを再構成すると思います。
EDIT:これはまだconfig.classがYyouがconfig.json
やパスの内容を取得するためにnew File(filename)
を使用することができます
このメソッドは 'readFile'とは何ですか?返される内容は何ですか? 'new File(" ./config.json ")。getText()'で置き換えることができますか?また、 'get'を' Map'に置き換えることで 'getConfig()'宣言で期待する正確なクラスを指定することができます。 –
新しいファイルバリアントは、Jenkinsのコンテキストでファイルクラスがどのように許可されなかったかについてのエラーを投げました。私はマップ宣言を試みます。 – DVG
'config'オブジェクトを明示的に' Map'にすることもできますか? –