From 9b291725b91ff47a59418876c98508ed06342cd8 Mon Sep 17 00:00:00 2001 From: Ivan Vershigora Date: Fri, 14 Jun 2024 13:43:57 +0100 Subject: [PATCH] fix: run e2e tests on ubuntu --- .github/workflows/e2e-android.yml | 20 ++--- .github/workflows/mocha-android.yml | 120 ++++++++++++++++------------ .github/workflows/mocha-anrdoid.sh | 2 +- 3 files changed, 76 insertions(+), 66 deletions(-) diff --git a/.github/workflows/e2e-android.yml b/.github/workflows/e2e-android.yml index ac21c7b2..769ecc57 100644 --- a/.github/workflows/e2e-android.yml +++ b/.github/workflows/e2e-android.yml @@ -55,17 +55,17 @@ jobs: # cache: 'yarn' # cache packages, but not node_modules # cache-dependency-path: 'example/yarn.lock' - - name: Cache lib node modules + - name: Use yarn caches uses: actions/cache@v4 - id: lib-npmcache with: - path: lib/node_modules - key: node-modules-${{ hashFiles('**/yarn.lock') }} + path: ~/.yarn + key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- - name: Install lib dependencies - if: steps.lib-npmcache.outputs.cache-hit != 'true' working-directory: lib - run: yarn install + run: yarn --no-audit --prefer-offline || yarn --no-audit --prefer-offline - name: Build lib working-directory: lib @@ -81,14 +81,6 @@ jobs: restore-keys: | ${{ runner.os }}-gradle- - - name: Use yarn caches - uses: actions/cache@v4 - with: - path: ~/.yarn - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- - - name: Install node_modules working-directory: example run: yarn install || yarn install && yarn rn-setup diff --git a/.github/workflows/mocha-android.yml b/.github/workflows/mocha-android.yml index d6ac5bb7..7c54d487 100644 --- a/.github/workflows/mocha-android.yml +++ b/.github/workflows/mocha-android.yml @@ -10,36 +10,80 @@ on: jobs: mocha-android: - runs-on: macos-12 + runs-on: ubuntu-latest timeout-minutes: 120 steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 1 - - name: Setup Docker Colima 1 - uses: douglascamata/setup-docker-macos-action@v1-alpha - id: docker1 - continue-on-error: true + # - name: Setup Docker Colima 1 + # uses: douglascamata/setup-docker-macos-action@v1-alpha + # id: docker1 + # continue-on-error: true + # with: + # lima: v0.18.0 + # colima: v0.5.6 + + # - name: Setup Docker Colima 2 + # if: steps.docker1.outcome != 'success' + # uses: douglascamata/setup-docker-macos-action@v1-alpha + # id: docker2 + # continue-on-error: true + # with: + # lima: v0.18.0 + # colima: v0.5.6 + + # - name: Setup Docker Default + # if: steps.docker1.outcome != 'success' && steps.docker2.outcome != 'success' + # uses: docker-practice/actions-setup-docker@1.0.12 + # timeout-minutes: 30 + + - name: Free Disk Space + uses: jlumbroso/free-disk-space@main with: - lima: v0.18.0 - colima: v0.5.6 - - - name: Setup Docker Colima 2 - if: steps.docker1.outcome != 'success' - uses: douglascamata/setup-docker-macos-action@v1-alpha - id: docker2 - continue-on-error: true + # this might remove tools that are actually needed, + # if set to "true" but frees about 6 GB + tool-cache: false + android: false + dotnet: true + haskell: true + large-packages: true + docker-images: true + swap-storage: true + + - name: yarn and gradle caches in /mnt + run: | + rm -rf ~/.yarn + rm -rf ~/.gradle + sudo mkdir -p /mnt/.yarn + sudo mkdir -p /mnt/.gradle + sudo chown -R runner /mnt/.yarn + sudo chown -R runner /mnt/.gradle + ln -s /mnt/.yarn /home/runner/ + ln -s /mnt/.gradle /home/runner/ + + - name: Create artifacts directory on /mnt + run: | + sudo mkdir -p /mnt/artifacts + sudo chown -R runner /mnt/artifacts + + - name: Node + uses: actions/setup-node@v4 with: - lima: v0.18.0 - colima: v0.5.6 + node-version: 20 + # cache: 'yarn' # cache packages, but not node_modules + # cache-dependency-path: 'example/yarn.lock' - - name: Setup Docker Default - if: steps.docker1.outcome != 'success' && steps.docker2.outcome != 'success' - uses: docker-practice/actions-setup-docker@1.0.12 - timeout-minutes: 30 + - name: Use yarn caches + uses: actions/cache@v4 + with: + path: ~/.yarn + key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- - name: Run regtest setup working-directory: example/docker @@ -53,22 +97,7 @@ jobs: timeout-minutes: 2 run: while ! nc -z '127.0.0.1' 60001; do sleep 1; done - - name: Node - uses: actions/setup-node@v3 - with: - node-version: 18 - cache: 'yarn' # cache packages, but not node_modules - cache-dependency-path: 'example/yarn.lock' - - - name: Cache lib node modules - uses: actions/cache@v3 - id: lib-npmcache - with: - path: lib/node_modules - key: node-modules-${{ hashFiles('**/yarn.lock') }} - - name: Install lib dependencies - if: steps.lib-npmcache.outputs.cache-hit != 'true' working-directory: lib run: yarn --no-audit --prefer-offline || yarn --no-audit --prefer-offline @@ -84,26 +113,15 @@ jobs: restore-keys: | ${{ runner.os }}-gradle- - # - name: Cache node modules - # uses: actions/cache@v3 - # id: cache-nm - # with: - # path: node_modules - # key: node-modules-${{ hashFiles('**/yarn.lock') }} - - name: Install node_modules working-directory: example - run: yarn install && yarn rn-setup + run: yarn install || yarn install && yarn rn-setup - name: Use specific Java version for sdkmanager to work - uses: actions/setup-java@v2 + uses: actions/setup-java@v4 with: distribution: 'temurin' - java-version: '11' - - # - name: Build - # working-directory: example - # run: npx react-native run-android --no-packager + java-version: '17' - name: run tests uses: reactivecircus/android-emulator-runner@v2 @@ -117,8 +135,8 @@ jobs: script: | ../.github/workflows/mocha-anrdoid.sh - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 if: failure() with: name: ldk-data - path: example/artifacts/ + path: /mnt/artifacts diff --git a/.github/workflows/mocha-anrdoid.sh b/.github/workflows/mocha-anrdoid.sh index 33539132..ab8161e7 100755 --- a/.github/workflows/mocha-anrdoid.sh +++ b/.github/workflows/mocha-anrdoid.sh @@ -22,7 +22,7 @@ echo $EXIT_CODE; if [ $EXIT_CODE -ne 0 ]; then adb root sleep 10 - adb pull /data/user/0/com.exmpl/files/ldk/ artifacts/ + adb pull /data/user/0/com.exmpl/files/ldk/ /mnt/artifacts/ fi exit $EXIT_CODE