Skip to content
Agentmart
Submit a tool

github-actions

Use when creating or updating GitHub Actions CI/CD workflows for automated testing, static analysis, and artifact deployment.

Skill by dhruvanbhalara

IndexedMIT★ 30
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/dhruvanbhalara-github-actions

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Use when creating or updating GitHub Actions CI/CD workflows for automated testing, static analysis, and artifact deployment.

Use cases: testing, devops

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 26, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/github-actions

What's inside

Skill name
github-actions
Description
Use when creating or updating GitHub Actions CI/CD workflows for automated testing, static analysis, and artifact deployment.
License
MIT
Metadata
category: automation · languages: generic · platforms: cross-platform
Instructions
95 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# GitHub Actions Pipeline

-   Use GitHub Actions as the primary CI/CD platform
-   Trigger on `push` to `main` and on all Pull Requests
-   Pipeline MUST include these stages in order:

## Stage 1: Quality Gate

```yaml
- name: Analyze
  run: flutter analyze --fatal-infos --fatal-warnings
- name: Format Check
  run: dart format --set-exit-if-changed .
- name: Run Tests
  run: flutter test --coverage
```

-   Zero warnings policy: `--fatal-infos` ensures no info-level issues pass
-   Format check MUST use `--set-exit-if-changed` to enforce consistent formatting

## Stage 2: Build

```yaml
- name: Build APK
  run: flutter build apk --flavor prod --dart-define-from-file=config/prod.json --release
- name: Build IPA
  run: flutter build ipa --flavor prod --dart-define-from-file=config/prod.json --release --export-options-plist=ios/ExportOptions.plist
```

-   Always build with `--flavor prod` and `--dart-define-from-file=config/prod.json`
-   Use a single `main.dart`: do NOT pass `-t lib/main_prod.dart`

## Stage 3: Deploy (on main merge only)

-   Upload to Firebase App Distribution for internal testing
-   Upload to Google Play Internal Track / TestFlight for staging
-   Production release requires manual approval gate

# Caching Strategy

To optimize build speeds, cache dependencies in your GitHub Actions workflows:

```yaml
- name: Cache Flutter dependencies
  uses: actions/cache@v4
  with:
    path: |
      ~/.pub-cache
      .dart_tool
    key: ${{ runner.os }}-pub-${{ hashFiles('**/pubspec.lock') }}
    restore-keys: |
      ${{ runner.os }}-pub-

- name: Cache iOS/macOS Native dependencies (SPM & CocoaPods)
  uses: actions/cache@v4
  with:
    path: |
      ~/Library/Caches/org.swift.swiftpm
      ~/Library/Developer/Xcode/DerivedData
      ios/Pods
    key: ${{ runner.os }}-native-${{ hashFiles('ios/Podfile.lock', '**/pubspec.yaml') }}
    restore-keys: |
      ${{ runner.os }}-native-
```

# Versioning Strategy

-   Follow Semantic Versioning: `MAJOR.MINOR.PATCH+BUILD`
-   Bump `PATCH` for bug fixes, `MINOR` for features, `MAJOR` for breaking changes
-   Set version in `pubspec.yaml`: `version: 1.2.3+45`
-   The `+BUILD` number MUST auto-increment in CI (use build number from CI environment)

# Code Signing

-   Store signing keys and certificates in GitHub Secrets (never in repo)
-   Android: Store keystore as base64-encoded secret, decode in CI
-   iOS: Use App Store Connect API key for automated signing
-   NEVER commit `*.jks`, `*.keystore`, `*.p12`, or `*.mobileprovision` files

# PR Requirements

-   All PRs MUST pass: analysis (0 warnings), formatting, and tests before merge
-   Require at least 1 code review approval
-   Branch protection on `main`: no direct pushes, require status checks

# Release Checklist

- [ ] Version bumped in `pubspec.yaml`
- [ ] CHANGELOG.md updated
- [ ] All tests passing on CI
- [ ] Build succeeds for both Android and iOS
- [ ] Tested on physical device with production flavor
- [ ] Git tag created matching version (`v1.2.3`)

From dhruvanbhalara/skills, MIT.

More from dhruvanbhalara/skills

Signals

Stars
30
Forks
4
Open issues
0
Last commit (this folder)
Aug 29, 2026 (2 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from dhruvanbhalara

Cite this page

github-actions skill. Agent Mart. https://agentmart.dev/skills/dhruvanbhalara-github-actions (last updated 2026-10-24)