1. Jenkins 高级使用

1.1. ssh 远程

1.1.1. 安装插件

安装 SSH 插件

1.1.2. 配置 SSH

Jenkins > 系统管理 > 系统设置 > SSH remote hosts

1.1.3. 使用 SSH

构建 > 添加构建步骤 > Execute shell script on remote host using ssh

1.2. Keychains 管理

参考 Keychains and Provisioning Profiles Plugin

允许访问密码: Keychains > 登录 > 密码 > 选择需要设置的密码 双击 > 访问控制 > 允许所有的应用程序访问此项目 > 存储更改

Release Code Signing 改为手动:

Xcode > Project > Build Settings > Code Signing Style > Release > Manual
Xcode > Project > Build Settings > Code Signing Identity > Release > iOS Distribution

1.3. curl 修改 build 信息

# 获取 build 信息
curl -s --user "$USER:$PASSWORD" --data-urlencode "tree=description" \
    "$jenkins_url/job/$job_name/$build_number/api/json
# 修改
if curl -u $USER:$PASSWORD   --data-urlencode "description=$new_description" \
    --data-urlencode "Submit=Submit" \
    "$jenkins_url/job/$job_name/$build_number/submitDescription"
then
    echo "Description successfully changed on Build #$build_number in Jenkins job $job_name"
else
    echo "WARNING: Description was not set. Manually change the descripiton of the build"
    echo "         for Build #$build_number in Jenkins job $job_name"
fi

1.4. Jenkins 命令行

1.5. 任务类型

1.5.1. 构建一个自由风格的软件项目

1.5.2. Pipeline 流水线|管道

  • Declarative Pipeline 相对简单,而且不需要学习groovy语法,对于日常的一般任务完全够用,
  • Scripted Pipeline 可通过Groovy语言的强大特性做任何你想做的事情。

可以在 Jenkinsfile 中 clone 多个 repo 实现一个任务多仓库功能

1.5.3. MultiBranch Pipeline

MultiBranch Pipeline可以理解为是针对某个工程所有分支代码的pipeline集合,jenkins会自动发现源代码中的jenkinsfile配置文件生成对应的分支job。 而MultiBranch Pipeline要求jenkinsfile配置文件存放在源代码的方式,也是符合Pipeline as Code的理念。虽然这也会给一些没有代码提交权限的devops工程师带来困扰。

1.6. Pipeline

通过编写 Jenkinsfile 自动执行任务

1.7. Jenkinsfile

1.7.1. Git

Jenkinsfile 中实现 git clone 功能:

使用 checkout 命令参考 Pipeline: SCM Step

 checkout([  
            $class: 'GitSCM', 
            branches: [[name: 'refs/heads/master']], 
            doGenerateSubmoduleConfigurations: false, 
            extensions: [[$class: 'CloneOption', timeout: 120]],
            submoduleCfg: [], 
            userRemoteConfigs: [[credentialsId: '6463627-ab54-4e42-bc29-123458', url: 'https://github.com/AtlasBID/CalibrationResults.git']]
])

或者使用 git 命令参考 Pipeline Git plugin,只能使用 url,branch,changelog,credentialsId,poll 这几个参数

git(
    url: 'git@git.shimo.im:shimo/baboon.git', 
    branch: "$master"
)

1.8. References

results matching ""

    No results matching ""