Saya tidak yakin bagaimana saya akan menguraikan langkah ini dalam Jenkinsfile deklaratif. Saya diberitahu bahwa Anda tidak dapat memiliki skrip di dalam skrip, jadi saya mencari bantuan tentang bagaimana ini dapat di-refactored.

stage('Publish Procurement') {
  steps {
      script: '''
        if (0 != sh(script: "git diff --exit-code modules/procurement", returnStatus: true)) {
          node_modules/.bin/ng build test-library
          cd modules/test-library/dist/
          node_modules/.bin/ng test test-library
        }
      '''
  }
}

Saya menghargai setiap bantuan yang diberikan.

0
pertrai1 5 November 2020, 20:51

1 menjawab

Jawaban Terbaik

Coba ini :

stage('Publish Procurement') {
  steps {
      returnCode = sh(script: "git diff --exit-code modules/procurement", returnStatus: true)
      if ( 0 != returnCode){
          script: '''
                    node_modules/.bin/ng build test-library
                    cd modules/test-library/dist/
                    node_modules/.bin/ng test test-library
                '''
      }
  }
}

Anda selalu dapat menyimpan output sh ke variabel dan kemudian menggunakan variabel itu untuk melakukan segala jenis operasi yang valid.

1
Mike 5 November 2020, 20:58