Enhance CI configuration for Detox testing on iOS and update workflows #5
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# .github/workflows/e2e-ios.yml | |
name: e2e-ios | |
on: push | |
jobs: | |
e2e-ios: | |
runs-on: macos-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Setup | |
uses: ./.github/actions/setup | |
- name: Install macOS dependencies | |
run: | | |
brew tap wix/brew | |
brew install applesimutils | |
env: | |
HOMEBREW_NO_AUTO_UPDATE: 1 | |
HOMEBREW_NO_INSTALL_CLEANUP: 1 | |
- name: Setup Ruby | |
uses: ruby/setup-ruby@v1 | |
with: | |
bundler-cache: true | |
ruby-version: 2.6.10 | |
- name: Example App Yarn install | |
run: | | |
cd example | |
yarn install --frozen-lockfile | |
cd .. | |
- name: Cache CocoaPods | |
id: cache-cocoapods | |
uses: actions/cache@v3 | |
with: | |
path: example/ios/Pods | |
key: ${{ runner.os }}-pods-${{ hashFiles('example/ios/Podfile.lock') }} | |
restore-keys: | | |
${{ runner.os }}-pods- | |
- name: Install CocoaPods | |
if: steps.cache-cocoapods.outputs.cache-hit != 'true' | |
run: cd example/ios ; pod install ; cd - | |
- name: Detox rebuild framework cache | |
run: cd example ; yarn detox rebuild-framework-cache ; cd - | |
- name: Cache Detox build | |
id: cache-detox-build | |
uses: actions/cache@v3 | |
with: | |
path: example/ios/build | |
key: ${{ runner.os }}-detox-build | |
restore-keys: | | |
${{ runner.os }}-detox-build | |
- name: Detox build | |
run: cd example ; yarn detox build --configuration ios.sim.release ; cd - | |
- name: Detox test | |
env: | |
ITBL_API_KEY: ${{secrets.ITERABLE_API_KEY}} | |
ITBL_ID: ${{secrets.ITBL_ID}} | |
run: cd example ; yarn detox test --configuration ios.sim.release --cleanup --headless --record-logs all ; cd - | |
- name: Upload artifacts | |
if: failure() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: detox-artifacts | |
path: example/artifacts |