jenkins + docker + nodejs + webhooks 配置自动化CICD流程

有时我们不希望使用流行的travsci或者circleci来配置自动化CI/CD,或者内网项目使用jenkins来作为自动化CI/CD的工具

如果要使用jenkins的jenkinsfile,您需要创建pipline,在配置选项中,您将看到jenkinsfile

您可以指定好您的代码仓库后,在脚本路径中配置您的脚本相对于仓库的路径

配置好后您只需要点击保存,再点击立即构建build now即可查看结果

这里有dockernodejs的JenkinsFile配置文件供您参考,有关jenkins的webhooks配置看这里

附上运行成功的截图

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
pipeline {
agent any

stages {
stage('beforeclear') {
steps {
echo 'Clearing...删除可能存在的旧的容器'
sh 'docker ps -a | grep jenkins | awk \'{print $1}\'|xargs docker stop || true'
sh 'docker ps -a | grep jenkins | awk \'{print $1}\'|xargs docker rm || true'
}
}
stage('prebuild') {
steps {
echo 'Pre Building... 使用nodejs:16来构建项目 -v挂载数据卷'
sh 'docker run -itd --name jenkins -v /path:/opt/v1 owncloudci/nodejs:16'
}
}
stage('runbuild') {
steps {
echo 'Run Building... 在容器内执行构建脚本'
sh 'docker exec -i jenkins /bin/sh /opt/v1/build.sh'
}
}
stage('deploy') {
steps {
echo 'Deploying....'
sh 'ls -a'
sh 'cp -r ./public/* /path/ || true'
}
}
stage('afterclear') {
steps {
echo 'Clearing....'
sh 'docker ps -a | grep jenkins | awk \'{print $1}\'|xargs docker stop || true'
sh 'docker ps -a | grep jenkins | awk \'{print $1}\'|xargs docker rm || true'
}
}
}
}

系列文章

jenkins的自动化配置
jenkins的tty问题
jenkins的反向代理配置
jenkins的java11问题
jenkins的私钥格式错误问题
jenkins的webhooks配置
jenkins设置任务超时⏱(多种方法:图文并茂🖼)

参考