Skip to content

Commit da2e0da

Browse files
committed
chore: ci tests
1 parent ea3671f commit da2e0da

File tree

9 files changed

+1078
-108
lines changed

9 files changed

+1078
-108
lines changed

.github/workflows/android-ci.yml

Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,145 @@
1+
name: Android Build and Test
2+
on:
3+
pull_request:
4+
types: [opened, reopened ]
5+
push:
6+
workflow_dispatch:
7+
8+
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
9+
jobs:
10+
android-build-unit-test:
11+
runs-on: ubuntu-latest
12+
13+
steps:
14+
- name: Checkout the code
15+
uses: actions/checkout@v2
16+
17+
- name: Setup node 16
18+
uses: actions/setup-node@v3
19+
with:
20+
node-version: '16'
21+
22+
- name: Install dependencies
23+
run: |
24+
npm install
25+
cd example
26+
npm install
27+
- uses: actions/cache@v2
28+
name: Cache node_modules
29+
with:
30+
path: example/node_modules
31+
key: ${{ runner.os }}-nodeModules-${{ hashFiles('package-lock.json') }}-${{ hashFiles('package.json') }}
32+
restore-keys: |
33+
${{ runner.os }}-nodeModules-
34+
35+
- uses: actions/cache@v2
36+
name: Cache outter node_modules
37+
with:
38+
path: node_modules
39+
key: ${{ runner.os }}-outterNodeModules-${{ hashFiles('package-lock.json') }}-${{ hashFiles('package.json') }}
40+
restore-keys: |
41+
${{ runner.os }}-outterNodeModules-
42+
43+
- uses: actions/cache@v2
44+
name: Cache Gradle dependencies
45+
with:
46+
path: |
47+
~/.gradle/caches
48+
~/.gradle/wrapper
49+
key: ${{ runner.os }}-${{ hashFiles('**/*.gradle*') }}-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }}-${{ hashFiles('**/buildSrc/**/*.kt') }}
50+
51+
- name: Set up JDK
52+
uses: actions/setup-java@v3
53+
with:
54+
distribution: 'zulu'
55+
java-version: 11
56+
57+
- name: Run detekt
58+
run: |
59+
cd android
60+
./gradlew detektCheck
61+
62+
- name: Run unit tests
63+
run: |
64+
cd example/android
65+
./gradlew test --stacktrace
66+
67+
- name: Build APK
68+
run: |
69+
npm run prepack
70+
cd example/android
71+
./gradlew assembleRelease
72+
mv app/build/outputs/apk/release/app-release.apk app-release-${{ github.sha }}.apk
73+
ls
74+
pwd
75+
echo ${{ github.workspace }}
76+
77+
- name: Upload APK
78+
uses: actions/upload-artifact@v3
79+
with:
80+
name: app-release-${{ github.sha }}.apk
81+
path: example/android/app-release-${{ github.sha }}.apk
82+
83+
android-test:
84+
runs-on: macos-latest
85+
needs: android-build-unit-test
86+
strategy:
87+
matrix:
88+
api-level: [24, 25, 29, 30, 31]
89+
target: [default]
90+
91+
steps:
92+
- name: Checkout the code
93+
uses: actions/checkout@v2
94+
95+
- name: Setup node 16
96+
uses: actions/setup-node@v3
97+
with:
98+
node-version: '16'
99+
100+
- uses: actions/cache@v2
101+
name: Cache node_modules
102+
with:
103+
path: example/node_modules
104+
key: ${{ runner.os }}-nodeModules-${{ hashFiles('package-lock.json') }}-${{ hashFiles('package.json') }}
105+
restore-keys: |
106+
${{ runner.os }}-nodeModules-
107+
- uses: actions/cache@v2
108+
name: Cache outter node_modules
109+
with:
110+
path: node_modules
111+
key: ${{ runner.os }}-outterNodeModules-${{ hashFiles('package-lock.json') }}-${{ hashFiles('package.json') }}
112+
restore-keys: |
113+
${{ runner.os }}-outterNodeModules-
114+
115+
- uses: actions/cache@v2
116+
name: Cache Gradle dependencies
117+
with:
118+
path: |
119+
~/.gradle/caches
120+
~/.gradle/wrapper
121+
key: ${{ runner.os }}-${{ hashFiles('**/*.gradle*') }}-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }}-${{ hashFiles('**/buildSrc/**/*.kt') }}
122+
123+
- name: Set up JDK
124+
uses: actions/setup-java@v3
125+
with:
126+
distribution: 'zulu'
127+
java-version: 11
128+
129+
- name: Instrumentation Tests
130+
uses: reactivecircus/android-emulator-runner@v2
131+
with:
132+
api-level: ${{ matrix.api-level }}
133+
target: ${{ matrix.target }}
134+
arch: x86
135+
profile: Nexus 6
136+
script: |
137+
cd example/android
138+
./gradlew connectedCheck --stacktrace
139+
140+
- name: Upload Reports
141+
uses: actions/upload-artifact@v2
142+
with:
143+
name: Test-Reports
144+
path: example/android/app/build/reports
145+
if: always()

