-
Notifications
You must be signed in to change notification settings - Fork 21
119 lines (97 loc) · 3.51 KB
/
e2e-ios.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
name: e2e-ios
on:
workflow_dispatch:
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
E2E_TESTS: 1 # build without transform-remove-console babel plugin
DEBUG: 'lnurl* lnurl server'
MACMINI: 1 # use iPhone 15 in .detoxrc
jobs:
e2e:
runs-on: self-hosted
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Reset testing enviroment
continue-on-error: true
timeout-minutes: 10
run: |
pkill -f react-native || echo 0
pkill -f Simulator || echo 0
rm -rf /tmp/lock/*
watchman watch-del-all
cd docker && docker compose down -v -t 300
- name: Docker info
run: |
docker --version
docker volume ls
docker ps
- name: Run regtest setup
run: |
cd docker
mkdir lnd && chmod 777 lnd
docker compose pull --quiet
docker compose up --force-recreate -d
- name: Wait for electrum server
timeout-minutes: 10
run: while ! nc -z '127.0.0.1' 60001; do sleep 1; done
- name: Activate enviroment variables
run: cp .env.test.template .env
- name: Configure npm authentication
run: |
echo "" >> .yarnrc.yml
echo "npmScopes:" >> .yarnrc.yml
echo " synonymdev:" >> .yarnrc.yml
echo ' npmAuthToken: "${{ secrets.NPMJS_READ_RN_PUBKY }}"' >> .yarnrc.yml
- name: Yarn Install
run: yarn || yarn
env:
HUSKY: 0
- name: Pod Install
run: pod install --project-directory=ios --repo-update || pod install --project-directory=ios
- name: Build
run: yarn e2e:build:ios-release || yarn e2e:build:ios-release
- name: Test attempt 1
continue-on-error: true
id: test1
run: yarn e2e:test:ios-release --record-videos all --take-screenshots all --record-logs all --cleanup
- name: Test attempt 2
continue-on-error: true
id: test2
if: steps.test1.outcome != 'success'
run: yarn e2e:test:ios-release --record-videos all --take-screenshots all --record-logs all --cleanup
- name: Test attempt 3
continue-on-error: true
id: test3
if: steps.test1.outcome != 'success' && steps.test2.outcome != 'success'
run: yarn e2e:test:ios-release --record-videos all --take-screenshots all --record-logs all --cleanup
- name: Restart docker before last attempt
if: steps.test1.outcome != 'success' && steps.test2.outcome != 'success' && steps.test3.outcome != 'success'
run: |
cd docker
docker compose down -t 60
rm -rf lnd
docker compose up --force-recreate --quiet-pull -d
while ! nc -z '127.0.0.1' 60001; do sleep 1; done
- name: Test attempt 4
id: test4
if: steps.test1.outcome != 'success' && steps.test2.outcome != 'success' && steps.test3.outcome != 'success'
run: yarn e2e:test:ios-release --record-videos all --take-screenshots all --record-logs all --cleanup
- uses: actions/upload-artifact@v4
if: failure()
# if: ${{ always() }}
with:
name: e2e-test-videos
path: ./artifacts/
- name: Dump docker logs on failure
if: failure()
uses: jwalton/gh-docker-logs@v2
- name: Clean docker
if: ${{ always() }}
run: |
cd docker && docker compose down -v -t 300