From 81a82aab35cd758cc42187a0bb4390bbba0ddea6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=A5=E5=BC=80=E5=AE=89?= Date: Mon, 18 Mar 2024 19:35:35 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=B8=80=E9=94=AE=E9=83=A8=E7=BD=B2=E5=AE=89?= =?UTF-8?q?=E8=A3=85=E6=8C=87=E5=AF=BC=E8=B5=84=E6=96=99=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?iso=E4=BF=A1=E6=81=AF=202.jenkins=E6=9B=B4=E6=96=B0=E8=84=9A?= =?UTF-8?q?=E6=9C=AC=E7=9F=A5=E9=81=93=E8=B5=84=E6=96=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...62\345\222\214\351\227\250\347\246\201.md" | 47 ++++++++++++++---- ...7\344\273\266\345\210\227\350\241\250.png" | Bin 12021 -> 6214 bytes ...6\347\275\256\344\275\215\347\275\256.png" | Bin 15815 -> 8742 bytes ...2\346\225\260\350\257\264\346\230\216.PNG" | Bin 0 -> 20103 bytes ...2\346\225\260\350\257\264\346\230\216.PNG" | Bin 0 -> 15249 bytes ...\345\267\245\345\205\267devkitpipeline.md" | 43 ++++++++++++++-- 6 files changed, 74 insertions(+), 16 deletions(-) create mode 100644 "document/\346\211\271\351\207\217\351\203\250\347\275\262\345\267\245\345\205\267/image/\346\211\271\351\207\217\351\203\250\347\275\262\345\267\245\345\205\267devkitpipeline/\344\270\200\351\224\256\344\270\213\350\275\275\345\221\275\344\273\244\350\241\214\345\217\202\346\225\260\350\257\264\346\230\216.PNG" create mode 100644 "document/\346\211\271\351\207\217\351\203\250\347\275\262\345\267\245\345\205\267/image/\346\211\271\351\207\217\351\203\250\347\275\262\345\267\245\345\205\267devkitpipeline/\344\270\200\351\224\256\351\203\250\347\275\262\345\221\275\344\273\244\350\241\214\345\217\202\346\225\260\350\257\264\346\230\216.PNG" diff --git "a/document/Jenkins\345\256\211\350\243\205\351\203\250\347\275\262/Jenkins\346\265\201\346\260\264\347\272\277\351\205\215\347\275\256\350\277\201\347\247\273\343\200\201\344\272\262\345\222\214\351\227\250\347\246\201.md" "b/document/Jenkins\345\256\211\350\243\205\351\203\250\347\275\262/Jenkins\346\265\201\346\260\264\347\272\277\351\205\215\347\275\256\350\277\201\347\247\273\343\200\201\344\272\262\345\222\214\351\227\250\347\246\201.md" index 028d6d6..0e8e139 100644 --- "a/document/Jenkins\345\256\211\350\243\205\351\203\250\347\275\262/Jenkins\346\265\201\346\260\264\347\272\277\351\205\215\347\275\256\350\277\201\347\247\273\343\200\201\344\272\262\345\222\214\351\227\250\347\246\201.md" +++ "b/document/Jenkins\345\256\211\350\243\205\351\203\250\347\275\262/Jenkins\346\265\201\346\260\264\347\272\277\351\205\215\347\275\256\350\277\201\347\247\273\343\200\201\344\272\262\345\222\214\351\227\250\347\246\201.md" @@ -36,7 +36,7 @@ stage('software-migration-assessment') { steps { echo '====== 软件迁移评估 ======' sh ''' - /usr/bin/rm -rf ./*.html + /usr/bin/rm -rf ./pkg-mig*.html devkit porting pkg-mig -i impala-2.9.0+cdh5.12.1+0-1.cdh5.12.1.p0.3.el7.x86_64.rpm -r html mv ./pkg-mig*.html ./SoftwareMigrationAssessment.html ''' @@ -77,7 +77,7 @@ stage('source-code-migration') { steps { echo '====== 源码迁移 ======' sh ''' - /usr/bin/rm -rf ./*.html + /usr/bin/rm -rf ./src-mig*.html devkit porting src-mig -i ./wtdbg2 -c make -r html mv ./src-mig*.html ./SourceCodeScanningReport.html ''' @@ -119,14 +119,39 @@ stage('source-code-migration') { ```groovy # devkit porting sys-mig -# 示例 devkit porting sys-mig -c stnt -cf porting/resources/sysmig default.conf +# 示例 stmt模式: devkit porting sys-mig -c stmt -cf porting/resources/sysmig_default.conf -o ./ +# 示例 sbom模式: devkit porting sys-mig -c sbom -cf porting/resources/sysmig default.conf -o ./ +# stmt模式 stage('system-migration') { steps { echo '====== 系统迁移 ======' sh ''' - /usr/bin/rm -rf ./*.html - devkit porting sys-mig -c stnt -cf porting/resources/sysmig default.conf + /usr/bin/rm -rf ./stmt*.csv + devkit porting sys-mig -c stmt -cf porting/resources/sysmig_default.conf -o ./ + mv ./stmt*.csv ./SystemMigration.csv + ''' + } + post { + always { + publishHTML(target: [allowMissing: false, + alwaysLinkToLastBuild: false, + keepAll : true, + reportDir : '.', + reportFiles : 'SystemMigration.csv', + reportName : 'SystemMigration Report'] + ) + } + } + } + +# sbom模式 +stage('system-migration') { + steps { + echo '====== 系统迁移 ======' + sh ''' + /usr/bin/rm -rf ./sbom*.html + devkit porting sys-mig -c sbom -cf porting/resources/sysmig_default.conf -o ./ mv ./sbom*.html ./SystemMigration.html ''' } @@ -169,9 +194,9 @@ stage('64-bit-running-mode-check') { steps { echo '====== 64位运行模式 ======' sh ''' - /usr/bin/rm -rf ./*.html + /usr/bin/rm -rf ./mode_check*.html devkit advisor mode-check -i /opt/DevKit/testcase/affinity/precheck/test005 - mv ./mode-check*.html ./64-bit-running-mode-check.html + mv ./mode_check*.html ./64-bit-running-mode-check.html ''' } post { @@ -209,7 +234,7 @@ stage('byte-alignment-check') { steps { echo '====== 字节对齐检查 ======' sh ''' - /usr/bin/rm -rf ./*.html + /usr/bin/rm -rf ./byte-align*.html devkit advisor byte-align -i /opt/DevKit/wtdbg2-2.5 -c make -b make mv ./byte-align*.html ./byte-alignment-check.html ''' @@ -254,7 +279,7 @@ stage('memory-consistency-check') { steps { echo '====== 内存一致性检查 ======' sh ''' - /usr/bin/rm -rf ./*.html + /usr/bin/rm -rf ./mem-cons*.html devkit advisor mem-cons -i /opt/DevKit/testcase/affinity/weak_cons/test-mulbc_sort -f /opt/DevKit/testcase/affinity/weak_cons/bc_file mv ./mem-cons*.html ./memory-consistency-check.html ''' @@ -294,9 +319,9 @@ stage('memory-consistency-check') { stage('vectorized-check') { steps { - echo '====== 内存一致性检查 ======' + echo '====== 向量化检查 ======' sh ''' - /usr/bin/rm -rf ./*.html + /usr/bin/rm -rf ./vec-check*.html devkit advisor vec-check -i /opt/DevKit/testcase/affinity/vec/simple -f /opt/DevKit/testcase/affinity/vec/BCfiles -c make mv ./vec-check*.html ./vectorized-check.html ''' diff --git "a/document/\346\211\271\351\207\217\351\203\250\347\275\262\345\267\245\345\205\267/image/\346\211\271\351\207\217\351\203\250\347\275\262\345\267\245\345\205\267devkitpipeline/image-\346\226\207\344\273\266\345\210\227\350\241\250.png" "b/document/\346\211\271\351\207\217\351\203\250\347\275\262\345\267\245\345\205\267/image/\346\211\271\351\207\217\351\203\250\347\275\262\345\267\245\345\205\267devkitpipeline/image-\346\226\207\344\273\266\345\210\227\350\241\250.png" index 36d600b3635d38169451fa2f72a0635ebf2a9d37..8208ce65105de900709e0af0da6025d4e0e22b3f 100644 GIT binary patch literal 6214 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 JFV%C2_&?oHtB?Qy literal 15815 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 AX8-^I literal 0 HcmV?d00001 diff --git "a/document/\346\211\271\351\207\217\351\203\250\347\275\262\345\267\245\345\205\267/image/\346\211\271\351\207\217\351\203\250\347\275\262\345\267\245\345\205\267devkitpipeline/\344\270\200\351\224\256\351\203\250\347\275\262\345\221\275\344\273\244\350\241\214\345\217\202\346\225\260\350\257\264\346\230\216.PNG" "b/document/\346\211\271\351\207\217\351\203\250\347\275\262\345\267\245\345\205\267/image/\346\211\271\351\207\217\351\203\250\347\275\262\345\267\245\345\205\267devkitpipeline/\344\270\200\351\224\256\351\203\250\347\275\262\345\221\275\344\273\244\350\241\214\345\217\202\346\225\260\350\257\264\346\230\216.PNG" new file mode 100644 index 0000000000000000000000000000000000000000..3c5b752f45d35189b3a25131fb67bd2ddf8890aa GIT binary patch literal 15249 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 literal 0 HcmV?d00001 diff --git "a/document/\346\211\271\351\207\217\351\203\250\347\275\262\345\267\245\345\205\267/\346\211\271\351\207\217\351\203\250\347\275\262\345\267\245\345\205\267devkitpipeline.md" "b/document/\346\211\271\351\207\217\351\203\250\347\275\262\345\267\245\345\205\267/\346\211\271\351\207\217\351\203\250\347\275\262\345\267\245\345\205\267devkitpipeline.md" index 3efdaa7..84b4058 100644 --- "a/document/\346\211\271\351\207\217\351\203\250\347\275\262\345\267\245\345\205\267/\346\211\271\351\207\217\351\203\250\347\275\262\345\267\245\345\205\267devkitpipeline.md" +++ "b/document/\346\211\271\351\207\217\351\203\250\347\275\262\345\267\245\345\205\267/\346\211\271\351\207\217\351\203\250\347\275\262\345\267\245\345\205\267devkitpipeline.md" @@ -25,11 +25,13 @@ builder: - 192.168.0.1 executor: - 192.168.0.1 +devkit: + - 192.168.0.4 ``` 其中,**`user`** 需填写本结点至其他结点配置免密的用户名,**`pkey`** 为配置免密所用公钥对应的私钥路径。 -**`scanner`**,**`builder`**,**`executor`** 分别对应用户的扫描机,构建机,执行机,需以yaml列表的形式输入各角色机器对应的ip。 +**`scanner`**,**`builder`**,**`executor`**,**`devkit`** 分别对应用户的扫描机,构建机,执行机,devkit部署机器 ,需以yaml列表的形式输入各角色机器对应的ip。 - 生成公私钥对的命令为: @@ -65,13 +67,14 @@ executor: ./devkitpipeline -h ``` -![image-批量部署工具使用提示](image/批量部署工具devkitpipeline/image-批量部署工具使用提示.png) +![](批量部署工具devkitpipeline.assets/一键部署命令行参数说明-17107556065365.PNG) -除 **`-h`** 使用提示参数外,**`devkitpipeline`** 批量部署工具还提供 **`-f`**, **`--debug`** 两个参数。 +除 **`-h`** 使用提示参数外,**`devkitpipeline`** 批量部署工具还提供 **`-f`**,**`-iso`** ,**`--debug`** 三个参数。 - 使用`-f`参数,指定所需yaml配置文件为后续输入的路径。若不使用`-f`参数,批量部署工具会从当前路径下读取名为`machine.yaml`的文件作为yaml配置文件。 `-f`参数别名为`--config`。 +- 使用 `-iso` 参数,指定要安装镜像源文件,仅部署在executor和devkit机器上。 - 使用 `--debug`参数,可以打开批量部署工具的debug日志信息,方便根据命令行日志输出确认哪个环节出现了问题。 注:本批量部署工具将标准输出作为日志输出地址,没有生成单独的日志文件。 @@ -84,6 +87,10 @@ executor: ./devkitpipeline -f ./machine.yaml --debug ``` +``` +./devkitpipeline -f ./machine.yaml -iso /path/to/iso --debug +``` + #### 批量部署工具目前支持批量部署 GCCforOpenEuler,BiShengCompiler,BiShengJDK8,BiShengJDK17。 @@ -108,10 +115,26 @@ BiShengJDK8 和 BiShengJDK17 均使用 `update-alternatives` 工具进行配置 该工具在release包v0.1版本,tools/linux文件夹下,在Linux机器上使用,用于下载组件包。 -在有网络环境的linux服务器上,一键下载工具所在路径,执行如下命令,即可在linux机器当前路径下下载组件包。 +在有网络环境的linux服务器上,一键下载工具所在路径,执行如下命令,可以查看该工具的使用提示。 + +```shell +./download -h +``` + +![](批量部署工具devkitpipeline.assets/一键下载命令行参数说明.PNG) + +除 **`-h`** 使用提示参数外,**`download`** 批量下载工具还提供 **`-iso`** 参数。 + +- 使用 -iso 参数,指定下载iso版本,输入'auto'将自动检测操作系统版本,并自动下载对应的版本iso文件。 + +##### 使用批量部署工具常用的命令为: ```shell -./download +./download +``` + +```shell +./download -iso auto ``` @@ -128,6 +151,16 @@ BiShengJDK8 和 BiShengJDK17 均使用 `update-alternatives` 工具进行配置 +##### 使用批量部署工具常用的命令为: + +```shell +./download +``` + +```shell +./download -iso openEuler_2203_LTS +``` + ## 部署结果 -- Gitee