222 lines
6.2 KiB
YAML
222 lines
6.2 KiB
YAML
|
name: iOS Detox
|
||
|
|
||
|
on: [pull_request]
|
||
|
|
||
|
jobs:
|
||
|
detox-build:
|
||
|
runs-on: macos-latest
|
||
|
timeout-minutes: 60
|
||
|
|
||
|
env:
|
||
|
DEVELOPER_DIR: /Applications/Xcode_11.5.app
|
||
|
|
||
|
steps:
|
||
|
- name: Checkout
|
||
|
uses: actions/checkout@v1
|
||
|
with:
|
||
|
fetch-depth: 1
|
||
|
|
||
|
- name: Generate Detox app cache key
|
||
|
run: echo $(git rev-parse HEAD:app) > "./app-git-revision.txt"
|
||
|
|
||
|
- name: Cache Detox app
|
||
|
uses: actions/cache@v1
|
||
|
id: detoxappcache
|
||
|
with:
|
||
|
path: ios/build/Build/Products/Release-iphonesimulator
|
||
|
key: iOSDetoxRelease-v4-${{ hashFiles('yarn.lock') }}-${{ hashFiles('ios/Podfile.lock') }}-${{ hashFiles('./app-git-revision.txt') }}
|
||
|
|
||
|
- name: Node
|
||
|
if: steps.detoxappcache.outputs.cache-hit != 'true'
|
||
|
uses: actions/setup-node@v1
|
||
|
|
||
|
- name: Cache node modules
|
||
|
if: steps.detoxappcache.outputs.cache-hit != 'true'
|
||
|
uses: actions/cache@v1
|
||
|
id: npmcache
|
||
|
with:
|
||
|
path: node_modules
|
||
|
key: node-modules-${{ hashFiles('**/yarn.lock') }}
|
||
|
|
||
|
- name: Rebuild detox
|
||
|
if: steps.detoxappcache.outputs.cache-hit != 'true' && steps.npmcache.outputs.cache-hit == 'true'
|
||
|
run: yarn detox clean-framework-cache && yarn detox build-framework-cache
|
||
|
|
||
|
- name: Install Dependencies
|
||
|
if: steps.detoxappcache.outputs.cache-hit != 'true' && steps.npmcache.outputs.cache-hit != 'true'
|
||
|
run: yarn install
|
||
|
|
||
|
- run: yarn detox build e2e --configuration ios.sim.release
|
||
|
if: steps.detoxappcache.outputs.cache-hit != 'true'
|
||
|
|
||
|
detox-test-rooms:
|
||
|
needs: detox-build
|
||
|
runs-on: macos-latest
|
||
|
timeout-minutes: 60
|
||
|
|
||
|
env:
|
||
|
DEVELOPER_DIR: /Applications/Xcode_11.5.app
|
||
|
|
||
|
steps:
|
||
|
- name: Checkout
|
||
|
uses: actions/checkout@v1
|
||
|
with:
|
||
|
fetch-depth: 1
|
||
|
|
||
|
- name: Generate Detox app cache key
|
||
|
run: echo $(git rev-parse HEAD:app) > "./app-git-revision.txt"
|
||
|
|
||
|
- name: Cache Detox app
|
||
|
uses: actions/cache@v1
|
||
|
id: detoxappcache
|
||
|
with:
|
||
|
path: ios/build/Build/Products/Release-iphonesimulator
|
||
|
key: iOSDetoxRelease-v4-${{ hashFiles('yarn.lock') }}-${{ hashFiles('ios/Podfile.lock') }}-${{ hashFiles('./app-git-revision.txt') }}
|
||
|
|
||
|
- name: Check for Detox app
|
||
|
if: steps.detoxappcache.outputs.cache-hit != 'true'
|
||
|
run: exit 1
|
||
|
|
||
|
- name: Node
|
||
|
uses: actions/setup-node@v1
|
||
|
|
||
|
- name: Cache node modules
|
||
|
uses: actions/cache@v1
|
||
|
id: npmcache
|
||
|
with:
|
||
|
path: node_modules
|
||
|
key: node-modules-${{ hashFiles('**/yarn.lock') }}
|
||
|
|
||
|
- name: Rebuild detox
|
||
|
if: steps.npmcache.outputs.cache-hit == 'true'
|
||
|
run: yarn detox clean-framework-cache && yarn detox build-framework-cache
|
||
|
|
||
|
- name: Install Dependencies
|
||
|
if: steps.npmcache.outputs.cache-hit != 'true'
|
||
|
run: yarn install
|
||
|
|
||
|
- run: brew tap wix/brew
|
||
|
- run: brew install applesimutils
|
||
|
- run: yarn detox test e2e/tests/room --configuration ios.sim.release --cleanup
|
||
|
|
||
|
- name: Upload test artifacts
|
||
|
if: ${{ failure() }}
|
||
|
uses: actions/upload-artifact@v2
|
||
|
with:
|
||
|
name: artifacts
|
||
|
path: artifacts
|
||
|
|
||
|
detox-test-assorted:
|
||
|
needs: detox-build
|
||
|
runs-on: macos-latest
|
||
|
timeout-minutes: 60
|
||
|
|
||
|
env:
|
||
|
DEVELOPER_DIR: /Applications/Xcode_11.5.app
|
||
|
|
||
|
steps:
|
||
|
- name: Checkout
|
||
|
uses: actions/checkout@v1
|
||
|
with:
|
||
|
fetch-depth: 1
|
||
|
|
||
|
- name: Generate Detox app cache key
|
||
|
run: echo $(git rev-parse HEAD:app) > "./app-git-revision.txt"
|
||
|
|
||
|
- name: Cache Detox app
|
||
|
uses: actions/cache@v1
|
||
|
id: detoxappcache
|
||
|
with:
|
||
|
path: ios/build/Build/Products/Release-iphonesimulator
|
||
|
key: iOSDetoxRelease-v4-${{ hashFiles('yarn.lock') }}-${{ hashFiles('ios/Podfile.lock') }}-${{ hashFiles('./app-git-revision.txt') }}
|
||
|
|
||
|
- name: Check for Detox app
|
||
|
if: steps.detoxappcache.outputs.cache-hit != 'true'
|
||
|
run: exit 1
|
||
|
|
||
|
- name: Node
|
||
|
uses: actions/setup-node@v1
|
||
|
|
||
|
- name: Cache node modules
|
||
|
uses: actions/cache@v1
|
||
|
id: npmcache
|
||
|
with:
|
||
|
path: node_modules
|
||
|
key: node-modules-${{ hashFiles('**/yarn.lock') }}
|
||
|
|
||
|
- name: Rebuild detox
|
||
|
if: steps.npmcache.outputs.cache-hit == 'true'
|
||
|
run: yarn detox clean-framework-cache && yarn detox build-framework-cache
|
||
|
|
||
|
- name: Install Dependencies
|
||
|
if: steps.npmcache.outputs.cache-hit != 'true'
|
||
|
run: yarn install
|
||
|
|
||
|
- run: brew tap wix/brew
|
||
|
- run: brew install applesimutils
|
||
|
- run: yarn detox test e2e/tests/assorted --configuration ios.sim.release --cleanup
|
||
|
|
||
|
- name: Upload test artifacts
|
||
|
if: ${{ failure() }}
|
||
|
uses: actions/upload-artifact@v2
|
||
|
with:
|
||
|
name: artifacts
|
||
|
path: artifacts
|
||
|
|
||
|
detox-test-onboarding:
|
||
|
needs: detox-build
|
||
|
runs-on: macos-latest
|
||
|
timeout-minutes: 60
|
||
|
|
||
|
env:
|
||
|
DEVELOPER_DIR: /Applications/Xcode_11.5.app
|
||
|
|
||
|
steps:
|
||
|
- name: Checkout
|
||
|
uses: actions/checkout@v1
|
||
|
with:
|
||
|
fetch-depth: 1
|
||
|
|
||
|
- name: Generate Detox app cache key
|
||
|
run: echo $(git rev-parse HEAD:app) > "./app-git-revision.txt"
|
||
|
|
||
|
- name: Cache Detox app
|
||
|
uses: actions/cache@v1
|
||
|
id: detoxappcache
|
||
|
with:
|
||
|
path: ios/build/Build/Products/Release-iphonesimulator
|
||
|
key: iOSDetoxRelease-v4-${{ hashFiles('yarn.lock') }}-${{ hashFiles('ios/Podfile.lock') }}-${{ hashFiles('./app-git-revision.txt') }}
|
||
|
|
||
|
- name: Check for Detox app
|
||
|
if: steps.detoxappcache.outputs.cache-hit != 'true'
|
||
|
run: exit 1
|
||
|
|
||
|
- name: Node
|
||
|
uses: actions/setup-node@v1
|
||
|
|
||
|
- name: Cache node modules
|
||
|
uses: actions/cache@v1
|
||
|
id: npmcache
|
||
|
with:
|
||
|
path: node_modules
|
||
|
key: node-modules-${{ hashFiles('**/yarn.lock') }}
|
||
|
|
||
|
- name: Rebuild detox
|
||
|
if: steps.npmcache.outputs.cache-hit == 'true'
|
||
|
run: yarn detox clean-framework-cache && yarn detox build-framework-cache
|
||
|
|
||
|
- name: Install Dependencies
|
||
|
if: steps.npmcache.outputs.cache-hit != 'true'
|
||
|
run: yarn install
|
||
|
|
||
|
- run: brew tap wix/brew
|
||
|
- run: brew install applesimutils
|
||
|
- run: yarn detox test e2e/tests/onboarding --configuration ios.sim.release --cleanup
|
||
|
|
||
|
- name: Upload test artifacts
|
||
|
if: ${{ failure() }}
|
||
|
uses: actions/upload-artifact@v2
|
||
|
with:
|
||
|
name: artifacts
|
||
|
path: artifacts
|