Agent skill

Android Cicd

by davila7 in davila7/claude-code-templates

Automated Android CI/CD pipeline to Google Play — supports TWA, React Native, Flutter, and native Android.

MITAuto-check passedMobile

Install Android Cicd

skills CLI
$ npx skills add davila7/claude-code-templates --skill android-cicd -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install davila7/claude-code-templates android-cicd --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/davila7/claude-code-templates.git skills-src && mkdir -p .claude/skills && cp -r skills-src/cli-tool/components/skills/development/android-cicd .claude/skills/android-cicd && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
android-cicd
GitHub stars
32k
Token cost
~2.2k tokens
SKILL.md length
833 words
Files
1
Skills in repo
477
Repo updated
First seen
Licence
MIT

At a glance

Automated Android CI/CD pipeline to Google Play — supports TWA, React Native, Flutter, and native Android.

  • Works in 4 steps: Create the service account → Enable the Play API → Invite the service account in Play Console → …
  • Tasks that involve CI/CD
  • SKILL.md covers Purpose, When to Use, Quick Start and Prerequisites, plus 9 more sections
  • Calls git, npx and gh; needs KEYSTORE_PASSWORD and KEY_PASSWORD

What it does

Android Cicd is an agent skill from davila7/claude-code-templates. Automated Android CI/CD pipeline to Google Play — supports TWA, React Native, Flutter, and native Android. Run npx android-cicd to set up keystore generation, GitHub Secrets, and a multi-stage workflow (internal/alpha/beta/production) with auto-bump versionCode.

Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Mobile, covering CI/CD and Cross-platform mobile apps. It works with Android, Flutter, GitHub and React Native. The repository describes itself as: CLI tool for configuring and monitoring Claude Code. The licence is MIT.

When your agent uses it

  • Tasks that involve CI/CD
  • Tasks that involve Cross-platform mobile apps

Example prompts

  • “/android-cicd”

Requirements

  • Node.js

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Create the service account
  2. Enable the Play API
  3. Invite the service account in Play Console
  4. First manual upload

What it can do on your machine

Read from SKILL.md and the folder at commit 14680ec. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • npx
    • gh
    • java

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • cli.github.com
    • play.google.com
    • console.cloud.google.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • KEYSTORE_PASSWORD
    • KEY_PASSWORD

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Android Cicd loads about 2.2k tokens when it runs. Until then it costs about 69 tokens; SKILL.md has 833 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~69
When it runs · the whole SKILL.md, loaded when a task matches
~2.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from davila7/claude-code-templates at commit 14680ec, republished under its MIT licence (© davila7). 833 words, ~2,177 tokens.

