Prepared as a quick‑reference guide for developers, QA engineers, and release managers who need to understand, set‑up, and maintain the NTRMAN – QA‑APK workflow. 1. What Is NTRMAN – QA‑APK? | Component | Description | |-----------|-------------| | NTRMAN | A lightweight N ode‑ T ype‑ R eact MAN ager – a CLI/GUI tool that orchestrates the build, test, and packaging phases for React‑Native (or other cross‑platform) mobile projects. | | QA‑APK | A Q uality‑ A ssured APK – the signed Android package generated after a full suite of automated tests (unit, integration, UI, and performance) has passed. It is the artifact that gets promoted to beta or production tracks. | | Goal | To guarantee that every APK that leaves the pipeline meets a predefined quality gate, reducing “works on my machine” bugs and speeding up release cycles. |
on: push: branches: [ main, develop ] pull_request: 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" Prepared as a quick‑reference guide for developers, QA
# 3️⃣ Initialise NTRMAN config (creates ntrman.yml) ntrman init The generated looks like: | | Goal | To guarantee that every
# 2️⃣ Install NTRMAN (if you haven’t globally) npm i -D ntrman # or `npm i -g ntrman`
In short, is a standardised, reproducible pipeline that couples a build‑manager (NTRMAN) with a rigorous QA stage, culminating in a production‑ready Android APK. 2. Core Concepts & Architecture ┌─────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ Source │ → │ NTRMAN CLI │ → │ QA‑APK Stage │ │ (Git repo) │ │ (build, config)│ │ (test, sign) │ └─────▲───────┘ └───────▲─────────┘ └───────▲─────────┘ │ │ │ │ │ │ │ │ │ ▼ ▼ ▼ CI/CD (GitHub Docker / Node Fastlane, Actions, GitLab containers) Gradle, Jenkins) etc. | Layer | Responsibility | |-------|-----------------| | Source | Version‑controlled code, Gradle scripts, native modules. | | NTRMAN | • Parses a ntrman.yml configuration file. • Installs required Node/Java/Android SDK versions via asdf or sdkman . • Executes gradlew assembleDebug (or assembleRelease ). | | QA‑APK | • Runs unit tests ( jest , mocha ). • Executes integration tests ( react-native-testing-library ). • Launches instrumented UI tests with Espresso or Detox . • Performs static analysis ( lint , detekt ). • Generates code coverage and performance metrics . • Signs the APK with the appropriate keystore once all gates pass. | | CI/CD | Orchestrates NTRMAN commands, caches artifacts, and publishes the final APK to Firebase App Distribution , Google Play internal test , or a private artifact repo. | 3. Getting Started 3.1 Prerequisites | Tool | Minimum Version | Installation Tip | |------|-----------------|------------------| | Node.js | 18.x LTS | asdf install nodejs 18.20.0 && asdf global nodejs 18.20.0 | | Java | OpenJDK 11 | sdk install java 11.0.22-open | | Android SDK | Platform‑tools 34+ | sdkmanager "platform-tools" "platforms;android-34" | | Docker | 24.x (optional) | Useful for reproducible builds in CI. | | Git | 2.40+ | Standard. | | NTRMAN | npm i -g ntrman | Installs the CLI globally. | | Fastlane (optional for signing) | 2.221+ | gem install fastlane (or use bundled Fastlane in the Docker image). | 3.2 Project Bootstrap # 1️⃣ Clone the repo git clone https://github.com/your-org/awesome-app.git cd awesome-app
| 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 )
Sie müssen den Inhalt von reCAPTCHA laden, um das Formular abzuschicken. Bitte beachten Sie, dass dabei Daten mit Drittanbietern ausgetauscht werden.
Mehr InformationenSie sehen gerade einen Platzhalterinhalt von Turnstile. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr InformationenSie sehen gerade einen Platzhalterinhalt von Facebook. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr InformationenSie sehen gerade einen Platzhalterinhalt von Instagram. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr InformationenSie sehen gerade einen Platzhalterinhalt von X. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr Informationen