Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@mrk-han
Last active April 10, 2024 15:13
Show Gist options
  • Star 12 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save mrk-han/3d746054eb721a9973817ec7a21363f1 to your computer and use it in GitHub Desktop.
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)
# 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'
@NasTheRobotKing
Copy link

Hello, is there a chance you might have access to a similar script allowing for a Test Container to deploy the iOS .app/.ipa and the Android .apk?

@mrk-han
Copy link
Author

mrk-han commented Mar 5, 2024

@NasTheRobotKing Where do you want to deploy it? To expo go, or app stores?

@Alex25197
Copy link

Hey, nice script there, got a question, how you can add up env variables into it? Since in my project i'm using the .env file to store variables, how you could read from there or is there any other way to access them?

@NasTheRobotKing
Copy link

NasTheRobotKing commented Apr 4, 2024 via email

@adrianflda
Copy link

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment