jenkins快速入门,自动构建一个hello world项目(devops,ci/cd)

简介: jenkins快速入门,自动构建一个hello world项目(devops,ci/cd)

aHR0cHM6Ly9jb2RpbmczbWluLm9zcy1hY2NlbGVyYXRlLmFsaXl1bmNzLmNvbS8yMDIwLzA2LzI4LzlRVGQ2YTIwMzcuanBn.png

jenkins是一个非常老牌的ci/cd工具,它是一款使用Java写的开源自动化应用。可以通过界面或Jenkinsfile告诉它执行什么任务,何时执行,理论上,可以让它执行任何事,一般用来做ci/cd(开发只用关心代码实现,提交代码以后自动测试、打包、自动发布)可以说体量稍微大一点的团队都有自己的持续集成工具。


安装

aHR0cHM6Ly9jb2RpbmczbWluLm9zcy1hY2NlbGVyYXRlLmFsaXl1bmNzLmNvbS8yMDIwLzA2LzI4L2Z2QlgxSDIwMzcucG5n.png


我使用的是docker安装测试,其中~/Documents/code/jenkins/这个目录需要替换成你自己的,因为把目录挂载了出来,所以即使容器销毁也不会导致数据丢失。

mkdir jenkins-data
docker run \
  -u root \
  --name jenkins \
  -d \
  -p 8080:8080 \
  -p 50000:50000 \
  -v ~/Documents/code/jenkins/jenkins-data:/var/jenkins_home \
  -v /var/run/docker.sock:/var/run/docker.sock \
  jenkinsci/blueocean

安装方法非常简单,其他安装方法以及安装完怎么配置见官网文档, 因为官方网站速度比较慢,可以先不安装插件后期改完镜像源再安装。


更新镜像源


aHR0cHM6Ly9jb2RpbmczbWluLm9zcy1hY2NlbGVyYXRlLmFsaXl1bmNzLmNvbS8yMDIwLzA2LzI4L3VLUUlseDIwMzgucG5n.png



进入 Manage Jenkins > Manage Plugins > Advanced,在这里可以手动上传插件包,也可以更新其他镜像源,然后Submit,再点击右下角Check now



aHR0cHM6Ly9jb2RpbmczbWluLm9zcy1hY2NlbGVyYXRlLmFsaXl1bmNzLmNvbS8yMDIwLzA2LzI4L3dOenNsUzE1MzcucG5n.png

附:清华大学镜像源


https://mirror.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

PS:我用了镜像源还是卡慢,网上找遍了也没找到好的办法,最后还是翻出去下的。


安装插件


还是在此页面,仅安装pipeline插件,这个插件就是构建用的核心插件,jenkins会自动解决安装插件时的依赖问题,安装完重启jenkins


aHR0cHM6Ly9jb2RpbmczbWluLm9zcy1hY2NlbGVyYXRlLmFsaXl1bmNzLmNvbS8yMDIwLzA2LzI4L3BFMWp1OTE2MzcucG5n.png


创建项目


1、 左上角 New item 按钮

2、 输入项目名,选择流水线,提交



aHR0cHM6Ly9jb2RpbmczbWluLm9zcy1hY2NlbGVyYXRlLmFsaXl1bmNzLmNvbS8yMDIwLzA2LzI4L2E4ZFNVMzE4MTYucG5n.png


3、直接拉到下面,填入以下内容然后保存


aHR0cHM6Ly9jb2RpbmczbWluLm9zcy1hY2NlbGVyYXRlLmFsaXl1bmNzLmNvbS8yMDIwLzA2LzI4L0lqUW4wRzE4MTcucG5n.png

pipeline {
    agent any
    stages {
        stage('build') {
            steps {
                echo 'hello world!'
            }
        }
    }
}

代码解释:


jenkins使用的是Groovy这种编程语言,常用的是声明式语法

上面代码中pipeline实际上是一个函数,只是省略了小括号pipeline({}),中间是传入参数,大括号包着的是一个匿名的函数(闭包),这个函数里面的内容就是函数体,又调用了agent函数和stages函数

stages函数传入的是stage函数列表表示不同的构建阶段,此处只有build阶段

steps又表示不同的步骤


4、在项目详情页面立即构建


aHR0cHM6Ly9jb2RpbmczbWluLm9zcy1hY2NlbGVyYXRlLmFsaXl1bmNzLmNvbS8yMDIwLzA2LzI4LzVWV0ZHNTE4MjAucG5n.png



5、可以点击#1查看刚刚的构建


aHR0cHM6Ly9jb2RpbmczbWluLm9zcy1hY2NlbGVyYXRlLmFsaXl1bmNzLmNvbS8yMDIwLzA2LzI4L2ZtZWtxYzE4MjEucG5n.png

6、点这里可以看到输出历史

aHR0cHM6Ly9jb2RpbmczbWluLm9zcy1hY2NlbGVyYXRlLmFsaXl1bmNzLmNvbS8yMDIwLzA2LzI4L1gxam5KSDE4MjIucG5n.png

界面重点功能介绍


image.png



总结


官网文档安装 jenkins

安装插件位置 Manage Jenkins > Manage Plugins

初始安装pipeline插件即可

整个构建流程:获取源代码(凭据、github 等接入源、用户权限、绑定触发动作)-根据pipeline描述步骤开始测试、构建、发布以及构建成功与否的通知


最后尽量还是自己动动手试一下,才能更好的学会这个东西。


引用



相关文章
|
1月前
|
jenkins Devops Java
DevOps实践:Jenkins在持续集成与持续部署中的价值
【10月更文挑战第27天】在快速发展的软件开发领域,DevOps实践日益重要。Jenkins作为一款流行的开源自动化服务器,在持续集成(CI)和持续部署(CD)中扮演关键角色。本文通过案例分析,探讨Jenkins在Java项目中的应用,展示其自动化构建、测试和部署的能力,提高开发效率和软件质量。
56 2
|
1月前
|
存储 监控 Devops
DevOps实践:持续集成/持续部署(CI/CD)的实战指南
DevOps实践:持续集成/持续部署(CI/CD)的实战指南
|
1月前
|
jenkins Devops 测试技术
DevOps实践:Jenkins在持续集成与持续部署中的价值
【10月更文挑战第26天】随着DevOps理念的普及,Jenkins作为一款开源自动化服务器,在持续集成(CI)与持续部署(CD)中发挥重要作用。本文通过某中型互联网企业的实际案例,展示了Jenkins如何通过自动化构建、持续集成和持续部署,显著提升开发效率、代码质量和软件交付速度,帮助企业解决传统手工操作带来的低效和错误问题。
66 4
|
2月前
|
自然语言处理 jenkins 测试技术
Jenkins适合什么样的项目
【10月更文挑战第18天】Jenkins适合什么样的项目
38 3
|
2月前
|
Devops jenkins 测试技术
DevOps实践:持续集成与持续部署(CI/CD)的实现之路
【9月更文挑战第33天】在软件开发的海洋中,DevOps是一艘能够加速航行、提升航程质量的巨轮。本文将作为你的航海图,指引你理解并实现DevOps文化中的核心环节——持续集成(CI)与持续部署(CD)。我们将从基础概念出发,逐步深入到实际操作,带你领略代码到部署的全过程。准备好扬帆起航,让我们共同探索如何通过自动化工具和流程优化,让软件交付变得既高效又可靠。
|
2月前
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
76 0
|
1月前
|
运维 安全 Devops
DevOps实践:持续集成与持续部署(CI/CD)的自动化之路
【10月更文挑战第22天】在软件交付的快速迭代中,DevOps文化和实践成为企业加速产品上市、保证质量和提升客户满意度的关键。本文将通过一个实际案例,深入探讨如何利用持续集成(Continuous Integration, CI)和持续部署(Continuous Deployment, CD)实现软件开发流程的高效自动化,包括工具选择、流程设计以及问题解决策略。我们将一起探索代码从编写到部署的全自动化旅程,揭示其对企业运维效率和产品质量所带来的深远影响。
|
2月前
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
213 0
|
4月前
|
敏捷开发 缓存 前端开发
阿里云云效产品使用合集之前端打包时npm安装卡住一般是什么导致的
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
4月前
|
敏捷开发 弹性计算 持续交付
阿里云云效产品使用合集之同一个主机部署是否支持下载多个制品
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。