Download SKILL.mdSave it as .claude/skills/android-cicd/SKILL.md (or your agent's skills folder).
name
android-cicd
description
Automated Android CI/CD pipeline to Google Play — supports TWA, React Native, Flutter, and native Android. Run npx android-cicd to set up keystore generation, GitHub Secrets, and a multi-stage workflow (internal/alpha/beta/production) with auto-bump versionCode.
risk
safe
source
community
date_added
2026-05-12
license
MIT
metadata.author
ezescholz
metadata.version
1.0.0
metadata.npm
android-cicd

Skill: android-cicd

Purpose

Set up a complete, multi-stage Android CI/CD pipeline that automatically builds and publishes to Google Play via GitHub Actions. Supports TWA (Trusted Web Activity / Bubblewrap), React Native, Flutter, and native Android (Gradle) projects.

When to Use

  • The project has an Android app tracked in a GitHub repository
  • No CI/CD pipeline exists yet for the Android build
  • Goal: automate publishing to Google Play on every push to main and on version tags
  • User wants to avoid manual versionCode bumping

Quick Start

Run the interactive setup wizard from the root of the target project:

sh
npx android-cicd

The wizard handles: framework detection → keystore generation → GitHub Secrets → workflow scaffold.


Prerequisites

Before running the wizard, ensure:

  • Node.js ≥ 18
  • JDK 17 installed with keytool accessible (JAVA_HOME set, or installed via Eclipse Adoptium / Android Studio)
  • gh CLI installed and authenticated (gh auth login)
  • App already created in Google Play Console — at least one manual AAB/APK upload done (required before the API can publish)
  • App enrolled in Play App Signing (Google manages the signing key; you manage the upload key)
  • Google Play Android Developer API enabled in Google Cloud Console
  • Service account JSON key downloaded (see Manual Steps below)

Framework Detection

The wizard auto-detects the framework from the project directory structure:

ConditionDetected framework
pubspec.yaml contains flutter:flutter
android/app/build.gradle exists + package.json has react-native depreact-native
android-root-app/build.gradle or twa-manifest.json or .bubblewrap/config.json existstwa
app/build.gradle existsnative
android/app/build.gradle exists (fallback)native

The user can override the detected framework during the wizard.


Multi-Stage Pipeline

The scaffolded workflow publishes to different tracks based on the git ref:

Git eventGoogle Play track
Push to maininternal
Tag matching v*-alpha (e.g. v1.2-alpha)alpha
Tag matching v*-beta (e.g. v1.2-beta)beta
Tag matching v* (e.g. v1.2.0)production
Manual workflow_dispatchUser-selectable (internal / alpha / beta / production)

To release to production:

sh
git tag v1.2.0
git push origin v1.2.0

Auto-Bump versionCode

On every push to main, CI automatically:

  1. Reads the current versionCode from the version file for the detected framework
  2. Increments it by 1
  3. Commits the change with [skip ci] (prevents re-triggering the workflow)
  4. Pushes the commit back to main

Version file by framework:

FrameworkVersion fileField
TWAandroid-root-app/build.gradleversionCode
React Nativeandroid/app/build.gradleversionCode
Flutterpubspec.yamlversion: x.y.z+N (the +N build number)
Nativeapp/build.gradleversionCode

For tag-based builds (alpha / beta / production), auto-bump does not run — the tag represents a pinned commit. Increment the version manually before tagging.


Required GitHub Secrets

The wizard sets these automatically via gh secret set:

SecretDescription
KEYSTORE_FILEBase64-encoded upload keystore (.jks)
KEYSTORE_PASSWORDKeystore password
KEY_ALIASKey alias (e.g. upload)
KEY_PASSWORDKey password (usually same as KEYSTORE_PASSWORD)
GOOGLE_PLAY_SERVICE_ACCOUNT_JSONFull JSON content of the service account key

Signing Configuration

TWA / Native Android

Add to your build.gradle (see templates/gradle/signing.gradle):

groovy
android {
    signingConfigs {
        release {
            storeFile file("keystore.jks")
            storePassword System.getenv("KEYSTORE_PASSWORD")
            keyAlias System.getenv("KEY_ALIAS")
            keyPassword System.getenv("KEY_PASSWORD")
        }
    }
    buildTypes {
        release {
            minifyEnabled true
            signingConfig signingConfigs.release
        }
    }
}

Never set org.gradle.java.home in gradle.properties — it breaks Linux CI runners.

Flutter

The CI workflow creates android/key.properties at build time (from secrets) and cleans it up after. Your android/app/build.gradle should read from it:

groovy
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
    keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}

android {
    signingConfigs {
        release {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
            storePassword keystoreProperties['storePassword']
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release
        }
    }
}

Manual Steps (Cannot Be Automated)

1. Create the service account
  1. Google Cloud Console → your project → IAM & Admin → Service Accounts
  2. Create service account → name: github-play-publisher → Done (no roles needed)
  3. Click the service account → Keys tab → Add key → Create new key → JSON → download
Show full SKILL.md (328 more words)Show less
2. Enable the Play API

Google Cloud Console → APIs & Services → search Google Play Android Developer API → Enable

3. Invite the service account in Play Console
  1. Play Console → Users and permissions → Invite new user
  2. Email: github-play-publisher@YOUR-PROJECT.iam.gserviceaccount.com
  3. Account-level permissions:
    • ✅ Release apps to testing tracks
    • ✅ Manage testing tracks and edit testers
  4. Apply
4. First manual upload

Google Play requires at least one manually uploaded AAB before the API can publish. If this is a brand-new app, upload the first build from your local machine before running the CI pipeline.


Troubleshooting

