如何将目录更改为 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

之类的文件夹