X Tutup
name: Pull Request on: pull_request: env: NPM_TAG: "pr" EMULATOR_NAME: "runtime-emu" NDK_VERSION: r27d ANDROID_API: 33 ANDROID_ABI: x86_64 NDK_ARCH: darwin permissions: contents: read jobs: build: name: Build runs-on: macos-15 outputs: npm_version: ${{ steps.npm_version_output.outputs.NPM_VERSION }} npm_tag: ${{ steps.npm_version_output.outputs.NPM_TAG }} steps: - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: fetch-depth: 0 submodules: true - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0 with: node-version: 22 registry-url: "https://registry.npmjs.org" - uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # v5.1.0 with: distribution: "temurin" java-version: "21" cache: gradle - name: Setup Android SDK uses: android-actions/setup-android@9fc6c4e9069bf8d3d10b2204b1fb8f6ef7065407 # v3.2.2 - name: Homebrew dependencies run: | brew install wget - name: Setup NDK run: | echo "y" | sdkmanager "cmake;3.6.4111459" wget -q https://dl.google.com/android/repository/android-ndk-$NDK_VERSION-$NDK_ARCH.zip chmod +x android-ndk-$NDK_VERSION-$NDK_ARCH.zip unzip -q android-ndk-$NDK_VERSION-$NDK_ARCH.zip rm -rf android-ndk-$NDK_VERSION-$NDK_ARCH.zip export ANDROID_NDK_HOME=`pwd`/android-ndk-$NDK_VERSION echo ANDROID_NDK_HOME=${ANDROID_NDK_HOME} >> $GITHUB_ENV echo ANDROID_NDK=${ANDROID_NDK_HOME} >> $GITHUB_ENV echo ${ANDROID_NDK_HOME} >> $GITHUB_PATH - name: Install Dependencies run: | npm install npm install --prefix ./test-app/tools - name: Get Current Version run: | NPM_VERSION=$(node -e "console.log(require('./package.json').version);") echo NPM_VERSION=$NPM_VERSION >> $GITHUB_ENV - name: Bump version for dev release if: ${{ !contains(github.ref, 'refs/tags/') }} run: | NPM_VERSION=$(node ./scripts/get-next-version.js) echo NPM_VERSION=$NPM_VERSION >> $GITHUB_ENV npm version $NPM_VERSION --no-git-tag-version - name: Output NPM Version and tag id: npm_version_output run: | NPM_TAG=$(node ./scripts/get-npm-tag.js) echo NPM_VERSION=$NPM_VERSION >> $GITHUB_OUTPUT echo NPM_TAG=$NPM_TAG >> $GITHUB_OUTPUT - name: Build npm package run: ./gradlew -PgitCommitVersion=${{ github.sha }} -PnoCCache --stacktrace - name: Upload npm package artifact uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 with: name: npm-package path: dist/nativescript-android-${{steps.npm_version_output.outputs.NPM_VERSION}}.tgz - name: Upload debug symbols uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 with: name: debug-symbols path: test-app/runtime/build/intermediates/merged_native_libs/release/mergeReleaseNativeLibs/out/lib/* test: name: Test runs-on: macos-15-intel steps: - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: submodules: true - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0 with: node-version: 22 registry-url: "https://registry.npmjs.org" - uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # v5.1.0 with: distribution: "temurin" java-version: "21" cache: gradle - name: Setup Android SDK uses: android-actions/setup-android@9fc6c4e9069bf8d3d10b2204b1fb8f6ef7065407 # v3.2.2 - name: Homebrew dependencies run: | brew install wget - name: Setup NDK run: | echo "y" | sdkmanager "cmake;3.6.4111459" wget -q https://dl.google.com/android/repository/android-ndk-$NDK_VERSION-$NDK_ARCH.zip chmod +x android-ndk-$NDK_VERSION-$NDK_ARCH.zip unzip -q android-ndk-$NDK_VERSION-$NDK_ARCH.zip rm -rf android-ndk-$NDK_VERSION-$NDK_ARCH.zip export ANDROID_NDK_HOME=`pwd`/android-ndk-$NDK_VERSION echo ANDROID_NDK_HOME=${ANDROID_NDK_HOME} >> $GITHUB_ENV echo ANDROID_NDK=${ANDROID_NDK_HOME} >> $GITHUB_ENV echo ${ANDROID_NDK_HOME} >> $GITHUB_PATH - name: Install Dependencies run: | npm install npm install --prefix ./test-app/tools - name: SBG tests run: ./gradlew runSbgTests --stacktrace - name: Run unit tests uses: ReactiveCircus/android-emulator-runner@b530d96654c385303d652368551fb075bc2f0b6b # v2.35.0 with: api-level: ${{env.ANDROID_API}} # this is needed on API 30+ #target: google_apis arch: ${{env.ANDROID_ABI}} script: ./gradlew runtestsAndVerifyResults --stacktrace - name: Upload Test Results if: ${{ !cancelled() }} # run this step even if previous step failed uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 with: name: android-unit-test-results path: test-app/dist/android_unit_test_results.xml
X Tutup