0

我在 Jenkins 中有一些环境变量,例如 key-store-path、key-store-password 等。

我想知道在构建我的应用程序时如何在我的 Fastfile 中引用这些?是 $env 吗?

lane :android_beta do
   sh("tns platform add android")
   sh("tns build android --release
           --key-store-path " + $env.KEYSTORE_PATH +
           "--key-store-password " + $env.KEYSTORE_PASSWORD
           "--key-store-alias " + $env.KEYSTORE_ALIAS +
           "--key-store-alias-password " + $env.KEY_PASSWORD +
           "--aab")

  upload_to_play_store(
    package_name: "com.xxx",
    track: "internal",
    skip_upload_apk: true,
    aab: "build/xxx.aab"
  )
end
4

1 回答 1

0

一段时间后,我想通了。

因此,假设我们的 Jenkinsfile 中有这些 ENV 变量。

pipeline {
    agent {
        label 'machine01'
    }
    environment {
        BUILD_NUMBER = "$env.BUILD_NUMBER"
        ANDROID_KEYSTORE_PATH = credentials('android-keystore')
        ANDROID_KEYSTORE_PASSWORD = credentials('capacitor-android-password')
        ANDROID_KEY_PASSWORD = credentials('capacitor-android-password')
        ANDROID_KEYSTORE_ALIAS = 'upload'
        SUPPLY_JSON_KEY = credentials('google-play-store-api-key')
        LC_ALL = "en_US.UTF-8"
        LANG = "en_US.UTF-8"
    }

然后你需要在 root/fastlane 中创建一个 .env.default 文件,在这个文件中,像这样引用 Jenkins 环境变量:

KEYSTORE_PATH=$ANDROID_KEYSTORE_PATH
KEYSTORE_PASSWORD=$ANDROID_KEYSTORE_PASSWORD
KEYSTORE_ALIAS=$ANDROID_KEYSTORE_ALIAS

然后你可以像这样在快速文件中引用这些

sh("tns", "build", "android", "--release", "--clean", "--env.production",
           "--key-store-path", ENV["KEYSTORE_PATH"],
           "--key-store-password", ENV["KEYSTORE_PASSWORD"],
           "--key-store-alias", ENV["KEYSTORE_ALIAS"],
           "--key-store-alias-password", ENV["KEYSTORE_ALIAS_PASSWORD"], "--aab")
于 2022-01-14T07:44:41.743 回答