Last active
December 3, 2024 23:05
-
-
Save mrk-han/3d746054eb721a9973817ec7a21363f1 to your computer and use it in GitHub Desktop.
Simple Guide for a Build and Testing Pipeline with Expo and EAS from Azure Devops CICD (Managed Workflow)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# https://aka.ms/yaml | |
trigger: | |
branches: | |
include: | |
- main | |
- releases/* | |
- hotfix/* | |
pr: | |
autoCancel: true | |
drafts: false | |
variables: | |
- group: name-of-variables-group-goes-here | |
stages: | |
- stage: build_and_test | |
displayName: Build and Test | |
pool: | |
vmImage: 'macos-latest' | |
jobs: | |
- job: build | |
displayName: Build | |
steps: | |
- checkout: self | |
clean: true | |
- task: NodeTool@0 | |
inputs: | |
versionSpec: '16.x' | |
displayName: Install Node.js | |
- bash: | | |
set -x | |
npm install -g expo-cli | |
npm install -g eas-cli | |
displayName: Install pipeline dependencies | |
- bash: | | |
set -x | |
expo login -u $(SHARED_EXPO_USERNAME) -p $(SHARED_EXPO_PASSWORD) --non-interactive | |
displayName: Login to expo cli | |
- bash: yarn install --frozen-lockfile | |
displayName: Yarn install | |
- bash: | | |
set -x | |
yarn test:ci | |
displayName: Run Unit Tests | |
- bash: | | |
eas build --platform ios --profile buildForDetoxTesting --local | |
displayName: Build .app for UI Testing on Azure MacOS Agent | |
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main')) | |
- bash: | | |
eas build --platform ios --non-interactive --no-wait | |
displayName: Run Build on EAS to have .app available on website too | |
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main')) | |
- bash: | | |
expo publish --non-interactive | |
displayName: Publish app to expo default channel | |
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main')) | |
- task: PublishTestResults@2 | |
condition: succeededOrFailed() | |
inputs: | |
testRunner: JUnit | |
testResultsFiles: '**/junit.xml' |
The EAS Build keeps returning with the question: √ Do you want to log in to your Apple account?
...
Does anyone know a work-around?
Android build is no issue.
@adrianflda and @jerone did you either of you guys find a solution to your problems?
We got this working:
stages:
- stage: Build
displayName: Build
jobs:
- job: build
displayName: EAS Build for Android and iOS
pool: Default
steps:
- checkout: self
clean: true
- task: NodeTool@0
displayName: "Install Node.js"
inputs:
versionSource: "fromFile"
versionFilePath: ".nvmrc"
- bash: npm ci --no-fund
displayName: "Install NPM dependencies"
- bash: npm install -g eas-cli
displayName: "Install EAS CLI"
# note: `platform all` here means iOS and Android, not Web.
- bash: eas build --platform all --profile preview --no-wait --non-interactive
displayName: "Build on EAS"
env:
EXPO_TOKEN: $(EXPO_TOKEN)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hi everyone
I am trying to do almost the same but deploy android and play.store, could someone help me with a very similar example including adroid deployment?
Thanks