Skip to content
Back to skills

Deploy Release

ASecurity

Automates the complete Azdroid release and deployment lifecycle when the user requests "thực hiện deploy", "deploy", "release", "build release", or "phát hành". Executes the canonical ./scripts/deploy.sh pipeline, enforcing version bumping, release notes drafting, README link updates (anti-404 rule), quality verification, packaging, and GitHub publishing.

  • 6 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 22, 2026
developmentshellbashgitperformancedocumentation

Works with

  • mcp

Security analysis

A96/100
  • mediumUses curl or wget to download content

Pro shows the line behind each finding and how to fix it

Scanned October 22, 2026

npx -y skills add az-coder-123/azdroid --skill deploy-release --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Deploy Release?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Deploy Release
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/az-coder-123-deploy-release/badge)](https://www.skillsdirectory.com/skills/az-coder-123-deploy-release)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: deploy-release
description: >-
  Automates the complete Azdroid release and deployment lifecycle when the user requests
  "thực hiện deploy", "deploy", "release", "build release", or "phát hành".
  Executes the canonical ./scripts/deploy.sh pipeline, enforcing version bumping,
  release notes drafting, README link updates (anti-404 rule), quality verification,
  packaging, and GitHub publishing.
---

# Azdroid Release & Deployment Runbook

This skill automates the complete 7-step release and deployment pipeline for Azdroid.

## ⚡️ Primary Command for AI Assistants

Whenever a user requests to deploy or publish a release (e.g., *"thực hiện deploy"*, *"deploy"*, *"release"*, *"phát hành"*):

1. **Inspect recent commits** to determine semantic version bump (`patch`, `minor`, or `major`):
   ```bash
   git log --oneline $(git describe --tags --abbrev=0 2>/dev/null || echo "")..HEAD
   ```
   - **patch**: Bug fixes, minor documentation updates.
   - **minor**: New features, new tools, performance enhancements.
   - **major**: Breaking architectural changes, protocol rewrites.

2. **Execute the Canonical Deployment Script (macOS):**
   ```bash
   ./scripts/deploy.sh <patch|minor|major>
   ```
   - *For preview/test runs without pushing to GitHub:*
     ```bash
     ./scripts/deploy.sh <patch|minor|major> --dry-run
     ```
   - *For building and committing locally without remote push:*
     ```bash
     ./scripts/deploy.sh <patch|minor|major> --no-push
     ```

3. **Execute the Canonical Deployment Pipeline (Windows PC):**
   After macOS initiates a release tag, complete the Windows build on a Windows machine:
   ```powershell
   powershell -ExecutionPolicy Bypass -File scripts\deploy.ps1
   ```
   - *For dry-run:* `powershell -ExecutionPolicy Bypass -File scripts\deploy.ps1 -DryRun`
   - *With sandbox verification:* `powershell -ExecutionPolicy Bypass -File scripts\deploy.ps1 -TestSandbox`

---

## 🛡️ Mandatory Rules & Invariants (Enforced by Pipeline)

1. **Version Alignment Invariant:**
   - Both `pubspec.yaml` (`version: X.Y.Z+N`) and `lib/core/constants/app_constants.dart` (`static const String appVersion = 'X.Y.Z';`) must be updated in tandem.
   - Verified by `flutter test test/unit/app_version_test.dart`.

2. **Anti-404 Windows Badge Rule:**
   - On `README.md`, if the new release is macOS-only, the Windows download badge **must remain pinned** to the latest release tag that actually contains a Windows binary (`.../releases/download/v<pinned>/Azdroid-v<pinned>-Windows-x64.zip`).
   - **NEVER** link Windows to `/releases/latest/download/...` when the latest release lacks a Windows asset (GitHub will return HTTP 404).

3. **Zero Claims Without Code:**
   - Release notes in `docs/releases/v<version>.md` must only document verified features present in code. Never state unverified tool counts, latency numbers, or unreleased platforms.

4. **Zero-Warning Quality Gate:**
   - The pipeline strictly runs `dart format .`, `flutter analyze` (must return *"No issues found!"*), and `flutter test` (100% pass) before committing or packaging.

---

## 📋 The 7-Step Pipeline (Under the Hood)

The `./scripts/deploy.sh` script automates these stages sequentially:

| Step | Phase | Key Actions |
|:---|:---|:---|
| **1** | **Pre-flight Checks** | Verifies toolchain (`flutter`, `dart`, `git`, `gh`, `ditto`, `curl`), ensures branch `main` and clean git working tree. |
| **2** | **Version Synchronization** | Computes semantic version and build number (+1), updates `pubspec.yaml` and `app_constants.dart`, verifies with unit test. |
| **3** | **Release Notes** | Generates `docs/releases/v<version>.md` structured into New, Improved, Fixed, Known Limitations, and Checksum. |
| **4** | **README & Docs Sync** | Updates macOS download badge and install command to `v<version>`, updates `docs/platform-support.md` date. |
| **5** | **Quality Gate** | Formats Dart code, executes `flutter analyze` (zero issues), and runs all tests (`flutter test`). |
| **6** | **Source Commit** | Commits all prepared source files with `chore(release): prepare v<version>`. |
| **7** | **Packaging & GitHub Release** | Calls `scripts/build_release.sh`, smoke tests bundled `adb` and `azdroid-mcp`, packs ZIPs, commits `RELEASE/`, pushes to `main`, and creates GitHub Release via `gh release create`. |

---

## 🔍 Post-Deployment Verification

After the deployment script completes, AI assistants can verify the live release:

```bash
# 1. Verify GitHub Release asset availability
gh release view v<version> --json assets,url --jq '.url, .assets[].name'

# 2. Verify download URLs return HTTP 200 (no 404)
curl -sIL https://github.com/az-coder-123/azdroid/releases/latest/download/Azdroid-v<version>-macOS.zip | grep -i '^http'

# 3. Verify clean git state
git status
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.