# jenkins_script **Repository Path**: itopen/jenkins_script ## Basic Information - **Project Name**: jenkins_script - **Description**: jenkinsj每日构建代码 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-09-11 - **Last Updated**: 2025-09-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # jenkins_script脚本介绍 ## 一、脚本简介 该脚本作用是基于jenkins智能搭建OpenHarmony产品测试任务而准备的。 通常我们使用jenkins搭建自动化测试任务时都是编写一个测试运行脚本,然后jenkins创建任务,在任务的Build Steps里调用编写好的脚本,如果是一个产品还好,但是如果有10多个,20个多个产品,那么维护的脚本就有10多20多个,维护成本则成倍增加,而针对都是同一类型的OpenHarmony产品,其代码下载、编译、构建其实都是很类似的。 因此这里我们可以将所有的任务归类统一化调用,通过jenkins的JOB_NAME来区分任务,同时在product.list中将对应任务产品的相关参数配置齐全即可,而任务的创建只需要复制配置好的任务即可,连调用脚本都不用修改,都是统一的build.sh. ## 二、脚本介绍 ### 2.1 使用前准备 - **ssh配置** 必须提前将本地root账号的ssh的public-key内容添加到代码的gitlab/gerrit/gitee账号下,具体操作不介绍,百度上很多 - **git配置** 执行如下命令,配置好本地git ```shell git config --global user.name "yourname" git config --global user.email "your-email-address" git config --global core.editor vim git config --global credential.helper store git config --global http.sslverify false ``` 本地下载gitlab任意一个仓,如果没有自行创建一个仓,如果Ubunut是首次访问该gitlab会要求输入账号和密码 ```shell test@pc220522:~/test$ git clone https://isrc.iscas.ac.cn/gitlab/riscv/polyosmobile/gitlab_code_update.git Cloning into 'gitlab_code_update'... Username for 'https://isrc.iscas.ac.cn': wen_fei # 输入gitlab的用户名 Password for 'https://wen_fei@isrc.iscas.ac.cn': # 输入gitlab的密码 remote: Enumerating objects: 65, done. remote: Counting objects: 100% (65/65), done. remote: Compressing objects: 100% (64/64), done. remote: Total 65 (delta 32), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (65/65), done. ``` 结束后检查`~/.git-credentials`中是否出现了如下的一条记录,如果没有可以手动创建该文件并手动添加进去 ```shell https://user_name:passwd@ip # 样例 https://zhang_san:123456aA@gitee.com https://zhang_san:123456aA@192.169.1.100 ``` - **repo首次下载配置** 本地root账号不得是首次使用repo下载代码,否则先使用repo配置一下环境,因为有一个测试颜色输出,直接输入y回车即可 ```shell test@pc220522:~/test$ mkdir -p ~/test && cd ~/test test@pc220522:~/test$ repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify Your identity is: wenfei If you want to change this, please re-run 'repo init' with --config-name Testing colorized output (for 'repo diff', 'repo status'): black red green yellow blue magenta cyan white bold dim ul reverse Enable color display in this user account (y/N)? y # 输入y然后回车 repo has been initialized in /home/test/test ``` ### 2.2 product.list参数介绍 | 参数名 | 示例 | 说明 | | -------------------- | ------------------------------------------ | ------------------------------------------------------------ | | id | 1.1 | 只是序号记录,任务中无意义 | | job_name | openharmony-v4.0-build | 和jenkins创建的任务名称必须一致 | | path_name | dayu800-v3.2.2-release | 代码下载的目录名,前面有统一的下载目录为DAILY_PATH: /jenkins/ohos-daily/$(date +"%Y_%m_%d") | | level | L2 | 鸿蒙系统的等级,值为:L0/L1/L2 | | image_name | openharmony-v4.0-release | 后面将打包的镜像重新命名 | | manifest_url | https://gitee.com/openharmony/manifest.git | repo下载代码的url,下载过OpenHarmony代码的都懂 | | manifest_branch | OpenHarmony-v4.0-Release | repo下载代码的branch | | manifest_xml | default.xml | repo下载代码的xml | | prebuild_src_name | openharmony_prebuilts_v4.0 | ./build/prebuilts_download.sh预下载保存的文件名 | | prebuild_dst_name | openharmony_prebuilts | 该分支预下载在上级目录的目录名 | | board_name | dayu800 | 编译时候的product_name | | build_args1 | - | 编译中--gn-args的参数内容,没有就填写-,本脚本支持5个参数 | | build_args2 | - | 编译中--gn-args的参数内容,没有就填写- | | build_args3 | - | 编译中--gn-args的参数内容,没有就填写- | | build_args4 | - | 编译中--gn-args的参数内容,没有就填写- | | build_args5 | - | 编译中--gn-args的参数内容,没有就填写- | | bat_script_name | dayu800_v4.0_flash.bat | windows烧录镜像的脚本,没有填写- | | is_tar_libunstripped | yes | 是否需要打包没有trip的库,方便调试,选项:yes/no | | is_tar_sdk | yes | 是否需要打包sdk,选项:yes/no | ### 2.3 jenkins创建任务 Build Steps选择执行shell,然后添加以下命令即可 ``` bash /jenkins/task/build.sh ```