如何将目录更改为 Jenkins 中的克隆仓库?
How to change directory to the cloned repo in Jenkins?
这是我的 Jenkins 文件:
stage('Clone the Prometheus dashboard repo')
{
deleteDir()
checkout([$class: 'GitSCM', branches: [[name: "*/master"]], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: "${Git}", url: "https://testorg/testrepo/test-kubernetes.git"]]])
}
stage("Install the dashboards")
{
sh '''#!/usr/bin/env bash
set -x
cd ${WORKSPACE}
pwd
ls
cd test-kubernetes/kubernetes/Prometheus/kube-prometheus/utils
cat build.sh
'''
}
不幸的是,无法更改目录。同样在 ls
中,我没有看到克隆的 repo。
我可以知道我在这里做错了什么吗?
你可以这样做:
node {
deleteDir()
dir('dir-name') {
stage('checkout') {
git branch: 'main',url: 'https://github.com/samitkumarpatel/test0.git'
}
stage('do stuff') {
sh """
ls -al
"""
}
}
}
这意味着当 Jenkins 开始构建时,它将创建一个文件夹 dir-name
如果 Jenkins 作业 $WORKSPACE 上不存在,并检查该目录中的 repo。
test0.git文件夹结构
├── Jenkinsfile
├── Jenkinsfile.Declarative-n-scripted
├── Jenkinsfile.iffilechange
├── Jenkinsfile.test0
├── README-one.md
├── README.md
├── shared-library
│ ├── src
│ └── vars
│ ├── log.groovy
│ ├── myPipeline.groovy
│ └── oneToTen.groovy
├── src01
│ └── 01.txt
├── src02
│ └── 02.txt
└── src03
└── 03.txt
Jenkins 日志输出
注意 - 在我的输出示例中,您在工作 WORKSPACE 上看不到 test0
文件夹,因为 SCM git 插件检查子文件夹和文件,而不是根文件夹。
因此,根据您的情况,您可以导航到 cd $WORKSPACE/kubernetes/Prometheus/kube-prometheus/utils
之类的文件夹
这是我的 Jenkins 文件:
stage('Clone the Prometheus dashboard repo')
{
deleteDir()
checkout([$class: 'GitSCM', branches: [[name: "*/master"]], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: "${Git}", url: "https://testorg/testrepo/test-kubernetes.git"]]])
}
stage("Install the dashboards")
{
sh '''#!/usr/bin/env bash
set -x
cd ${WORKSPACE}
pwd
ls
cd test-kubernetes/kubernetes/Prometheus/kube-prometheus/utils
cat build.sh
'''
}
不幸的是,无法更改目录。同样在 ls
中,我没有看到克隆的 repo。
我可以知道我在这里做错了什么吗?
你可以这样做:
node {
deleteDir()
dir('dir-name') {
stage('checkout') {
git branch: 'main',url: 'https://github.com/samitkumarpatel/test0.git'
}
stage('do stuff') {
sh """
ls -al
"""
}
}
}
这意味着当 Jenkins 开始构建时,它将创建一个文件夹 dir-name
如果 Jenkins 作业 $WORKSPACE 上不存在,并检查该目录中的 repo。
test0.git文件夹结构
├── Jenkinsfile
├── Jenkinsfile.Declarative-n-scripted
├── Jenkinsfile.iffilechange
├── Jenkinsfile.test0
├── README-one.md
├── README.md
├── shared-library
│ ├── src
│ └── vars
│ ├── log.groovy
│ ├── myPipeline.groovy
│ └── oneToTen.groovy
├── src01
│ └── 01.txt
├── src02
│ └── 02.txt
└── src03
└── 03.txt
Jenkins 日志输出
注意 - 在我的输出示例中,您在工作 WORKSPACE 上看不到 test0
文件夹,因为 SCM git 插件检查子文件夹和文件,而不是根文件夹。
因此,根据您的情况,您可以导航到 cd $WORKSPACE/kubernetes/Prometheus/kube-prometheus/utils