HarmonyOS鸿蒙Next中用ohpm-repo搭建一个私仓,流水线构建时如何在命令行自动输入生成公私钥的密码?

HarmonyOS鸿蒙Next中用ohpm-repo搭建一个私仓,流水线构建时如何在命令行自动输入生成公私钥的密码? 用ohpm-repo搭建一个私仓,流水线构建 使用命令行发布Har包时如何在命令行自动输入 生成公私钥时输入密码呢?

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-ohpm-repo-quickstart-V5

这个文档有这么一段说明:

<your_key_path>:配置公钥和私钥的名称和存放路径,仅包含名称时,以当前命令行工作路径为存储目录。

OHPM 包管理器只支持加密密钥认证,请在生成公私钥时输入密码。

只支持加密密钥认证,流水线构建 命令行不知道 怎么实现输入密码


更多关于HarmonyOS鸿蒙Next中用ohpm-repo搭建一个私仓,流水线构建时如何在命令行自动输入生成公私钥的密码?的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

建议用户换一种方式,生成一个access token。然后配置到.ohpmrc 里面,不需要输入密码

参考连接:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-ohpm-certification-V5

要自己写脚本,在检测到命令行提示需要输入密码的时候用脚本输入密码。比较复杂

更多关于HarmonyOS鸿蒙Next中用ohpm-repo搭建一个私仓,流水线构建时如何在命令行自动输入生成公私钥的密码?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中使用ohpm-repo搭建私仓时,流水线构建时若需在命令行自动输入生成公私钥的密码,可以通过以下步骤实现:

  1. 生成公私钥对: 使用openssl生成公私钥对,命令如下:

    openssl genpkey -algorithm RSA -out private_key.pem
    openssl rsa -pubout -in private_key.pem -out public_key.pem
    
  2. 自动化密码输入: 使用expect脚本自动输入密码。首先安装expect

    sudo apt-get install expect
    

    然后编写expect脚本(如auto_input.exp):

    #!/usr/bin/expect
    spawn openssl genpkey -algorithm RSA -out private_key.pem -aes256
    expect "Enter PEM pass phrase:"
    send "your_password\r"
    expect "Verifying - Enter PEM pass phrase:"
    send "your_password\r"
    interact
    

    执行脚本:

    expect auto_input.exp
    
  3. 在流水线中集成: 将上述脚本集成到流水线中,确保在构建过程中自动执行。例如,在Jenkins流水线中添加以下步骤:

    pipeline {
        agent any
        stages {
            stage('Generate Keys') {
                steps {
                    script {
                        sh 'expect auto_input.exp'
                    }
                }
            }
        }
    }
    

通过以上步骤,可以在流水线构建时自动输入生成公私钥的密码。

在HarmonyOS鸿蒙Next中使用ohpm-repo搭建私仓时,可以通过expect脚本在命令行中自动输入生成公私钥的密码。首先安装expect工具,然后编写一个expect脚本,使用spawn命令启动生成密钥的命令行程序,并通过expectsend自动输入密码。例如:

#!/usr/bin/expect
spawn ohpm-repo generate-key
expect "Enter password:"
send "your_password\r"
expect eof

将上述脚本保存为auto_keygen.exp并执行即可自动完成密钥生成。

回到顶部