Repository navigation
CI CD and Deployment
yybam edited this page Oct 7, 2026
·
1 revision
Three GitHub Actions workflows automate builds and deploys.
-
Trigger: push a
v*tag, or manual dispatch. -
Does: JDK 17 → restore the permanent release keystore from secrets (
RELEASE_KEYSTORE_BASE64/RELEASE_KEYSTORE_PASSWORD) →./gradlew assembleRelease→ create a GitHub Release withapp-release.apk. - If the keystore secrets are absent it falls back to a throwaway debug keystore (that APK won't install over releases).
- See Releases and Signing.
-
Trigger: push to
maintouchingpublic/**,firebase.json,.firebaserc, or the workflow. -
Does: deploys Firebase Hosting (site
coremdm) using theFIREBASE_SERVICE_ACCOUNTsecret. Live at coremdm.web.app.
-
Trigger: push to
maintouchingfirestore.rulesor the workflow. -
Does:
firebase deploy --only firestore:rulesusing the sameFIREBASE_SERVICE_ACCOUNTsecret. -
Caveat: deploying rules needs the service account to have the Firebase Rules Admin role (
roles/firebaserules.admin) in Google Cloud IAM — the Hosting role alone isn't enough. Until that's granted the deploy step is continue-on-error (it won't fail the run) and prints guidance; publish rules manually in the Firebase console in the meantime.
| Secret | Used by | What it is |
|---|---|---|
RELEASE_KEYSTORE_BASE64 |
build-apk | base64 of the release .p12 keystore |
RELEASE_KEYSTORE_PASSWORD |
build-apk | the keystore password |
FIREBASE_SERVICE_ACCOUNT |
deploy-hosting, deploy-firestore | a Firebase Admin SDK service-account JSON |
Set these under repo Settings → Secrets and variables → Actions.
In Google Cloud Console → IAM & Admin → IAM for project techeaz-core-mdm, give the service account (ends in @techeaz-core-mdm.iam.gserviceaccount.com, usually firebase-adminsdk-…) the Firebase Rules Admin role. After that, deploy-firestore.yml will succeed on its own.
firebase login
firebase deploy --only hosting:coremdm
firebase deploy --only firestore:rulesOr publish rules in the console: Firestore Database → Rules → paste → Publish.
The device-provisioning front end lives in a separate project served at coremdm.pages.dev/install (it was removed from this repo's public/install). It isn't part of these workflows.
CORE MDM — Repository · Console · Releases · Beta
Getting started
Using it
- Web Console Guide
- Commands and Command Queue
- Policies Reference
- App Management
- Content Filter and DNS
- Kiosk Mode
- PIN and Security
- Enrollment and Provisioning
How it works
Operations
Help