Skip to content

Commit b74d17e

Browse files
committed
ci: enable native tests
1 parent cdec38a commit b74d17e

1 file changed

Lines changed: 70 additions & 0 deletions

File tree

.github/workflows/build.yml

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,18 @@ env:
44
NX_BRANCH: ${{ github.event.number || github.ref_name }}
55
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
66

7+
# --- Customize the test environment here ---
8+
NODE_VERSION: lts/*
9+
TEST_PROJECT: nativescript-demo-ng
10+
# iOS (runner label is set on the job's `runs-on`, it can't read env)
11+
XCODE_VERSION: "^16.0"
12+
# Android
13+
JAVA_VERSION: "21"
14+
ANDROID_API: "34"
15+
ANDROID_ABI: x86_64
16+
ANDROID_TARGET: google_apis
17+
EMULATOR_NAME: ns-emu
18+
719
on:
820
push:
921
branches: ["main"]
@@ -29,3 +41,61 @@ jobs:
2941
run: npm install --force
3042
- name: Build.all affected
3143
run: npx nx affected --target=build,test --exclude nativescript-demo-ng
44+
45+
test-ios:
46+
name: Test (iOS)
47+
runs-on: macos-15
48+
steps:
49+
- name: Setup Xcode
50+
uses: maxim-lobanov/setup-xcode@v1
51+
with:
52+
xcode-version: ${{ env.XCODE_VERSION }}
53+
- name: Checkout
54+
uses: actions/checkout@v6
55+
with:
56+
fetch-depth: 0
57+
- uses: actions/setup-node@v6
58+
with:
59+
node-version: ${{ env.NODE_VERSION }}
60+
cache: npm
61+
- uses: nrwl/nx-set-shas@v5
62+
- name: npm install
63+
run: npm install --force
64+
- name: Test on iOS Simulator
65+
run: npx nx test ${{ env.TEST_PROJECT }} ios --flags="--justlaunch"
66+
67+
test-android:
68+
name: Test (Android)
69+
runs-on: ubuntu-latest
70+
steps:
71+
- name: Checkout
72+
uses: actions/checkout@v6
73+
with:
74+
fetch-depth: 0
75+
- uses: actions/setup-node@v6
76+
with:
77+
node-version: ${{ env.NODE_VERSION }}
78+
cache: npm
79+
- uses: actions/setup-java@v5
80+
with:
81+
distribution: temurin
82+
java-version: ${{ env.JAVA_VERSION }}
83+
cache: gradle
84+
- name: Setup Android SDK
85+
uses: android-actions/setup-android@v4
86+
- uses: nrwl/nx-set-shas@v5
87+
- name: npm install
88+
run: npm install --force
89+
- name: Enable KVM
90+
run: |
91+
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
92+
sudo udevadm control --reload-rules
93+
sudo udevadm trigger --name-match=kvm
94+
- name: Test on Android Emulator
95+
uses: ReactiveCircus/android-emulator-runner@v2
96+
with:
97+
api-level: ${{ env.ANDROID_API }}
98+
target: ${{ env.ANDROID_TARGET }}
99+
arch: ${{ env.ANDROID_ABI }}
100+
avd-name: ${{ env.EMULATOR_NAME }}
101+
script: npx nx test ${{ env.TEST_PROJECT }} android --flags="--justlaunch"

0 commit comments

Comments
 (0)