Jenkins 是什么?#
Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。
Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。
安装Jenkins#
Jenkins 提供了多种版本的下载方式,具体可以在这里查看 Jenkins 也可以通过 docker 容器安装
docker run -d -u root -p 8080:8080 -v jenkins-data:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock jenkinsci/blueocean
启停Jenkins#
OSX 中Jenkins的配置文件在/Library/Preferences/org.jenkins-ci.plist
启动Jenkins
sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist
停止Jenkins
sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
卸载Jenkins
/Library/Application Support/Jenkins/Uninstall.command
Jenkins Pipeline#
Jenkins Pipeline(或简称为 “Pipeline”)是一套插件,将持续交付的实现和实施集成到 Jenkins 中 创建Jenkins Pipeline项目,在Pipeline中配置相关的项目地址
编译项目之前在http://localhost:8080/configureCredentials/ 添加credentials
Jenkins Output
编写pipeline#
Pipeline 中agent定义了代码的执行环境,可以是java, maven, gradle, node 等, stage定义了操作步骤,可以把“步骤(step)”看作一个执行单一动作的单一的命令。 当一个步骤运行成功时继续运行下一个步骤。当任何一个步骤执行失败时,Pipeline 的执行结果也为失败。
pipeline { agent { docker { image 'gradle' } } environment { DISABLE_AUTH = 'true' DB_ENGINE = 'sqlite' } stages { stage('Init') { steps { echo 'Init' sh 'gradle compileJava' } } stage('Build') { steps { echo 'Building' sh 'gradle build' } } stage('Test') { steps { echo 'Testing' sh 'gradle test' } } stage('Deploy') { steps { echo 'Deploying' sh 'gradle jar' } } } post { success { echo 'I succeeeded!' } }}
BlueOcean 插件#
Blue Ocean 是一个可视化Pipeline流程的插件,可以实时显示编译状态。 Blue Ocean
示例输出