Hi,
I am trying to setup a CI build pipeline for react native app using expo and turtle-cli to build the app apk on a azure pipeline.
In the below pipeline config I am providing what I think is the correct command flags and setting the required environment variables. Every time I run this pipeline the build errors and says that I have not provided all the credentials required. The error message is not clear about which credential is missing.
Is anyone able to see where I may have this misconfigured or any reason why the turtle process is not picking up the set envars
trigger:
- master
pool:
vmImage: 'ubuntu-18.04'
variables:
buildConfiguration: 'Release'
stages:
- stage: Build
jobs:
- job: Mobile
steps:
- task: NodeTool@0
inputs:
versionSpec: '14.x'
displayName: 'Install Node.js'
- task: DownloadSecureFile@1
inputs:
secureFile: 'amey-inspection-app.jks'
displayName: 'Install requirements'
- script: sudo npm install -g expo-cli --unsafe-perm
workingDirectory: mobile
displayName: 'Install Expo-cli'
- script: sudo npm install -g turtle-cli --unsafe-perm
workingDirectory: mobile
displayName: 'Install Turtle-cli'
- script: sudo npm install
workingDirectory: mobile
- script: npm ci && npx jest --ci --updateSnapshot
workingDirectory: mobile
displayName: 'Run tests'
- script: npx expo login -u $(EXPO_USERNAME_SECRET) -p $(EXPO_PASSWORD_SECRET)
workingDirectory: mobile
displayName: 'Expo login'
- script: npx expo publish --non-interactive --release-channel azure-pipelines
workingDirectory: mobile
displayName: 'Publish build'
- script: |
sudo turtle setup:android
displayName: 'Turtle setup'
workingDirectory: mobile
- script: |
sudo turtle build:android \
-u $(EXPO_USERNAME_SECRET) \
-p $(EXPO_PASSWORD_SECRET) \
--keystore-path ../amey-inspection-app.jks \
--keystore-alias $(ANDROID_KEYSTORE_KEY_ALIAS_SECRET) \
-t apk \
--release-channel azure-pipelines
displayName: 'Turtle build'
workingDirectory: mobile
env:
EXPO_ANDROID_KEYSTORE_PASSWORD: $(ANDROID_KEYSTORE_PASSWORD_SECRET)
EXPO_ANDROID_KEY_PASSWORD: $(ANDROID_KEYSTORE_KEY_PASSWORD_SECRET)
EXPO_USERNAME: $(EXPO_USERNAME_SECRET)
EXPO_PASSWORD: $(EXPO_PASSWORD_SECRET)
EXPO_ANDROID_KEYSTORE_ALIAS: $(ANDROID_KEYSTORE_KEY_ALIAS_SECRET)