agentsclimarketplace

Project ci cd

Skill Tanq16/claudex/skills/project-ci-cd

Multi-account CLI companion for Claude Code that tracks usage limits, launches configured sessions, and applies skills & output styles.

Install
npx -y skills add Tanq16/claudex --skill project-ci-cd

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Use when setting up CI/CD for projects - covers Makefile, GitHub Actions, semantic versioning, Docker images, multi-platform binaries, Node runtime-bundled tarballs and self-contained binaries, and extension packaging

SKILL.md

9.9 KB, as published. Nobody here has run it

Project CI/CD

Standardized CI/CD setup for projects with Makefile-driven builds and GitHub Actions.

When to Use

Use this skill when:

  • Setting up CI/CD for a Go project
  • Setting up CI/CD for a Node Web Only project
  • Setting up CI/CD for a Chrome extension
  • Adding release automation to an existing project
  • Configuring Docker builds and multi-platform binaries

Related skills:

  • go-foundations - Go project layout
  • node-foundations - Node Web Only project layout
  • chrome-extension-basics - Chrome extension structure

Start here — required reading

This skill branches by stack. Read the Always files for a Go/extension project before touching its CI/CD; for a Node Web Only project, read the Node files instead. A subagent may read any of these if you delegate that work.

Always (Go / Chrome extension):

  • ./references/makefile-template.md — the Makefile with asset management and build targets
  • ./references/release-workflow.md — the GitHub Actions release automation

When adding a Dockerfile (Go):

  • ./references/dockerfile-template.md — two-stage Docker build

When the project is Node Web Only (read these instead of the Go files):

  • ./references/node-makefile.md — Node Makefile: vendor assets, build native addon, verify, assemble
  • ./references/node-release.md — Node release: binary vs tarball, Bun/SEA, Debian-slim Docker, release matrix

CI/CD Files Checklist

Go CLI Only Projects

FilePurpose
MakefileBuild logic (build, build-all, clean, version — NO docker targets)
.github/workflows/release.yamlAutomated releases: binaries only, NO docker job

No Dockerfile, no docker-compose, no docker targets in Makefile.

Go Web Only Projects

CLI + Web hybrids use this same Web Only CI/CD (Docker + multi-platform binaries). A Headless API Service uses it too but drops the frontend-asset targets (make assets / make verify-assets).

FilePurpose
MakefileAll build logic (assets, build, docker, version)
DockerfileTwo-stage build for containerized deployment
.github/workflows/release.yamlAutomated releases: docker + binaries
docker-compose.yamlSimple compose for running the container (optional)

Node Web Only Projects

The only Node type for now — an HTTP + WebSocket server that also serves a vendored SPA frontend. Node CLI Only, CLI + Web, and Library are future/out-of-scope. The release artifact is a runtime-bundled tarball (native-addon apps, the default) or a single self-contained binary (pure-JS apps) — see ./references/node-release.md for the decision rule.

FilePurpose
MakefileVendor assets, build native addon from source, verify, assemble artifact (see node-makefile.md)
scripts/bundle.shAssemble the per-platform runtime-bundled tarball (tarball path)
DockerfileTwo-stage debian:*-slim (glibc) build — NOT Alpine (musl breaks glibc addons)
.github/workflows/release.yamlTag-triggered matrix release (Linux x64/arm64, macOS x64/arm64; no Windows)

Chrome Extensions

FilePurpose
MakefileBuild zip for distribution
.github/workflows/release.yamlAutomated releases on push to main

Do NOT create:

  • Separate build scripts (exception: a Node Web Only tarball release uses a single scripts/bundle.sh)
  • Multiple Dockerfiles
  • Additional workflow files beyond release

Secrets Required

Configure these secrets in GitHub repository settings:

SecretPurposeProject Type
DOCKER_ACCESS_TOKENPush images to Docker HubWeb Only / CLI + Web

The GITHUB_TOKEN is automatically available - no configuration needed. CLI Only projects need no additional secrets. A Node Web Only release that only ships tarballs/binaries needs no extra secrets either; add DOCKER_ACCESS_TOKEN only if it also pushes a Docker image.


Workflow

Step 1: Create Makefile

Go / Chrome extensions: Use ./references/makefile-template.md.

Node Web Only: Use ./references/node-makefile.md instead (vendors assets from node_modules, builds the native addon from source, verifies it, assembles the artifact) — the Go build/ldflags material does not apply.

CLI Only projects (Go): Use the CLI Only Template (no assets, no docker targets).

Web Only projects with frontend assets (Go): Use the Web Only Template with full assets, verify-assets, docker-build, and docker-push targets.