ErrorCauseFix
Java home supplied is invalidorg.gradle.java.home hardcoded in gradle.propertiesRemove that line
signed with the wrong keyKeystore in secret doesn't match Play's registered upload keyUpdate KEYSTORE_FILE secret
The caller does not have permissionService account missing permissions or API not enabledRe-check Manual Steps 2 and 3
Upload failed — wrong versionCodeversionCode not incremented (tag-based build)Increment versionCode manually before tagging
shallow update not allowedShallow git checkout when pushing version bumpWorkflow uses fetch-depth: 0 — verify the checkout step
Workflow not triggering on tagTag not pushed to remoteRun git push origin TAG_NAME
gh: command not foundgh CLI not installedInstall from https://cli.github.com
keytool not foundJDK not installed or not on PATHSet JAVA_HOME or install JDK 17

Recovering a Lost Upload Keystore

If the app uses Play App Signing (recommended):

  1. Generate a new keystore: npx android-cicd and choose "I already have a keystore: No"
  2. Export the PEM certificate:
    sh
    keytool -export -rfc -keystore upload.jks -alias ALIAS -storepass PASSWORD -file cert.pem
  3. Play Console → app → App integrity → App signing → Request upload key reset
  4. Select "I forgot my password" → upload cert.pem
  5. Wait 1–2 business days for Google approval
  6. Update the KEYSTORE_FILE secret with the new keystore base64

Manually Bumping the Version (Tag Releases)

Before pushing a tag for alpha / beta / production:

TWA / Native / React Native — edit build.gradle:

groovy
versionCode 8   // increment
versionName "1.2.0"

Flutter — edit pubspec.yaml:

yaml
version: 1.2.0+8

Then tag and push:

sh
git add .
git commit -m "chore: bump version to 1.2.0"
git tag v1.2.0
git push origin main --tags

© davila7, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in cli-tool/components/skills/development/android-cicd of davila7/claude-code-templates.

Open the folder on GitHubat commit 14680ec

Compare with similar skills

Android Cicd next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Android Cicd compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Android Cicd this skilldavila7/claude-code-templates32k—~2.2kAutomated safety check: PassMIT
Claude Android NinjaDrjacky/claude-android-ninja124—~5.2kAutomated safety check: PassApache-2.0
GitHub Actionscallstackincubator/agent-skills1.7k1 repos~703Automated safety check: PassMIT
Msstore CLIgithub/awesome-copilot40k1 repos~4.1kAutomated safety check: PassMIT
Android Native DevHHU3637kr/skills145—~5.6kAutomated safety check: PassMIT
Expo Brownfield Integrationmweinbach/agent-coworker1562 repos~900Automated safety check: NotesCustom licence

Similar skills

  • Claude Android Ninja

    Drjacky/claude-android-ninja

    Build and migrate Android apps with Kotlin, Jetpack Compose, MVVM, Hilt, Room 3 (KSP, SQLiteDriver, Flow/suspend DAOs), Navigation3, and multi-module Gradle.

    124 GitHub stars~5.2k tokensUpdated 8 days ago
    MobileAuto-check passed
  • GitHub Actions

    callstackincubator/agent-skills

    Official

    GitHub Actions workflow patterns for React Native iOS simulator and Android emulator cloud builds with downloadable artifacts.

    1.7k GitHub starsUsed in 1 repo~703 tokens
    DevOps & CloudAuto-check passed
  • Msstore CLI

    github/awesome-copilot

    Official

    Microsoft Store Developer CLI (msstore) for publishing Windows applications to the Microsoft Store.

    40k GitHub starsUsed in 1 repo~4.1k tokens
    MobileAuto-check passed
  • Android Native Dev

    HHU3637kr/skills

    A skill your agent uses when the user is developing, reviewing, or troubleshooting a native Android app, especially Kotlin/Compose, Material Design 3, Gradle project setup, Android accessibility…

    145 GitHub stars~5.6k tokensUpdated 15 days ago
    MobileAuto-check passed
  • Expo Brownfield Integration

    mweinbach/agent-coworker

    Helps add Expo and React Native to an existing native iOS or Android app, and choose between a prebuilt AAR or XCFramework and a fully integrated build.

    156 GitHub starsUsed in 2 repos~900 tokens
    MobileAuto-check: notes
  • Simdeck

    NativeScript/SimDeck

    A skill your agent uses for simulator lifecycle, app install/launch, live viewing, UI inspection, touch/keyboard automation, screenshots, recordings, logs, pasteboard, hardware controls, and…

    152 GitHub stars~3.6k tokensUpdated 26 days ago
    MobileAuto-check passed

More from davila7/claude-code-templates

All 477 skills in this repo
  • Perplexity Web Search

    davila7/claude-code-templates

    Runs web-grounded searches through Perplexity's Sonar models over OpenRouter for current events, recent literature and cited facts beyond the model's training cutoff.

    32k GitHub starsUsed in 12 repos~3.5k tokens
    Auto-check: notes
  • Neuropixels Data Analysis

    davila7/claude-code-templates

    Analyzes Neuropixels recordings from SpikeGLX or Open Ephys through preprocessing, drift correction, Kilosort4 spike sorting, quality metrics and curation.

    32k GitHub starsUsed in 10 repos~2.8k tokens
    Auto-check passed
  • Scientific Venue Templates

    davila7/claude-code-templates

    Supplies LaTeX templates and formatting rules for journals, conferences, posters, and grant proposals, then can check a draft against them.

    32k GitHub starsUsed in 9 repos~5.1k tokens
    Auto-check: notes
  • Brand Voice Content Creator

    davila7/claude-code-templates

    Analyzes a brand's existing writing to lock in a consistent voice, then builds SEO blog posts and platform-specific social content around it.

    32k GitHub starsUsed in 3 repos~1.9k tokens
    Auto-check passed
  • CAPA Officer

    davila7/claude-code-templates

    Guides corrective and preventive action (CAPA) work in a quality management system, from initiation and root cause analysis through effectiveness verification.

    32k GitHub starsUsed in 1 repo~2k tokens
    Auto-check passed
  • Fda Consultant Specialist

    davila7/claude-code-templates

    Senior FDA consultant and specialist for medical device companies including HIPAA compliance and requirement management.

    32k GitHub starsUsed in 1 repo~2.7k tokens
    Auto-check passed

Questions about Android Cicd

What does Android Cicd do?

Automated Android CI/CD pipeline to Google Play — supports TWA, React Native, Flutter, and native Android. Android Cicd is an agent skill from davila7/claude-code-templates. Automated Android CI/CD pipeline to Google Play — supports TWA, React Native, Flutter, and native Android.

When should I use Android Cicd?

Android Cicd fits situations like: tasks that involve CI/CD; tasks that involve Cross-platform mobile apps.

How do I install Android Cicd in Claude Code?

Run `npx skills add davila7/claude-code-templates --skill android-cicd -a claude-code`. Or copy the skill folder (cli-tool/components/skills/development/android-cicd in davila7/claude-code-templates) into .claude/skills/android-cicd in your project. Claude Code loads it when a task matches its description.

How do I install Android Cicd in Codex?

Run `npx skills add davila7/claude-code-templates --skill android-cicd -a codex`. Or copy the skill folder (cli-tool/components/skills/development/android-cicd in davila7/claude-code-templates) into .agents/skills/android-cicd in your project. Codex loads it when a task matches its description.

Can I use Android Cicd in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add davila7/claude-code-templates --skill android-cicd -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/android-cicd, .gemini/skills/android-cicd, .github/skills/android-cicd and .opencode/skills/android-cicd in your project.

What does Android Cicd need to run?

Going by SKILL.md and its folder, Android Cicd needs the command-line tools its instructions call (git, npx, gh and java) and credentials named KEYSTORE_PASSWORD and KEY_PASSWORD. Our summary lists: Node.js.

Does Android Cicd access the network?

SKILL.md names 3 domains. As links in the text: cli.github.com, play.google.com and console.cloud.google.com. This is read from the text; nothing was executed.

Is Android Cicd safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Android Cicd use?

Android Cicd is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Android Cicd use?

About 2.2k tokens (SKILL.md is roughly 8.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Android Cicd?

Skills that share tags, products or a category with Android Cicd: Claude Android Ninja (Drjacky/claude-android-ninja, 124 stars), GitHub Actions (callstackincubator/agent-skills, 1.7k stars), Msstore CLI (github/awesome-copilot, 40k stars) and Android Native Dev (HHU3637kr/skills, 145 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Android Cicd?

davila7 (a GitHub user) maintains it in davila7/claude-code-templates, which has 32,463 GitHub stars. The repository holds 477 skills in this directory. The repository was last updated on October 8, 2026.

Source: davila7/claude-code-templates on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.