android-cicd — Claude Code skill: ship Android builds to Google Play
This skill wires up a GitHub Actions pipeline that builds your Android app and pushes it to Google Play, detecting the framework and handling signing secrets for you.
npx claude-code-templates@latest --skill development/android-cicdWhat android-cicd does
Setup runs through an interactive wizard, npx android-cicd, launched from the project root. It inspects the directory layout to pick a framework: Flutter shows up as pubspec.yaml with a flutter: entry, React Native as android/app/build.gradle plus a react-native dependency in package.json, TWA as twa-manifest.json or .bubblewrap/config.json, native Android as app/build.gradle. You can override whatever it guesses.
The wizard then creates a keystore, uploads secrets with gh secret set and scaffolds the workflow. Which Google Play track gets the build depends on the git ref: a push to main lands in internal, a v1.2-alpha tag in alpha, v1.2-beta in beta, v1.2.0 in production. A manual workflow_dispatch lets you choose the track yourself. Each push to main makes CI read the current versionCode, add one, and commit with [skip ci]. Tag builds skip that bump, since a tag pins a commit — raise the version before you tag.
You need Node.js 18 or newer, JDK 17 with keytool on the path, an authenticated gh CLI, and an app in Play Console that already has one manual AAB upload. Play App Signing has to be on. The service account JSON key and the Google Play Android Developer API are set up by hand, and without that first manual upload the API cannot publish anything. Keep org.gradle.java.home out of gradle.properties — it breaks Linux CI runners.
What it helps with
- publish Android builds to Google Play from GitHub Actions
- route releases to internal, alpha, beta and production by git tag
- stop bumping versionCode by hand on every main push
- wire the upload keystore and signing secrets into CI
- set up a pipeline for TWA, React Native, Flutter or native Android
Example prompts for the agent
- Set up Android CI/CD for this project with
npx android-cicd - Generate the keystore and push the signing secrets to GitHub
- Scaffold a workflow that auto-bumps
versionCodeon pushes tomain
How to install android-cicd
1claude-code-templates
npx claude-code-templates@latest --skill development/android-cicd2Skills CLI (Vercel)
npx skills add davila7/claude-code-templates --skill android-cicd -a claude-code3Manually: put the files in place
~/.claude/skills/android-cicd/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/android-cicd/
Manually: put the files in place
.agents/skills/android-cicd/SKILL.mdFor all projects use ~/.agents/skills/
Manually: put the files in place
.cursor/skills/android-cicd/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install davila7/claude-code-templates android-cicd2Manually: put the files in place
.github/skills/android-cicd/SKILL.mdPlatform CLI
gemini skills install https://github.com/davila7/claude-code-templates --path cli-tool/components/skills/development/android-cicdManually: put the files in place
.devin/skills/android-cicd/SKILL.mdThe legacy .windsurf/skills/ path still works
Claude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about android-cicd
How do I install android-cicd in Claude Code?
Use the templates installer: npx claude-code-templates@latest --skill development/android-cicd. Or run npx skills add davila7/claude-code-templates --skill android-cicd -a claude-code. The skill file ends up at ~/.claude/skills/android-cicd/SKILL.md.
What does android-cicd do?
It scaffolds a multi-stage GitHub Actions pipeline that builds an Android app and publishes it to Google Play. The wizard detects the framework, generates a keystore, sets the secrets and writes the workflow.
What has to be ready before I run the wizard?
Node.js 18 or newer, JDK 17 with keytool, an authenticated gh CLI, and an app in Play Console with at least one manual AAB upload. You also need a service account JSON key and the Google Play Android Developer API enabled.