Web Only projects without frontend assets (Go): Use the Web Only Template but remove assets and verify-assets targets.

Customize these values (Go):

  • APP_NAME - your project name
  • Asset versions - update to latest as needed (Web Only / CLI + Web)
  • STATIC_DIR paths - match your project structure (Web Only / CLI + Web)
  • Version variable path in -ldflags - match your cmd package path

Step 2: Create Dockerfile (Web Only)

CLI Only projects skip this step entirely — they do not have a Dockerfile.

Node Web Only: Use the two-stage debian:*-slim (glibc) Dockerfile in ./references/node-release.mdnot the Go Alpine template. Alpine's musl libc will not load the official glibc Node build or glibc-compiled native addons. The rest of this step (Go Alpine template) does not apply to Node.

Use ./references/dockerfile-template.md to create the Dockerfile (Go).

For Web Only projects with frontend assets:

  • Include make assets in the build stage

For Web Only projects without frontend assets:

  • Use the Minimal Template (no make assets step)

Customize:

  • Go version (currently 1.26)
  • Exposed port if different from 8080
  • Default CMD arguments for your app

Step 3: Create Release Workflow

Go / Chrome extensions: Use ./references/release-workflow.md to create .github/workflows/release.yaml.

Customize (Go):

  • Go version in the setup step
  • Docker Hub username (if different)

Node Web Only: Use the tag-triggered matrix workflow sketch in ./references/node-release.md. It compiles the native addon from source per platform (npm_config_build_from_source=true) on arch-native runners, runs scripts/bundle.sh, smoke-tests the tarball with a scrubbed PATH, and attaches per-platform tarballs to the release. For a pure-JS app, swap the bundle step for bun build --compile or node --build-sea and upload the binary.

Step 4: Create docker-compose.yaml (Web Only, Optional)

CLI Only projects skip this step — they do not use Docker.

For easy local deployment of Web Only projects:

services:
  [app-name]:
    image: [GITHUB_USER]/[app-name]:latest
    container_name: [app-name]
    ports:
      - "8080:8080"
    volumes:
      - ./data:/data
    restart: unless-stopped

Semantic Versioning

Version bumps are automatic based on commit message:

Commit Message ContainsVersion BumpExample
(nothing special)Patchv1.0.0v1.0.1
[minor-release]Minorv1.0.1v1.1.0
[major-release]Majorv1.1.0v2.0.0

Usage:

git commit -m "Add new feature [minor-release]"
git commit -m "Breaking API change [major-release]"
git commit -m "Fix bug in handler"  # patch release

Build Targets Reference

TargetDescriptionProject Type
make helpShow all available targetsAll
make assetsDownload frontend assetsWeb Only / CLI + Web
make verify-assetsVerify required assets existWeb Only / CLI + Web
make cleanRemove built binaries and assetsAll
make buildBuild for current platformAll
make build-for GOOS=linux GOARCH=amd64Build for specific platformAll
make build-allBuild all platform binariesAll
make docker-buildBuild Docker imageWeb Only / CLI + Web
make docker-pushBuild and push Docker imageWeb Only / CLI + Web
make setupInstall deps, vendor assets, verify addonNode Web Only
make vendorVendor JS libs + woff2 fonts into public/Node Web Only
make verifyProve the native addon loads and runsNode Web Only
make bundleAssemble runtime-bundled tarballNode Web Only
make binaryCompile single self-contained binary (pure-JS)Node Web Only
make versionCalculate next version from commitsAll

References

This skill uses the following reference files:

FileTypePurpose
./references/makefile-template.mdTemplateComplete Makefile with asset management and build targets (Go + Extensions)
./references/dockerfile-template.mdTemplateTwo-stage Docker build with instructions (Go)
./references/release-workflow.mdWorkflowGitHub Actions release automation (Go)
./references/node-makefile.mdTemplateNode Web Only Makefile: vendor assets, build native addon, verify, assemble artifact
./references/node-release.mdWorkflowNode Web Only release: binary vs tarball decision, Bun/SEA, Debian-slim Docker, release matrix

Using References

  • makefile-template: Copy and customize for your project. Remove assets section for CLI-only projects.
  • dockerfile-template: Copy and adjust Go version, ports, and CMD as needed.
  • release-workflow: Copy directly, update Go version if needed.
  • node-makefile: For Node Web Only. Copy, swap [APP_NAME], drop the native-addon/verify targets if pure-JS.
  • node-release: For Node Web Only. Pick the binary or tarball path, then copy the matching Docker + workflow.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.