Reputation: 340
I've got some environment variables caught up in Jenkins such as key-store-path, key-store-password etc.
I'm wondering how do I reference these in my Fastfile when building my app? is it $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
Upvotes: 1
Views: 1839
Reputation: 340
After some time i figured it out.
So let's say that we have these ENV vars in our Jenkinsfile.
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"
}
Then you need to create a .env.default file in root/fastlane and inside this file, reference the Jenkins environment vars like so:
KEYSTORE_PATH=$ANDROID_KEYSTORE_PATH
KEYSTORE_PASSWORD=$ANDROID_KEYSTORE_PASSWORD
KEYSTORE_ALIAS=$ANDROID_KEYSTORE_ALIAS
And then you can reference these in a fastfile like so
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")
Upvotes: 4