[TOC] > [home中文](https://jenkins.io/zh/doc/) ## 概述 Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要 ## 安装 > [官网下载](https://jenkins.io/zh/download/) ## 远程触发编译 ### 使用 curl 格式 ` curl -X POST --user 用户:密码 网站/job/任务名/build` 如` curl -X POST --user bgiant:123456 http://192.168.0.58:8080/job/win_go_build/build` ### 通过 java 1. 下载 `jenkins-cli.jar` ``` wget http://localhost:8080/jnlpJars/jenkins-cli.jar //or wget http://localhost:8080/jenkins/jnlpJars/jenkins-cli.jar ``` 2.执行 `java -jar jenkins-cli.jar -s http://localhost:8080/jenkins build demo2 -p id=123 -p name=autotest --username admin2 --password 123456` ## 节点 ### 添加window 节点 > [jenkins配置节点无Launch agent via Java Web Start项](https://blog.csdn.net/qq_15158911/article/details/76253825) > [Jenkins创建slave节点----Windows平台 ](https://blog.csdn.net/jiang1986829/article/details/51156126) #### 启动`Launch agent via Java Web Start`选项 1. 全局安全设置 2. `TCP port JNLP agents` 配置成"随机",点击"Agent protocols",打勾开启 `Web Start Agent Protocol3` 3. 检查Plugin Manager中"Enable Slave"需要打勾 ![](https://img.kancloud.cn/ab/55/ab55a3a012d96a7c78371f0ca05e97a8_1045x278.png) ## 配置 window 在启动方式中选择 `通过 java web 启动代理` 在`window` 中执行语句 `java -jar agent.jar -jnlpUrl http://192.168.0.58:8080/computer/win10/slave-agent.jnlp -secret 7de7d5ef04d255a3ee0c7e81e3ec014f726c8d3952ca84673b0810746241a60e -workDir "C:\jenkins"` ## 构建 ### 构建一个go 推荐使用 `mod` 进行对go的管理 源码端操作 1. 开启 `set GO111MODULE=on` or`export GO111MODULE=on` 1. 对go的项目执行 `go mod init` 2. `go build main.go` 生成 `go.mod`的文件 3. `build_for_window.sh` 脚本,方便在 `jenkins`中执行 ``` #!/usr/bin/env bash export GOPATH= export GO111MODULE=on # 配置 GOPROXY 环境变量 export GOPROXY=https://goproxy.io export GOOS=windows echo "build antbiz.go start..." go build antbiz.go ``` jenkins 端 1. 安装go 的环境 2. 新建任务 ![](https://img.kancloud.cn/02/c9/02c93291d335b720fa84bc8ea33d6632_1447x410.png) ![ /bin/bash build_for_window.sh ](https://img.kancloud.cn/16/c4/16c4f2f07c81586567304fbbb7f26d87_1420x367.png) `/bin/bash build_for_window.sh` > 注意 `mod`不能在 `$GOPATH` 下执行 ## 注释事项 ### mv 改为 cp 命令 由于已经存在的文件 使用 `mv` 会报错,所有采用 `\cp` 的形式 eg `\cp -rf ../linux_server_std_build/bin/linux_x64/* im_server` ## 环境变量使用 ![](https://img.kancloud.cn/ec/3f/ec3f86d9e91230b7f5315c5c4c2dec03_573x161.png) ``` BRANCH_NAME 分支名称 JOB_NAME 编译目录 bar/foo WORKSPACE 当前项目的任务的工作空间 JENKINS_URL eg:http://server:port/jenkins/job/foo/ BUILD_URL eg : http://server:port/jenkins/job/foo/15/ ```