小编Spi*_*idy的帖子

如何在声明性管道中从archiveArtifact中排除文件?

    stage('Publish') {
        steps {
                bat 'dotnet publish -c Release'
        }

        post {
            always {
                archiveArtifacts artifacts: """/bin/publish/**""", excludes: """/bin/publish/Tests/**""", """/bin/publish/coverage/**""", fingerprint: true
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

为此,我收到以下错误:

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 57: Arguments to "archiveArtifacts" must be explicitly named. @ line 57, column 21.
                       archiveArtifacts artifacts: """/bin/publish/**""", excludes: """/bin/publish/Tests/**""", """/bin/publish/coverage/**""", fingerprint: true
                       ^

1 error

    at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:310)
    at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1085)
    at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:603)
    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:133)
    at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.reparse(CpsGroovyShell.java:127)
    at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.parseScript(CpsFlowExecution.java:557)
    at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.start(CpsFlowExecution.java:518) …
Run Code Online (Sandbox Code Playgroud)

jenkins jenkins-pipeline

5
推荐指数
1
解决办法
1460
查看次数

带有 WithCredentials 和 Powershell 的声明式 Jenkins

stage('Deployment') {
steps {
    withCredentials([string(credentialsId: 'Test', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) {
        powershell '$pass = ConvertTo-SecureString -AsPlainText "${PASSWORD}" -Force'
        powershell '$SecureString = "${pass}"'
        powershell '$MySecureCreds = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList "${USERNAME}","${SecureString}"'
        powershell 'New-PSSession -ComputerName 192.123.123.123 -Credential "${MySecureCreds}"'
     }
     powershell 'Copy-Item "${ARTIFACT_PATH}" -Destination "${DESTINATION_PATH}" -ToSession -Recurse -Force'
     powershell 'Start-Process "iisreset.exe" -NoNewWindow -Wait'
     powershell 'Remove-Website -Name WebCareRecord'
     powershell 'Remove-WebAppPool WebCareRecord'
     powershell 'Get-WebBinding -Port 85 -Name WebCareRecord | Remove-WebBinding'
     powershell 'Start-Process "iisreset.exe" -NoNewWindow -Wait'
     powershell 'New-WebAppPool -Name WebCareRecord'
     powershell 'Set-ItemProperty "${POOL_PATH}" managedPipelineMode 0'
     powershell …
Run Code Online (Sandbox Code Playgroud)

jenkins jenkins-plugins jenkins-pipeline

5
推荐指数
1
解决办法
4745
查看次数

声明性詹金斯管道中的Powershell脚本

我正在使用环境凭据来获取用户名和密码。当我回显它们时,它们被完美地打印为****.

接下来是 powershell 命令,当我单独运行它们时,所有命令都运行良好。但通过 Jenkins 管道,它向我抛出以下错误:

groovy.lang.MissingPropertyException:没有这样的属性:类的 psw:groovy.lang.Binding

谁能解释一下将 powershell 合并到 Jenkins 管道中的正确方法吗?

environment {
   CREDENTIAL = credentials('Test')
}

stage('Deployment') {
        steps {
                echo "$CREDENTIAL_USR"
                echo "$CREDENTIAL_PSW"
                powershell """($psw = ConvertTo-SecureString -String $CREDENTIAL_PSW -AsPlainText -Force)"""
                powershell """($mySecureCreds = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $CREDENTIAL_USR, $psw -Verbose)"""
                powershell """(Set-Item WSMan:/localhost/Client/TrustedHosts -Value "*" -Force)"""
                powershell """($session = New-PSSession -ComputerName "192.111.111.111" -Credential $mySecureCreds)"""
Run Code Online (Sandbox Code Playgroud)

powershell jenkins jenkins-plugins

5
推荐指数
2
解决办法
1万
查看次数