Shapebuster
Shapebuster

Reputation: 340

How to reference Jenkins System Environment Variables in a Fastlane Fastfile?

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

Answers (1)

Shapebuster
Shapebuster

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

Related Questions