【问题标题】:BrowserStack Jenkins Pipeline AppUploader "File not found at" ErrorBrowserStack Jenkins Pipeline AppUploader“找不到文件”错误
【发布时间】:2019-05-19 02:30:16
【问题描述】:

我正在尝试使用 Jenkins 为管道设置一个基本的 BrowserStack 示例应用程序。

阅读 Jenkins 的 BrowserStack 插件的文档后,我想到了以下步骤:

// ...
stages {
    stage('assemble') {
        // Here the App gets assembled
    }

    stage('upload-to-browserstack'){
        steps{

            browserstack(credentialsId: '<credentials>'){
              sh 'test -e app/build/outputs/apk/flavorProduction/debug/browserstack-sample-debug.apk && echo exists || echo does not exist'

              browserstackAppUploader('app/build/outputs/apk/flavorProduction/debug/browserstack-sample-debug.apk'){

              }
            }
        }
    }
}
// ...

这会导致以下错误消息:

[BrowserStack] Starting upload process.
[BrowserStack] Uploading app app/build/outputs/apk/flavorProduction/debug/browserstack-sample-debug.apk to Browserstack.
[BrowserStack] [ERROR] File not found at app/build/outputs/apk/flavorProduction/debug/browserstack-sample-debug.apk
[BrowserStack] ERROR : App Id empty. ABORTING!!!

我可以看到,该文件存在于我的 Jenkins 实例上。如何将 APK 上传到 BrowserStack 服务器,还是我使用了错误的语法?

【问题讨论】:

    标签: android jenkins-plugins jenkins-pipeline browserstack


    【解决方案1】:

    您可以在 Jenkins 构建步骤中使用这两个脚本中的任何一个来上传应用并使用响应中的哈希 ID。

    result="$(curl -u ":" -X POST "https://api-cloud.browserstack.com/app-automate/upload" -F "file=@/Users/Downloads/BStackSampleApp_1.ipa" | jq -r '.app_url')"

    result="$(curl -u ":" -X POST "https://api-cloud.browserstack.com/app-automate/upload" -F "file=@/Users/Downloads/BStackSampleApp_1.ipa" | jq '.app_url' | tr -d \") "

    然后您可以将结果的值导出为 Jenkins 配置的环境变量。

    【讨论】:

    • 这是为了使用 BrowserStack 的 REST API。我想使用 BrowserStack 的 Jenkins Plugin,所以我不必在 Jenkinsfile 中暴露 Access Key。或者我可以在 browserstack(){} 块中使用它而不对凭据进行硬编码吗?
    猜你喜欢
    • 2020-02-17
    • 1970-01-01
    • 1970-01-01
    • 2019-10-12
    • 2019-05-21
    • 1970-01-01
    • 2018-02-10
    • 2019-06-20
    • 1970-01-01
    相关资源
    最近更新 更多