跳至主要內容

Jenkins-agent

HFwasjenkinsjenkins约 427 字大约 1 分钟

Jenkins-agent

docker-agent

  • jenkins提供了docker作为流水线的运行环境,
  • 启动流水线之后,jenkins会在配置的虚拟机当中启动一个docker容器来作为接下来流水线步骤的运行环境,当然也可以不同步骤定义不同的运行环境
  • 参考jenkisn官网,需要在jenkins当中填写agent选项,值为docker,指定容器镜像
pipeline {
    agent {
        docker { image 'node:7-alpine' }
    }
    stages {
        stage('Test') {
            steps {
                sh 'node --version'
            }
        }
    }
}
  • 我们这里以jenkins提供的流水线模版为例说明docker作为agent
  • 在流水线当中配置agent,添加几个子步骤,完整的jenkinsfile如下所示:
library identifier: 'custom-lib@master', retriever: modernSCM([
    $class: 'GitSCMSource',
    remote: 'https://github.com/HFwas/shared-library.git',
    credentialsId: 'my-private-key'
])
pipeline {
    agent {
        docker {
            image 'maven:3.6.3'
        }
    }

    stages {
        stage('shard-library') {
            steps {
                gitClone("","","","")
            }
        }
        stage('Build') {
            steps {
                // Get some code from a GitHub repository
                git 'https://github.com/jglick/simple-maven-project-with-tests.git'

                // Run Maven on a Unix agent.
                sh "mvn -Dmaven.test.failure.ignore=true clean package"

                // To run Maven on a Windows agent, use
                // bat "mvn -Dmaven.test.failure.ignore=true clean package"
            }

            post {
                // If Maven was able to run the tests, even if some of the test
                // failed, record the test results and archive the jar file.
                success {
                    junit '**/target/surefire-reports/TEST-*.xml'
                    archiveArtifacts 'target/*.jar'
                }
            }
        }
    }
}

  • 启动构建流水线,在控制台输出当中可以看到jenkins为我们新建一个docker容器,使用的是maven:3.6.3这个镜像
image-20240430155512558
image-20240430155512558
  • 然后在容器当中执行maven构建和单元测试这些步骤
  • Docker-agent也可以支持挂载,将下载的依赖挂载到虚拟机当中,这样提高了构建速度,不用每次都下载依赖
pipeline {
    agent {
        docker {
            image 'maven:3.6.3'
            args '-v $HOME/.m2:/root/.m2'
        }
    }
  • 这样在我们的虚拟机的$HOME/.m2路径下可以看到项目构建拉取的依赖
image-20240430155816932
image-20240430155816932

pod-agent

评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v3.1.3