build(deps): bump the production-dependencies group across 1 directory with 3 updates #2111
Workflow file for this run
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
name: "Build and Test" | |
on: | |
push: | |
branches: | |
- '**' | |
pull_request: | |
branches: | |
- '**' | |
jobs: | |
analyse: | |
name: Analyse | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis | |
- name: Setup | |
uses: ./.github/actions/setup | |
- name: Test | |
run: yarn ci | |
- name: SonarCloud Scan | |
uses: SonarSource/sonarcloud-github-action@master | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any | |
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | |
build-android: | |
name: Build Android | |
needs: analyse | |
runs-on: ubuntu-latest | |
env: | |
TURBO_CACHE_DIR: .turbo/android | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup | |
uses: ./.github/actions/setup | |
- name: Cache turborepo for Android | |
uses: actions/cache@v4 | |
with: | |
path: ${{ env.TURBO_CACHE_DIR }} | |
key: ${{ runner.os }}-turborepo-android-${{ hashFiles('yarn.lock') }} | |
restore-keys: | | |
${{ runner.os }}-turborepo-android- | |
- name: Check turborepo cache for Android | |
run: | | |
TURBO_CACHE_STATUS=$(node -p "($(yarn turbo run build:android --cache-dir="${{ env.TURBO_CACHE_DIR }}" --dry=json)).tasks.find(t => t.task === 'build:android').cache.status") | |
if [[ $TURBO_CACHE_STATUS == "HIT" ]]; then | |
echo "turbo_cache_hit=1" >> $GITHUB_ENV | |
fi | |
- name: Setup java | |
if: env.turbo_cache_hit != 1 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' # See 'Supported distributions' for available options | |
java-version: '19' | |
- name: Cache Gradle | |
if: env.turbo_cache_hit != 1 | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.gradle/wrapper | |
~/.gradle/caches | |
key: ${{ runner.os }}-gradle-${{ hashFiles('example/android/gradle/wrapper/gradle-wrapper.properties') }} | |
restore-keys: | | |
${{ runner.os }}-gradle- | |
- name: Downloading Gradle Dependencies | |
if: env.turbo_cache_hit != 1 | |
run: | | |
cd example/android | |
chmod +x gradlew | |
./gradlew --max-workers 2 dependencies | |
- name: Build Android Release | |
env: | |
JAVA_OPTS: "-XX:MaxHeapSize=6g" | |
run: | | |
yarn turbo run build:android --cache-dir="${{ env.TURBO_CACHE_DIR }}" | |
yarn turbo run test:android:build --cache-dir="${{ env.TURBO_CACHE_DIR }}" | |
- name: Upload Test APKs | |
uses: actions/upload-artifact@v4 | |
with: | |
name: test-apk | |
path: example/android/app/build/outputs/apk | |
retention-days: 1 | |
test-android: | |
runs-on: ubuntu-latest | |
needs: build-android | |
strategy: | |
fail-fast: false | |
matrix: | |
api-level: | |
- 24 | |
- 26 | |
- 29 | |
steps: | |
- name: Enable KVM group perms | |
run: | | |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules | |
sudo udevadm control --reload-rules | |
sudo udevadm trigger --name-match=kvm | |
ls /dev/kvm | |
- uses: actions/checkout@v4 | |
- name: Setup | |
uses: ./.github/actions/setup | |
- name: Setup java | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' # See 'Supported distributions' for available options | |
java-version: '19' | |
- uses: actions/download-artifact@v4 | |
with: | |
name: test-apk | |
path: example/android/app/build/outputs/apk | |
- name: Display structure of downloaded files | |
run: ls -R example/android/app/build/outputs/apk | |
- uses: dniHze/maestro-test-action@v1 | |
- name: Run Tests | |
uses: reactivecircus/android-emulator-runner@v2 | |
with: | |
api-level: ${{ matrix.api-level }} | |
disable-animations: true | |
avd-name: TestingAVD | |
script: yarn example test:android:run | |
env: | |
API_LEVEL: ${{ matrix.api-level }} | |
build-ios: | |
name: Build iOS | |
needs: analyse | |
runs-on: macos-latest | |
env: | |
TURBO_CACHE_DIR: .turbo/ios | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup | |
uses: ./.github/actions/setup | |
- name: setup-cocoapods | |
uses: maxim-lobanov/setup-cocoapods@v1 | |
with: | |
podfile-path: example/ios/Podfile.lock | |
- name: Cache turborepo for iOS | |
uses: actions/cache@v4 | |
with: | |
path: ${{ env.TURBO_CACHE_DIR }} | |
key: ${{ runner.os }}-turborepo-ios-${{ hashFiles('yarn.lock') }} | |
restore-keys: | | |
${{ runner.os }}-turborepo-ios- | |
- name: Check turborepo cache for iOS | |
run: | | |
TURBO_CACHE_STATUS=$(node -p "($(yarn turbo run build:ios --cache-dir="${{ env.TURBO_CACHE_DIR }}" --dry=json)).tasks.find(t => t.task === 'build:ios').cache.status") | |
if [[ $TURBO_CACHE_STATUS == "HIT" ]]; then | |
echo "turbo_cache_hit=1" >> $GITHUB_ENV | |
fi | |
- name: Cache cocoapods | |
if: env.turbo_cache_hit != 1 | |
id: cocoapods-cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
**/ios/Pods | |
**/vendor/bundle | |
key: ${{ runner.os }}-cocoapods-${{ hashFiles('example/ios/Podfile.lock') }} | |
restore-keys: | | |
${{ runner.os }}-cocoapods- | |
- name: Install Bundle | |
if: env.turbo_cache_hit != 1 && steps.cocoapods-cache.outputs.cache-hit != 'true' | |
run: | | |
cd example | |
bundle install | |
- name: Xcode Version | |
run: | | |
xcodebuild -version | |
xcrun simctl list | |
- name: Build iOS Release | |
run: | | |
yarn turbo run build:ios --cache-dir="${{ env.TURBO_CACHE_DIR }}" | |
cd example/ios && pod repo update && pod update && cd - | |
yarn turbo run test:ios:build --cache-dir="${{ env.TURBO_CACHE_DIR }}" | |
env: | |
RCT_NEW_ARCH_ENABLED: 1 | |
USE_HERMES: 1 | |
- uses: futureware-tech/simulator-action@v4 | |
with: | |
model: 'iPhone 15' | |
- uses: dniHze/maestro-test-action@v1 | |
- name: Run Tests | |
run: yarn example test:ios:run | |
env: | |
MAESTRO_DRIVER_STARTUP_TIMEOUT: 1500000 |