fix: skip ImageReader methods with output pointer params in idiomatic… #30
This file contains hidden or 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: CI | |
| on: | |
| push: | |
| branches: [main] | |
| tags: ['v*'] | |
| pull_request: | |
| branches: [main] | |
| workflow_dispatch: | |
| permissions: | |
| contents: write | |
| env: | |
| ANDROID_NDK_VERSION: r28 | |
| ANDROID_NDK_DIR_NAME: "28.0.13004108" | |
| jobs: | |
| test: | |
| name: Unit Tests & Lint | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version: "1.24" | |
| - name: Run unit tests | |
| run: make test | |
| - name: Lint | |
| uses: golangci/golangci-lint-action@v9 | |
| with: | |
| version: latest | |
| args: --timeout=5m ./tools/... | |
| check-examples: | |
| name: Cross-compile Examples | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version: "1.24" | |
| - name: Install Android NDK | |
| run: | | |
| wget -q "https://dl.google.com/android/repository/android-ndk-${ANDROID_NDK_VERSION}-linux.zip" -O /tmp/ndk.zip | |
| unzip -q /tmp/ndk.zip -d /tmp/ndk-extract/ | |
| ls /tmp/ndk-extract/ | |
| mkdir -p "$ANDROID_HOME/ndk" | |
| mv /tmp/ndk-extract/android-ndk-* "$ANDROID_HOME/ndk/${ANDROID_NDK_DIR_NAME}" | |
| echo "ANDROID_NDK_HOME=$ANDROID_HOME/ndk/${ANDROID_NDK_DIR_NAME}" >> "$GITHUB_ENV" | |
| - name: Cross-compile examples for Android arm64 | |
| run: make check-examples | |
| e2e-examples: | |
| name: E2E Examples (Emulator) | |
| runs-on: ubuntu-latest | |
| if: github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch' | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version: "1.24" | |
| - name: Enable KVM | |
| 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: Install Android NDK | |
| run: | | |
| wget -q "https://dl.google.com/android/repository/android-ndk-${ANDROID_NDK_VERSION}-linux.zip" -O /tmp/ndk.zip | |
| unzip -q /tmp/ndk.zip -d /tmp/ndk-extract/ | |
| mkdir -p "$ANDROID_HOME/ndk" | |
| mv /tmp/ndk-extract/android-ndk-* "$ANDROID_HOME/ndk/${ANDROID_NDK_DIR_NAME}" | |
| echo "ANDROID_NDK_HOME=$ANDROID_HOME/ndk/${ANDROID_NDK_DIR_NAME}" >> "$GITHUB_ENV" | |
| - name: Run examples on emulator | |
| uses: reactivecircus/android-emulator-runner@v2 | |
| with: | |
| api-level: 35 | |
| target: google_apis | |
| arch: x86_64 | |
| script: make e2e-examples | |
| release: | |
| name: Release ndkcli | |
| runs-on: ubuntu-latest | |
| needs: [test, check-examples] | |
| if: startsWith(github.ref, 'refs/tags/v') | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version: "1.24" | |
| - name: Install Android NDK | |
| run: | | |
| wget -q "https://dl.google.com/android/repository/android-ndk-${ANDROID_NDK_VERSION}-linux.zip" -O /tmp/ndk.zip | |
| unzip -q /tmp/ndk.zip -d /tmp/ndk-extract/ | |
| mkdir -p "$ANDROID_HOME/ndk" | |
| mv /tmp/ndk-extract/android-ndk-* "$ANDROID_HOME/ndk/${ANDROID_NDK_DIR_NAME}" | |
| echo "ANDROID_NDK_HOME=$ANDROID_HOME/ndk/${ANDROID_NDK_DIR_NAME}" >> "$GITHUB_ENV" | |
| echo "NDK_CC_PREFIX=$ANDROID_HOME/ndk/${ANDROID_NDK_DIR_NAME}/toolchains/llvm/prebuilt/linux-x86_64/bin" >> "$GITHUB_ENV" | |
| - name: Build ndkcli for arm64 | |
| run: | | |
| CGO_ENABLED=1 GOOS=android GOARCH=arm64 \ | |
| CC="${NDK_CC_PREFIX}/aarch64-linux-android35-clang" \ | |
| go build -trimpath -ldflags="-s -w" \ | |
| -o ndkcli-android-arm64 ./cmd/ndkcli/ | |
| - name: Build ndkcli for x86_64 | |
| run: | | |
| CGO_ENABLED=1 GOOS=android GOARCH=amd64 \ | |
| CC="${NDK_CC_PREFIX}/x86_64-linux-android35-clang" \ | |
| go build -trimpath -ldflags="-s -w" \ | |
| -o ndkcli-android-x86_64 ./cmd/ndkcli/ | |
| - name: Create release | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| TAG_NAME: ${{ github.ref_name }} | |
| run: | | |
| gh release create "$TAG_NAME" \ | |
| --title "ndkcli $TAG_NAME" \ | |
| --generate-notes \ | |
| ndkcli-android-arm64 \ | |
| ndkcli-android-x86_64 |