簡體   English   中英

使用 Jenkins 在管道中存儲憑據作為 git 推送的 yml

[英]Using Jenkins stored credentials in Pipeline as yml for git push

我正在 Jenkins 中編寫一個管道,我需要使用腳本將更改推回 BitBucket。 我已使用存儲的憑據從 BitBucket 獲取代碼,但無法將其推回服務器。 這是我的腳本:

  - stage: Pull Code and Merge master in UAT
  steps:
    script:
      - "git credentialsId: '0b69d4a0-623b-4ba6-8e2c-8419ced4a31a', url: 'repo url'"
      - sh 'git status'
      - sh 'git checkout release/uat'
      - sh 'git merge -m "merging changes from main to UAT" origin/master'
      - "git push credentialsId: '0b69d4a0-623b-4ba6-8e2c-8419ced4a31a',url: 'repo url"  
      - sh 'git status'

git 推送導致錯誤。 我不知道使用存儲的憑據進行推送的方法

我正在使用這個插件作為 yaml 運行管道。

這是拋出的錯誤:

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 14: expecting '}', found ':' @ line 14, column 33.
         git push credentialsId: '0b69d4a0-623b-4ba6-8e2c-8419ced4a31a',url: 'http://10.0.110.4:7990/scm/ceye/ceye-admin.git
                               ^

1 error

at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:310)
at org.codehaus.groovy.control.ErrorCollector.addFatalError(ErrorCollector.java:150)
at org.codehaus.groovy.control.ErrorCollector.addError(ErrorCollector.java:120)
at org.codehaus.groovy.control.ErrorCollector.addError(ErrorCollector.java:132)
at org.codehaus.groovy.control.SourceUnit.addError(SourceUnit.java:350)
at org.codehaus.groovy.antlr.AntlrParserPlugin.transformCSTIntoAST(AntlrParserPlugin.java:144)
at org.codehaus.groovy.antlr.AntlrParserPlugin.parseCST(AntlrParserPlugin.java:110)
at org.codehaus.groovy.control.SourceUnit.parse(SourceUnit.java:234)
at org.codehaus.groovy.control.CompilationUnit$1.call(CompilationUnit.java:168)
at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:943)
at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:605)
at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:581)
at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:558)
at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:298)
at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:268)
at groovy.lang.GroovyShell.parseClass(GroovyShell.java:688)
at groovy.lang.GroovyShell.parse(GroovyShell.java:700)
at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.doParse(CpsGroovyShell.java:142)
at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.reparse(CpsGroovyShell.java:127)
at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.parseScript(CpsFlowExecution.java:571)
at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.start(CpsFlowExecution.java:523)
at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:337)
at hudson.model.ResourceController.execute(ResourceController.java:97)
at hudson.model.Executor.run(Executor.java:429)

完成:失敗

Jenkins 的git命令基本上只是git clone/pull的包裝器,它沒有push選項。 語法錯誤是因為 Jenkins 需要參數名稱但獲得“推送”。

要完成這項工作,您可以使用 ssh 密鑰或在 url 中編碼用戶名和密碼,如下所示:

sh "git push https://${username}:${password}@github.com/...repo.../.com

如果密碼不是 URL 保存(包含等& ,您必須先將其轉義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM