Ntrman - - Qa-apk
- name: Install Java & Android SDK run: | apk add --no-cache openjdk11 git bash wget -qO- https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip | \ bsdtar -xvf- -C $HOME/android-sdk --strip-components=1 yes | $HOME/android-sdk/cmdline-tools/bin/sdkmanager "platform-tools" "platforms;android-34" "build-tools;34.0.0"
on: push: branches: [ main, develop ] pull_request:
- name: Install NTRMAN run: npm i -g ntrman NTRMAN - QA-APK
# ntrman.yml – top‑level configuration android: sdkVersion: "34" buildTools: "34.0.0" gradleWrapper: "./android/gradlew" keystore: path: "./keystores/release.jks" alias: "release-key" storePasswordEnv: "KEYSTORE_PASS" keyPasswordEnv: "KEY_ALIAS_PASS"
- name: Cache Gradle & npm uses: actions/cache@v4 with: path: | ~/.gradle ~/.npm key: $ runner.os -gradle-npm-$ hashFiles('**/package-lock.json', '**/gradle/**/*.gradle*') - name: Install Java & Android SDK run:
jobs: build-and-test: runs-on: ubuntu-latest container: image: node:18-alpine steps: - uses: actions/checkout@v4
# 2️⃣ Install NTRMAN (if you haven’t globally) npm i -D ntrman # or `npm i -g ntrman` 34.0.0" on: push: branches: [ main
| Step | Tool | Command | |------|------|---------| | Keystore generation | keytool | keytool -genkeypair -v -keystore release.jks -alias release-key -keyalg RSA -keysize 2048 -validity 10000 | | Fastlane lane (sign & upload) | fastlane | ```ruby\nlane :qa_apk do\n gradle(task: "assembleRelease")\n sign_apk(\n keystore_path: "keystores/release.jks",\n keystore_password: ENV['KEYSTORE_PASS'],\n alias: "release-key",\n key_password: ENV['KEY_ALIAS_PASS']\n )
qa: unit: runner: "jest" config: "./jest.config.js" integration: runner: "detox" config: "./e2e/config.json" ui: runner: "espresso" apk: "app-debug.apk" coverage: threshold: statements: 80 branches: 70 functions: 85 lines: 85
# 3️⃣ Initialise NTRMAN config (creates ntrman.yml) ntrman init The generated looks like: