fluentui-react-native/.ado/azure-pipelines.yml

203 строки
6.2 KiB
YAML

pr:
- main
variables:
- template: variables/vars.yml
jobs:
# Dedicated task to build JS code, including jest tests, snapshot testing, and linting, because these things can be super
# time consuming they don't need to run on every CI pass, instead do a dedicated JS loop to make the platform specific tests start quicker
- job: JSPR
displayName: JS PR
pool:
vmImage: 'ubuntu-latest'
timeoutInMinutes: 60 # how long to run the job before automatically cancelling
cancelTimeoutInMinutes: 5 # how much time to give 'run always even if cancelled tasks' before killing them
steps:
- checkout: self
persistCredentials: true
- template: templates/setup-repo.yml
- script: |
yarn checkchange
displayName: 'check change'
- script: |
yarn prettier
displayName: 'check prettier'
- script: |
yarn buildci
displayName: 'yarn buildci [test]'
- script: |
yarn check-for-changed-files
displayName: 'verify API and Ensure Changed Files'
- job: AndroidPR
displayName: Android PR
pool:
vmImage: 'macos-latest'
variables:
platform: 'android'
timeoutInMinutes: 60 # how long to run the job before automatically cancelling
cancelTimeoutInMinutes: 5 # how much time to give 'run always even if cancelled tasks' before killing them
steps:
- checkout: self
persistCredentials: true
# setup repo basics
- template: templates/setup-repo-min-build.yml
# package android bundle
- script: |
yarn bundle:$(platform)
workingDirectory: apps/fluent-tester
displayName: 'yarn bundle $(platform)'
# sets-up specifics for android dependency like NDK & emulator
- template: templates/android-dep-setup.yml
# builds a debug apk and runs E2E tests on it
- template: templates/e2e-testing-android.yml
- job: macOSPR
displayName: macOS PR
pool:
vmImage: $(VmImageApple)
variables:
platform: 'macos'
timeoutInMinutes: 60 # how long to run the job before automatically cancelling
cancelTimeoutInMinutes: 5 # how much time to give 'run always even if cancelled tasks' before killing them
steps:
- checkout: self
persistCredentials: true
- template: templates/setup-repo-min-build.yml
- template: templates/apple-tools-setup.yml
- script: |
set -eox pipefail
yarn bundle:macos
workingDirectory: apps/fluent-tester
displayName: 'yarn bundle macos'
- bash: |
set -eox pipefail
pod install --verbose
workingDirectory: apps/fluent-tester/macos
displayName: 'pod install'
- task: CmdLine@2
displayName: Build macOS
inputs:
script: |
set -eox pipefail
./.ado/scripts/xcodebuild.sh apps/fluent-tester/macos/FluentTester.xcworkspace macosx ReactTestApp build
env:
CCACHE_DISABLE: 1
- template: templates/e2e-testing-macos.yml
- job: iOSPR
displayName: iOS PR
pool:
vmImage: $(VmImageApple)
timeoutInMinutes: 60 # how long to run the job before automatically cancelling
cancelTimeoutInMinutes: 5 # how much time to give 'run always even if cancelled tasks' before killing them
steps:
- checkout: self
persistCredentials: true
- template: templates/setup-repo-min-build.yml
- template: templates/apple-tools-setup.yml
- script: |
set -eox pipefail
yarn bundle:ios
workingDirectory: apps/fluent-tester
displayName: 'yarn bundle ios'
- bash: |
set -eox pipefail
pod install --verbose
workingDirectory: apps/fluent-tester/ios
displayName: 'pod install'
- task: CmdLine@2
displayName: Build iOS
inputs:
script: |
set -eox pipefail
./.ado/scripts/xcodebuild.sh apps/fluent-tester/ios/FluentTester.xcworkspace iphonesimulator ReactTestApp build
env:
CCACHE_DISABLE: 1
# Disable iOS E2E tests as they fail on macOS-13 images
# - template: templates/e2e-testing-ios.yml
# Windows bundling and end to end testing
- job: WindowsPR
displayName: Windows PR
pool:
name: rnw-pool-4
demands:
- ImageOverride -equals rnw-img-vs2022-node18
timeoutInMinutes: 60 # how long to run the job before automatically cancelling
cancelTimeoutInMinutes: 5 # how much time to give 'run always even if cancelled tasks' before killing them
# The "displayName" of all steps that execute a command within our repo (such as 'yarn build') start lowercase to make it
# easier to differentiate in-repo scripts from environmental setup. This makes it easier to understand CI pipeline results.
steps:
- checkout: self
persistCredentials: true
fetchDepth: 5
# yarn and minimal build to get set up
- template: templates/setup-repo-min-build.yml
# bundle windows adn do end to end tests
- template: templates/e2e-testing-uwp.yml
# Win32 bundling and end to end testing
- job: Win32PR
displayName: Win32 PR
pool:
vmImage: 'windows-2019'
timeoutInMinutes: 60
cancelTimeoutInMinutes: 5
steps:
- checkout: self
persistCredentials: true
# yarn and minimal build to get set up
- template: templates/setup-repo-min-build.yml
# bundle win32 and do end to end tests
- template: templates/e2e-testing-win32.yml
# Dedicated task to make sure link on repo are functional.
- job: TestLinks
displayName: Test repo links
pool: cxe-ubuntu-20-04-small
timeoutInMinutes: 60 # how long to run the job before automatically cancelling
cancelTimeoutInMinutes: 5 # how much time to give 'run always even if cancelled tasks' before killing them
steps:
- checkout: self
persistCredentials: true
- template: templates/setup-repo.yml
- script: |
find . -name \*.md -not -name CHANGELOG.md -not -path '*/\node_modules/*' -print0 | xargs -0 -n1 yarn test-links -c `pwd`/.ado/markdown-link-check-config.json
displayName: 'testing links'