bug:fix Cannot read properties of undefined #1
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: Tests | |
# https://dev.to/edvinasbartkus/running-react-native-detox-tests-for-ios-and-android-on-github-actions-2ekn | |
# https://medium.com/@reime005/the-best-ci-cd-for-react-native-with-e2e-support-4860b4aaab29 | |
env: | |
TRAVIS: 1 | |
HD_MNEMONIC: ${{ secrets.HD_MNEMONIC }} | |
HD_MNEMONIC_BIP84: ${{ secrets.HD_MNEMONIC_BIP84 }} | |
on: [pull_request] | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout project | |
uses: actions/checkout@v4 | |
- name: Specify node version | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- name: Use npm caches | |
uses: actions/cache@v4 | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-npm- | |
- name: Use node_modules caches | |
id: cache-nm | |
uses: actions/cache@v4 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-nm-${{ hashFiles('package-lock.json') }} | |
- name: Install node_modules | |
if: steps.cache-nm.outputs.cache-hit != 'true' | |
run: npm install | |
- name: Run tests | |
run: npm test || npm test || npm test || npm test | |
env: | |
BIP47_HD_MNEMONIC: ${{ secrets.BIP47_HD_MNEMONIC}} | |
HD_MNEMONIC: ${{ secrets.HD_MNEMONIC }} | |
HD_MNEMONIC_BIP49: ${{ secrets.HD_MNEMONIC_BIP49 }} | |
HD_MNEMONIC_BIP49_MANY_TX: ${{ secrets.HD_MNEMONIC_BIP49_MANY_TX }} | |
HD_MNEMONIC_BIP84: ${{ secrets.HD_MNEMONIC_BIP84 }} | |
HD_MNEMONIC_BREAD: ${{ secrets.HD_MNEMONIC_BREAD }} | |
FAULTY_ZPUB: ${{ secrets.FAULTY_ZPUB }} | |
MNEMONICS_COBO: ${{ secrets.MNEMONICS_COBO }} | |
MNEMONICS_COLDCARD: ${{ secrets.MNEMONICS_COLDCARD }} | |
RETRY: 1 | |
e2e: | |
runs-on: ubuntu-latest | |
steps: | |
- name: checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 1 | |
- name: Free Disk Space | |
uses: jlumbroso/free-disk-space@main | |
with: | |
tool-cache: true | |
android: false | |
dotnet: true | |
haskell: true | |
large-packages: true | |
docker-images: true | |
swap-storage: true | |
- name: npm and gradle caches in /mnt | |
run: | | |
rm -rf ~/.npm | |
rm -rf ~/.gradle | |
sudo mkdir -p /mnt/.npm | |
sudo mkdir -p /mnt/.gradle | |
sudo chown -R runner /mnt/.npm | |
sudo chown -R runner /mnt/.gradle | |
ln -s /mnt/.npm /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: Specify node version | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- name: Use gradle caches | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.gradle/caches | |
~/.gradle/wrapper | |
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} | |
restore-keys: | | |
${{ runner.os }}-gradle- | |
- name: Use npm caches | |
uses: actions/cache@v4 | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-npm- | |
- name: Install node_modules | |
run: npm install || npm install | |
- name: Use specific Java version for sdkmanager to work | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: '17' | |
- 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 | |
- name: Build | |
run: npm run e2e:release-build | |
- name: Run tests | |
uses: reactivecircus/android-emulator-runner@v2 | |
with: | |
api-level: 31 | |
avd-name: Pixel_API_29_AOSP | |
force-avd-creation: false | |
emulator-options: -no-window -gpu swiftshader_indirect -no-snapshot -noaudio -no-boot-anim -camera-back none -camera-front none -partition-size 2047 | |
arch: x86_64 | |
script: npm run e2e:release-test -- --record-videos all --record-logs all --take-screenshots all --headless -d 200000 -R 5 --artifacts-location /mnt/artifacts | |
- uses: actions/upload-artifact@v4 | |
if: failure() | |
with: | |
name: e2e-test-videos | |
path: /mnt/artifacts/ |