Skip to content

Commit b285f0c

Browse files
fix: CI uses wrong NDK version + lint not installed
1. install-ndk: check for the specific NDK version (28.0.13004108), not just any NDK. CI had NDK 27.3 pre-installed which lacks EGL 1.5 PFNEGL* function pointer typedefs. 2. CI: set ANDROID_NDK_HOME after install so Makefile uses r28. 3. lint: auto-install golangci-lint if not found (CI doesn't have it pre-installed when not using golangci-lint-action).
1 parent 127ca96 commit b285f0c

2 files changed

Lines changed: 15 additions & 7 deletions

File tree

.github/workflows/ci.yml

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,9 @@ jobs:
4242
go-version: "1.24"
4343

4444
- name: Install Android NDK
45-
run: make install-ndk
45+
run: |
46+
make install-ndk
47+
echo "ANDROID_NDK_HOME=$ANDROID_HOME/ndk/28.0.13004108" >> "$GITHUB_ENV"
4648
4749
- name: Cross-compile examples and ndkcli
4850
run: make check-examples
@@ -65,7 +67,9 @@ jobs:
6567
sudo udevadm trigger --name-match=kvm
6668
6769
- name: Install Android NDK
68-
run: make install-ndk
70+
run: |
71+
make install-ndk
72+
echo "ANDROID_NDK_HOME=$ANDROID_HOME/ndk/28.0.13004108" >> "$GITHUB_ENV"
6973
7074
- name: Run examples on emulator
7175
uses: reactivecircus/android-emulator-runner@v2
@@ -88,7 +92,9 @@ jobs:
8892
go-version: "1.24"
8993

9094
- name: Install Android NDK
91-
run: make install-ndk
95+
run: |
96+
make install-ndk
97+
echo "ANDROID_NDK_HOME=$ANDROID_HOME/ndk/28.0.13004108" >> "$GITHUB_ENV"
9298
9399
- name: Build release binaries
94100
run: make ndkcli-release

Makefile

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ check-no-capi:
105105
@echo "OK: no capi imports in cmd/ or examples/"
106106

107107
lint:
108+
@which golangci-lint >/dev/null 2>&1 || { echo "Installing golangci-lint..."; go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@latest; }
108109
golangci-lint run ./tools/...
109110

110111
# Cross-compile all examples and ndkcli for Android arm64 to catch compile errors (requires NDK)
@@ -134,18 +135,19 @@ e2e-examples-test:
134135
e2e-audio:
135136
./tests/e2e/run-audio-e2e.sh
136137

137-
# Install Android NDK (for CI; no-op if already present)
138+
# Install Android NDK r28 (for CI; no-op if the correct version is present)
138139
ANDROID_NDK_VERSION ?= r28
139140
ANDROID_NDK_DIR_NAME ?= 28.0.13004108
141+
NDK_INSTALL_PATH := $(ANDROID_HOME)/ndk/$(ANDROID_NDK_DIR_NAME)
140142
install-ndk:
141-
@if [ -d "$(NDK_PATH)" ]; then echo "NDK already at $(NDK_PATH)"; exit 0; fi; \
143+
@if [ -d "$(NDK_INSTALL_PATH)" ]; then echo "NDK $(ANDROID_NDK_VERSION) already at $(NDK_INSTALL_PATH)"; exit 0; fi; \
142144
echo "Installing Android NDK $(ANDROID_NDK_VERSION)..."; \
143145
wget -q "https://dl.google.com/android/repository/android-ndk-$(ANDROID_NDK_VERSION)-linux.zip" -O /tmp/ndk.zip; \
144146
unzip -q /tmp/ndk.zip -d /tmp/ndk-extract/; \
145147
mkdir -p "$(ANDROID_HOME)/ndk"; \
146-
mv /tmp/ndk-extract/android-ndk-* "$(ANDROID_HOME)/ndk/$(ANDROID_NDK_DIR_NAME)"; \
148+
mv /tmp/ndk-extract/android-ndk-* "$(NDK_INSTALL_PATH)"; \
147149
rm -f /tmp/ndk.zip; \
148-
echo "NDK installed to $(ANDROID_HOME)/ndk/$(ANDROID_NDK_DIR_NAME)"
150+
echo "NDK installed to $(NDK_INSTALL_PATH)"
149151

150152
# Build ndkcli for Android arm64 (requires NDK)
151153
ndkcli:

0 commit comments

Comments
 (0)