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'