.github/workflows/build-apk.yml

Lines changed: 0 additions & 53 deletions
This file was deleted.

.github/workflows/ci.yml

Lines changed: 0 additions & 48 deletions
This file was deleted.

.github/workflows/ios-ci.yml

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
name: iOS Build and Test
2+
on:
3+
pull_request:
4+
types: [opened, reopened ]
5+
push:
6+
workflow_dispatch:
7+
8+
jobs:
9+
ios-install-dep:
10+
runs-on: macos-latest
11+
steps:
12+
- uses: actions/checkout@v2
13+
- name: Set up Ruby
14+
uses: ruby/setup-ruby@v1
15+
with:
16+
ruby-version: 2.7
17+
bundler-cache: true
18+
- name: Setup node 16
19+
uses: actions/setup-node@v3
20+
with:
21+
node-version: '16'
22+
- name: Install dependencies
23+
run: |
24+
npm install
25+
cd example
26+
npm install
27+
- uses: actions/cache@v2
28+
name: Cache node_modules
29+
with:
30+
path: example/node_modules
31+
key: ${{ runner.os }}-nodeModules-${{ hashFiles('package-lock.json') }}-${{ hashFiles('package.json') }}
32+
restore-keys: |
33+
${{ runner.os }}-nodeModules-
34+
- uses: actions/cache@v2
35+
name: Cache outter node_modules
36+
with:
37+
path: node_modules
38+
key: ${{ runner.os }}-outterNodeModules-${{ hashFiles('package-lock.json') }}-${{ hashFiles('package.json') }}
39+
restore-keys: |
40+
${{ runner.os }}-outterNodeModules-
41+
42+
ios-build-test:
43+
runs-on: macos-latest
44+
needs: ios-install-dep
45+
strategy:
46+
matrix:
47+
cocoapods: ['1.10.1', '1.11.0', '1.14.3']
48+
steps:
49+
- uses: actions/checkout@v2
50+
- name: Set up Ruby
51+
uses: ruby/setup-ruby@v1
52+
with:
53+
ruby-version: 2.7
54+
bundler-cache: true
55+
- name: Install Cocoapods
56+
run: gem install cocoapods -v ${{ matrix.cocoapods }}
57+
- name: Setup node 16
58+
uses: actions/setup-node@v3
59+
with:
60+
node-version: '16'
61+
62+
- uses: actions/cache@v2
63+
name: Cache node_modules
64+
with:
65+
path: example/node_modules
66+
key: ${{ runner.os }}-nodeModules-${{ hashFiles('package-lock.json') }}-${{ hashFiles('package.json') }}
67+
restore-keys: |
68+
${{ runner.os }}-nodeModules-
69+
- uses: actions/cache@v2
70+
name: Cache outter node_modules
71+
with:
72+
path: node_modules
73+
key: ${{ runner.os }}-outterNodeModules-${{ hashFiles('package-lock.json') }}-${{ hashFiles('package.json') }}
74+
restore-keys: |
75+
${{ runner.os }}-outterNodeModules-
76+
77+
- name: CocoaPod Install
78+
run: |
79+
cd example/ios
80+
pod install
81+
82+
- name: Cache Pods
83+
id: cache-pods
84+
uses: actions/cache@v2
85+
env:
86+
cache-name: cache-pods-${{ matrix.cocoapods }}
87+
with:
88+
path: example/ios/Pods
89+
key: ${{ runner.os }}-pods-${{ env.cache-name }}-${{ hashFiles('**/Podfile.lock') }}
90+
restore-keys: |
91+
${{ runner.os }}-pods-${{ env.cache-name }}-
92+
93+
- name: Install Pods
94+
if: steps.cache-pods.outputs.cache-hit != 'true'
95+
run: |
96+
cd example/ios
97+
pod cache clean --all
98+
pod install
99+
100+
- name: Install xcpretty
101+
run: gem install xcpretty
102+
103+
- name: Build
104+
run: |
105+
cd example/ios
106+
xcodebuild -workspace ImageMarkerExample.xcworkspace -scheme ImageMarkerExample -configuration Release -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 12' | xcpretty
107+
- name: Test
108+
run: |
109+
cd example/ios
110+
xcodebuild -workspace ImageMarkerExample.xcworkspace -scheme ImageMarkerExample -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 12' test | xcpretty

android/build.gradle

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,15 @@ buildscript {
1212
}
1313
}
1414

15+
plugins {
16+
id "io.gitlab.arturbosch.detekt" version "1.23.4"
17+
}
18+
19+
detekt {
20+
toolVersion = "1.23.4"
21+
config = files("$projectDir/detekt/config.yml")
22+
}
23+
1524
def isNewArchitectureEnabled() {
1625
return rootProject.hasProperty("newArchEnabled") && rootProject.getProperty("newArchEnabled") == "true"
1726
}

0 commit comments

Comments
 (0)