首页 > 解决方案 > JenkinsFile 和 Pipeline 中的 sed 命令

问题描述

我正在尝试运行下面包含两个 sed 命令的 JenkinsFile。但是当我对文件进行分类时,我遇到了字符串插值的不同问题。

你知道我如何在 JenkinsFile 中运行它吗?提前致谢。

pipeline {
    agent any
    tools {nodejs "NodeJS 6.7.0"}
    stages {
        stage('checking out gitlab branch master') {
            steps {
                checkout([$class: 'GitSCM', branches: [[name: '*/development']]])
            }
        }
        stage('executing release process') {
            environment {
                ARTIFACTORY_APIKEY = credentials('sandbox-gms-password')
            }
            steps {
                sh 'cp bowerrc.template .bowerrc'
                sh 'sed -i -e "s/username/zest-jenkins/g" .bowerrc'
                sh 'sed -i -e "s/password/${ARTIFACTORY_APIKEY}/g" .bowerrc'
                sh 'cat .bowerrc'
            }
        }
   }
}

标签: jenkinsjenkins-pipeline

解决方案


将命令放在单个“ sh ”块中,请参考以下内容:-

pipeline {
agent any
tools {nodejs "NodeJS 6.7.0"}
stages {
    stage('checking out gitlab branch master') {
        steps {
            checkout([$class: 'GitSCM', branches: [[name: '*/development']]])
        }
    }
    stage('executing release process') {
        environment {
            ARTIFACTORY_APIKEY = credentials('sandbox-gms-password')
        }
        steps {
            sh '''
                  cp bowerrc.template .bowerrc
                  sed -i -e "s/username/zest-jenkins/g" .bowerrc
                  sed -i -e "s/password/${ARTIFACTORY_APIKEY}/g" .bowerrc
                  cat .bowerrc
               '''
        }
    }
   }
}

推荐阅读