当前位置: 首页 > 知识库问答 >
问题:

Jenkins声明性管道找不到一些脚本

微生永春
2023-03-14

我写了一个Jenkins管道,相关部分如下所示:

pipeline {

    agent {
        dockerfile true 
    }
    triggers {
        pollSCM('H 1 * * 1-5')
    }
    options {
        buildDiscarder(logRotator(artifactNumToKeepStr: "${NUMBER_OF_ARTIFACTS_TO_KEEP}"))
        disableConcurrentBuilds()
        timeout(time: 60, unit: 'MINUTES')
        timestamps()
    }

    stages {
        stage('Metadata') {
            steps {
                script {
                    sh 'java -version'
                }
                script {
                    sh './mvnw -v'
                }
            }
        }

        stage('Build') {
            steps {
                script {
                    sh './mvnw --batch-mode clean install'
                }
            }
        }

        stage('Archive artifacts (develop/master)') {
            when {
                anyOf {
                    branch 'master'
                    branch 'develop'
                }
            }
            steps {
                script {
                    sh './package.sh'
                }
                archive '**/target/*.jar'
                archiveArtifacts artifacts: '*.deb'
            }
        }
    }


    post {
        always {
            deleteDir()
        }
        failure {
            sendNotifications currentBuild.result
        }
        unstable {
            sendNotifications currentBuild.result
        }
    }
}

和我的DockerFile:

FROM alpine
RUN apk add --no-cache dpkg openjdk8

共有1个答案

竺辉
2023-03-14

我从这个答案中得到了答案。我只是简单地更改了using#!/bin/sh,它就可以工作了。

 类似资料:
  • 问题内容: 我正在尝试将旧样式的基于项目的工作流转换为基于Jenkins的管道。在浏览文档时,我发现有两种不同的语法分别命名为和。例如最近(2016年底)发布的Jenkins网络语法。尽管有一个新的语法版本,Jenkins仍然也支持脚本语法。 现在,我不确定这两种类型的哪种情况最合适。语法将很快被弃用吗?詹金斯管道的未来会是这样吗? 任何可以分享有关这两种语法类型的想法的人。 问题答案: 最初创建

  • 当我在jenkins中运行多分支管道代码时,我收到以下的以下错误: java.lang.NoSuchMethodError:在步骤中找不到这样的DSL方法“管道”[archive,bat,build,catchError,checkout,deleteDir,dir,echo,emailext,EmailExtrecients,error,fileExists,getContext,git,inp

  • 问题内容: 我的Jenkins 2.19.4使用管道:声明式代理程序API 1.0.1。如果您无法定义变量来分配读取的属性,那么如何使用readProperties? 例如,要捕获SVN版本号,我目前以脚本样式使用以下代码捕获它: 然后我可以使用: 由于以声明式定义svnProp是不合法的,因此如何使用readProperties? 问题答案: 您可以使用标记内的步骤来运行任意管道代码。 所以符合

  • 我有以下管道: 不幸的是,这引发了: groovy.lang.MissingPropertyException:没有这样的属性:org.kohsuke.groovy上的类groovylang.Binding.getVariable(Binding.java:63)的master:org.jenkinsi.plugins.scriptsecurity.sandbox.groovy-SandboxIn

  • 我有一个Jenkins声明性管道,我一直在Jenkins master上运行,它工作得很好。但是,现在我已经开始尝试在从属节点上执行此操作,管道中调用的groovy脚本无法访问工作区中的文件。 我的文件看起来像这样。。。 我可以在从机上看到它正在创建工作区,从git执行签出,并正确执行脚本。但是,如果脚本中的某些内容尝试与工作区中的文件交互,则会失败。 如果我有像这样简单的东西... ...它说找

  • 问题内容: 我想使用Jenkins 2.x Groovy Script Build Pipeline开始Sonar项目分析。 我在Maven中配置了声纳,所以没什么大不了的: 但是我如何从声纳获得结果呢?甚至更好的是,我如何确定是否达到了质量要求,以便停止构建管道。 据我所知,自从某些声纳版本以来,构建破坏者的概念就已过时。或您将如何处理。 我仍然认为,如果项目的基础代码太糟糕,则停止/暂停构建管