Skip to content

Pass exact argv to Linux apksigner #32

Pass exact argv to Linux apksigner

Pass exact argv to Linux apksigner #32

Workflow file for this run

name: Continuous integration
on:
pull_request:
push:
branches: [main, agent/minimum-foundation]
workflow_dispatch:
permissions:
contents: read
concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
android:
name: Android tests, debug APK and release lint
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Checkout with Humla
uses: actions/checkout@v4
with:
submodules: recursive
- name: Set up Java 21
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "21"
cache: gradle
- name: Set up Android SDK
uses: android-actions/setup-android@v3
- name: Install pinned NDK
run: sdkmanager "platforms;android-36" "build-tools;36.0.0" "ndk;25.1.8937393"
- name: Build patched Spongy Castle jars
working-directory: libraries/humla/libs/humla-spongycastle
run: |
chmod +x ../../gradlew
../../gradlew jar --no-daemon
- name: Test and assemble FOSS debug and unsigned release
run: |
chmod +x gradlew
./gradlew :app:testFossDebugUnitTest :app:assembleFossDebug :app:assembleFossRelease --no-daemon --stacktrace
- name: Test updater with real Linux apksigner and debug APK
shell: pwsh
run: |
$apk = (Resolve-Path 'app/build/outputs/apk/foss/debug/mumla-foss-debug.apk').Path
$badging = & "$env:ANDROID_HOME/build-tools/36.0.0/aapt" dump badging $apk
$package = [regex]::Match(($badging -join "`n"), "package: name='([^']+)' versionCode='([0-9]+)' versionName='([^']+)'" )
if (-not $package.Success) { throw 'Could not parse debug APK identity.' }
$env:MINIMUM_TEST_SIGNED_APK = $apk
$env:MINIMUM_TEST_EXPECTED_APPLICATION_ID = $package.Groups[1].Value
$env:MINIMUM_TEST_EXPECTED_VERSION_CODE = $package.Groups[2].Value
$env:MINIMUM_TEST_EXPECTED_VERSION_NAME = $package.Groups[3].Value
./tools/verify-cellular-policy.ps1
./tests/update-minimum-device.Tests.ps1
- name: Upload debug APK
uses: actions/upload-artifact@v4
with:
name: minimum-foss-debug-${{ github.sha }}
path: app/build/outputs/apk/foss/debug/mumla-foss-debug.apk
if-no-files-found: error
retention-days: 14
web:
name: Portal tests and production build
runs-on: ubuntu-latest
timeout-minutes: 20
defaults:
run:
working-directory: web
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up pnpm
uses: pnpm/action-setup@v4
with:
version: 11.16.0
run_install: false
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: "22"
cache: pnpm
cache-dependency-path: web/pnpm-lock.yaml
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Test
run: pnpm test
- name: Type-check
run: pnpm exec tsc --noEmit
- name: Build
run: pnpm build