Azure Pipelines で Expo にデプロイ
Expo公式サイトの Setting up Continuous Integration に Azure Pipelines の設定なかったので記載。
やってることは同じですし、他とちょっとタスク名が違う程度です。
- Jestでテスト
- Expoのユーザー名とパスワードを Key Vault から取得
- expo-cli で login と publish
Deploy to Expo
trigger: - master pool: vmImage: 'ubuntu-latest' variables: npm_config_cache: $(Pipeline.Workspace)/.npm steps: - task: NodeTool@0 inputs: versionSpec: '12.x' displayName: 'Install Node.js' - task: Cache@2 inputs: key: 'npm | "$(Agent.OS)" | package-lock.json' restoreKeys: | npm | "$(Agent.OS)" path: $(npm_config_cache) displayName: Cache npm - script: | npm ci npm install expo npm test displayName: 'npm test' - task: AzureKeyVault@1 inputs: azureSubscription: '[SERVICE CONNECTION]' KeyVaultName: '[KeyVault]' SecretsFilter: '*' RunAsPreJob: false - script: | npx expo-cli login -u $(expo-username) -p $(expo-password) npx expo-cli publish --non-interactive displayName: 'expo publish'
OTAではなくビルドの場合は、「publish」を「build」に変更。iOSの場合は以下のような感じです。
npx expo-cli build:ios --no-wait --non-interactive --release-channel staging
Key Vault の設定については以下に詳しく記載されています。
Key VaultではなくVariables を使う場合は以下をご覧ください。