Saat mengeksekusi kode berikut dalam pipeline Jenkins, peringatan "Langkah-langkah berikut yang telah terdeteksi mungkin memiliki interpolasi variabel sensitif yang tidak aman" ditambahkan ke build, dengan tautan ke https://www.jenkins.io/doc/book/pipeline/jenkinsfile/#string-interpolation dengan penjelasan.

                powershell script: """ 
                \$ErrorActionPreference = "Stop" 
                cd "${WORKSPACE}\\MyDirectory"
                & .\\myScript.ps1 -user "${creds_USR}" -passw "${creds_PSW}" 
            """

Saya sudah mencoba mengubahnya seperti yang dijelaskan pada tautan di atas, tetapi variabelnya sepertinya tidak diganti lagi.

                powershell script: ''' 
                \$ErrorActionPreference = \"Stop\" 
                cd \"$WORKSPACE\\MyDirectory\"
                & .\\myScript.ps1 -user \"$creds_USR\" -passw \"$creds_PSW\" 
            '''

Adakah yang tahu solusi yang berfungsi untuk ini?

0
TWT 19 November 2020, 21:15

1 menjawab

Jawaban Terbaik

Agaknya Anda memiliki blok seperti ini yang menghasilkan nilai-nilai itu:

environment {
    creds = credentials('some-credentials')
}

Jadi lingkungan build Anda memiliki variabel-variabel yang tersedia untuk Powershell. Daripada menginterpolasi string yang membentuk skrip Powershell, tulis saja skrip untuk menarik data dari lingkungan.

    powershell script: '''\
$ErrorActionPreference = "Stop"
cd "$Env:WORKSPACE\MyDirectory"
& .\myScript.ps1 -user "$Env:creds_USR" -passw "$Env:creds_PSW"
'''
2
Adam Smith 19 November 2020, 18:28