1# 流水线工具部署文档 2 3## wsl ubuntu 安装 4 5### 开发者模式开启 6 7安装首先要启用windows的开发者模式,左下角搜索 `开发者设置`并启用。 8 9 10 11 12### 启用windows功能 13 14左下角搜索 `启用或关闭windows功能`,勾选 `适用于Linux的windows子系统`。 15 16 17 18### linux-Ubuntu 下载 19 20桌面左下角搜索 `Microsoft store`打开商店, 搜索linux,下载Ubuntu22.04.02 LTS。 21 22 23 24下载完成后直接双击启动,会自动安装,一两分钟后安装完毕,按提示设置**用户名**、**密码**。 25 26 27 28## ubuntu环境配置 29 30### 基本指令下载 31 32在ubuntu命令行工具中输入以下命令安装工具。 33 34``` 35sudo apt-get update 36sudo apt-get install git-lfs bison flex gnupg build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses-dev x11proto-core-dev libx11-dev libc++1 lib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4 libtinfo5 bc genext2fs liblz4-tool libssl-dev ruby gdb libelf-dev libxcursor-dev libxrandr-dev libxinerama-dev 37``` 38 39### 安装JDK 40 41``` 42sudo apt-get update 43sudo apt-get install openjdk-11-jdk 44``` 45 46安装完毕后输入 `java -version`验证 47 48 49 50### 安装node 51 52``` 53cd ~ 54mkdir Node 55cd Node 56wget https://nodejs.org/download/release/v16.19.1/node-v16.19.1-linux-x64.tar.xz 57tar -xvf node-v16.19.1-linux-x64.tar.xz 58``` 59 60 61 62### 配置node环境变量 63 64``` 65cd node-v16.19.1-linux-x64 66pwd 67``` 68 69右键复制输出的路径,按照以下命令打开配置文件编辑,将userName替换为真实的用户名。 70 71``` 72vim ~/.bashrc 73 74// 添加以下内容 75export NODE_HOME=/home/userName/Node/node-v16.19.1-linux-x64 76export PATH=$NODE_HOME:$PATH 77export NODE_HOME_BIN=/home/userName/Node/node-v16.19.1-linux-x64/bin 78export PATH=$NODE_HOME_BIN:$PATH 79``` 80 81 82 83编辑完键盘按esc 然后输入 `:wq`回车保存。 84 85输入以下命令重载入环境变量,并验证。 86 87``` 88source ~/.bashrc 89node -v 90``` 91 92 93 94### 安装ohpm工具 95 96下载ohpm工具压缩包并解压 97 98``` 99wget "https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_package_901_9/a6/v3/cXARnGbKTt-4sPEi3GcnJA/ohcommandline-tools-linux-2.0.0.1.zip?HW-CC-KV=V1&HW-CC-Date=20230512T075353Z&HW-CC-Expire=315360000&HW-CC-Sign=C82B51F3C9F107AB460EC26392E25B2E20EF1A6CAD10A26929769B21B8C8D5B6" -O ohpmTool.zip 100unzip ohpmTool.zip 101``` 102 103 104 105初始化ohpm 106 107``` 108cd oh-command-line-tools/ohpm/bin/ 109pwd 110./init 111``` 112 113 114复制一下上面pwd输出的结果,然后手动添加ohpm的目录到环境变量。 115 116``` 117vim ~/.bashrc 118 119// 添加以下内容 120export OHPM_HOME=/home/userName/oh-command-line-tools/ohpm/bin 121export PATH=$OHPM_HOME:$PATH 122``` 123 124 125 126重新加载环境变量,并验证。 127 128``` 129source ~/.bashrc 130cd ~ 131ohpm 132``` 133 134 135 136## HapBuild工具下载 137 138``` 139cd ~ 140git init 141git config core.sparsecheckout true 142echo code/Project/HapBuild > .git/info/sparse-checkout 143git remote add origin https://gitee.com/openharmony/applications_app_samples.git 144git pull origin master 145``` 146 147### 下载SDK 148 149``` 150cd ~/code/Project/HapBuild/compile-tool/bin 151sudo chmod +x init-sdk.sh 152./init-sdk.sh 153``` 154 155 156 157执行完以上命令后开始下载SDK,一共要下6个SDK耗时较长。 158 159下载完SDK后手动添加hdc的目录到环境变量。 160 161``` 162cd ~/code/Project/HapBuild/compile-tool/sdk-full/10/toolchains 163pwd 164vim ~/.bashrc 165 166// 把pwd输出的路径添加到下面 167#hdc 168export HDC_HOME=/home/userName/code/Project/HapBuild/compile-tool/sdk-full/10/toolchains 169export PATH=$HDC_HOME:$PATH 170``` 171 172 173 174重新加载环境变量,并验证。 175 176``` 177source ~/.bashrc 178cd ~ 179hdc 180``` 181 182 183 184### 给shell脚本增加权限 185 186``` 187cd ~/code/Project/HapBuild/compile-tool/bin 188sudo chmod +x compile-ut-ohpm.sh compile-ohpm-ci.sh init-sdk.sh update-sdk.sh 189``` 190 191### 初始化本地sample仓 192 193``` 194cd ~ 195$PWD/code/Project/HapBuild/compile-tool/bin/compile-ut-ohpm.sh --p=$PWD/code/Project/HapBuild/compile-tool/config/ut_samples_master.config --compile_dir=code 196``` 197 198注意:这一步是为了让本地存有代码,所以仓库克隆完毕即可Ctrl + C退出。 199 200### 修改项目配置文件 201 202打开项目路径下的 `ci/config.dev.ts`编辑后台服务配置文件,修改配置文件路径为真实路径。 203 204打开gitee官网[申请私人令牌](https://gitee.com/profile/personal_access_tokens),将申请到的私人令牌复制,替换 `accessToken`。 205 206``` 207vim ~/code/Project/HapBuild/ci/config.dev.ts 208 209// 将accessToken替换成从gitee上申请的私人令牌,将userName改为真实用户名 210export const ACCESS_TOKEN = 'accessToken'; 211export const PROJECT_PATH = '/home/userName/code/Project/HapBuild/compile-tool/projects/ut_samples_master'; 212export const CONFIG_PATH = '/home/userName/code/Project/HapBuild/compile-tool/config/ut_samples_master.config'; 213export const COMPILE_SH_PATH = '/home/userName/code/Project/HapBuild/compile-tool/bin/compile-ohpm-ci.sh'; 214export const SIGN_HAP_PATH = '/home/userName/code/Project/HapBuild/compile-tool/out/ut_samples_master/full-sdk/hap-out-with-signed'; 215export const TEST_TOOL_PATH = '/home/userName/code/Project/HapBuild/test-tool/InstallAndTestSpecial_ci.py'; 216export const CONTAINS_PATH = '/home/userName/code/Project/HapBuild/test-tool/LinuxContains.py'; 217export const SIGN_FULL_PATH = '/home/userName/code/Project/HapBuild/compile-tool/out/ut_samples_master/full-sdk/hap-out-with-signed/'; 218export const SIGN_PUBLIC_PATH = '/home/userName/code/Project/HapBuild/compile-tool/out/ut_samples_master/public-sdk/hap-out-with-signed/'; 219``` 220 221修改完成后保存退出。 222 223打开项目路径下的 `test-tool/LinuxContains.py`编辑测试脚本配置文件。 224 225``` 226sudo chmod +x ~/code/Project/HapBuild/test-tool/LinuxContains.py 227vim ~/code/Project/HapBuild/test-tool/LinuxContains.py 228 229// 将userName改为真实用户名 230SIGN_HAP_PATH = r'/home/userName/code/Project/HapBuild/compile-tool/out/ut_samples_master/full-sdk/hap-out-with-signed/' 231FA_MODAL_AND_LOWER_CASE_LIST = r'/home/userName/code/Project/HapBuild/test-tool/FA_Model_And_Lower_Case_List.json' 232INSTALL_LIST_CAPABILITY = r'/home/userName/code/Project/HapBuild/ci/install_list_capability.json' 233SAVE_XML_PATH = r'/home/userName/code/Project/HapBuild/test-tool' 234COMBIN_CONFIG = r'/home/userName/code/Project/HapBuild/test-tool/CombinationConfig.json' 235SPECIAL_LIST = r'/home/userName/code/Project/HapBuild/test-tool/special_list.json' 236SPECIAL_HAP = r'code_UI_JsComponentCollection_JsComponentCollection;code_SuperFeature_MultiDeviceAppDev_JsAdaptiveCapabilities;code_BasicFeature_FileManagement_FileShare_SandboxShare;code_SystemFeature_DeviceManagement_DeviceManagementCollection;code_BasicFeature_Security_PaySecurely_paySDK;code_SystemFeature_ApplicationModels_Launcher;code_SuperFeature_DistributedAppDev_JsDistributedMusicPlayer;code_SuperFeature_DistributedAppDev_DistributeCalc;code_Solutions_Tools_JsClock;code_BasicFeature_Notification_CustomNotificationBadge' 237TARGET_PATH = r'code_Solutions_Game_DistributedDataGobang' 238``` 239 240### 下载依赖 241 242下载测试脚本所需python环境及python依赖。 243 244``` 245cd ~ 246sudo apt update 247sudo apt install python3 248``` 249 250检测是否安装完成。 251 252``` 253python3 --version 254``` 255 256 257 258下载依赖。 259 260``` 261sudo apt update 262sudo apt install python3-pip 263pip install paramiko 264``` 265 266## 运行ci模块 267 268初始化ci,下载依赖。 269 270``` 271cd ~/code/Project/HapBuild/ci 272npm i -g @nestjs/cli 273npm i 274npm run build 275npm install pm2 -g 276``` 277 278> pm2如果安装不上可以尝试清除 npm 缓存 `npm cache clean --force`,再使用淘宝npm镜像 `npm config set registry https://registry.npm.taobao.org/`,最后再尝试安装 `npm install pm2 -g`。 279 280运行项目。 281 282``` 283cd ~/code/Project/HapBuild/ci 284pm2 start dist/src/main.js 285``` 286 287 288 289使用以下命令可以看到项目的运行情况。 290 291``` 292pm2 status 293``` 294 295 296 297使用以下命令停止该项目。 298 299``` 300pm2 stop dist/src/main.js 301``` 302 303 304 305## 浏览器访问验证 306 307在浏览器上输入网址:http://127.0.0.1:3000/swagger