Skip to content

Instantly share code, notes, and snippets.

@KimmoHernborg
Forked from mrk-han/expo-azure.yml
Created February 21, 2024 10:27
Show Gist options
  • Save KimmoHernborg/41e48aa6ef097a8a358b625b0d2833f2 to your computer and use it in GitHub Desktop.
Save KimmoHernborg/41e48aa6ef097a8a358b625b0d2833f2 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'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment