Skip to content

Commit 5905719

Browse files
authored
Merge pull request #330 from syncable-dev/feature/ci-pipeline-generation
feat: CI/CD pipeline generation (generate ci / cd / ci-cd)
2 parents 5403db3 + 7a057f3 commit 5905719

84 files changed

Lines changed: 20048 additions & 106 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.DS_Store

-8 KB
Binary file not shown.

.gitignore

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ docs/**
2929
!docs/command-overview.md
3030
!docs/qoder-directory.md
3131

32+
.github/copilot-instructions.md
33+
3234
# Generated by cargo mutants
3335
# Contains mutation testing data
3436
**/mutants.out*/
@@ -44,4 +46,12 @@ syncable-ide-companion/*.vsix
4446
syncable-ide-companion/node_modules/
4547
syncable-ide-companion/dist/
4648

47-
syncable-cli.tape
49+
.DS_Store
50+
**/.DS_Store
51+
52+
# Generated CD/CI pipeline output (sync-ctl generate cd/ci)
53+
.github/workflows/deploy-azure.yml
54+
.github/workflows/deploy-gcp.yml
55+
.github/workflows/deploy-hetzner.yml
56+
.syncable/cd-manifest.toml
57+
.syncable/SECRETS_REQUIRED.md

CHANGELOG.md

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,97 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66

77
## [Unreleased]
88

9+
## [0.37.1](https://github.com/syncable-dev/syncable-cli/compare/v0.37.0...v0.37.1) - 2026-03-29
10+
11+
### Added
12+
13+
- deprecate chat/agent commands, rebrand CLI as DevOps toolbox
14+
- updated codex/gemini skill path
15+
16+
### Fixed
17+
18+
- install Codex skills to ~/.agents/skills/ per official docs
19+
- rewrite Gemini CLI skill installer to use proper SKILL.md directory format
20+
- rewrite skill descriptions for semantic matching, skip CI for non-Rust changes
21+
22+
### Other
23+
24+
- release v0.37.0
25+
- *(installer)* update README with correct install paths for Claude, Codex, Gemini
26+
27+
## [0.37.1](https://github.com/syncable-dev/syncable-cli/compare/v0.37.0...v0.37.1) - 2026-03-29
28+
29+
### Added
30+
31+
- deprecate chat/agent commands, rebrand CLI as DevOps toolbox
32+
- updated codex/gemini skill path
33+
34+
### Fixed
35+
36+
- install Codex skills to ~/.agents/skills/ per official docs
37+
- rewrite Gemini CLI skill installer to use proper SKILL.md directory format
38+
- rewrite skill descriptions for semantic matching, skip CI for non-Rust changes
39+
40+
### Other
41+
42+
- *(installer)* update README with correct install paths for Claude, Codex, Gemini
43+
44+
## [0.37.0](https://github.com/syncable-dev/syncable-cli/compare/v0.36.0...v0.37.0) - 2026-03-28
45+
46+
### Added
47+
48+
- wire validate command, fix per-directory vuln/dep scanning, add deploy preview/run, and pagination
49+
- updating test cases
50+
- removed .env
51+
- claude skills feature
52+
- rewrite command skills to use --agent flag
53+
- rewrite workflow skills with --agent and cross-step retrieval
54+
- wire --agent flag in command handlers and add Retrieve command
55+
- add --agent flag to 5 scan commands and Retrieve subcommand
56+
- add CLI variants of compression functions
57+
- add resolve_latest() for cross-process ref_id resolution
58+
- *(installer)* add CLI entrypoint with commander, inquirer, ora, chalk
59+
- *(installer)* add update command (re-exports uninstall + install)
60+
- *(installer)* add status command with per-agent skill counting
61+
- *(installer)* add uninstall command with glob removal and Gemini marker cleanup
62+
- *(installer)* add install command with skill writers for all 5 agents
63+
- *(installer)* add prerequisite check and installation modules
64+
- *(installer)* add Cursor, Windsurf, and Gemini format transformers
65+
- *(installer)* add Claude and Codex format transformers
66+
- *(installer)* add agent detection for 5 AI coding agents
67+
- *(installer)* add skill loader with frontmatter parsing
68+
- *(installer)* add constants and utils module with version parsing
69+
- *(skills)* add syncable-deploy-pipeline workflow skill
70+
- *(skills)* add syncable-iac-pipeline workflow skill
71+
- *(skills)* add syncable-security-audit workflow skill
72+
- *(skills)* add syncable-project-assessment workflow skill
73+
- *(skills)* add syncable-platform command skill
74+
- *(skills)* add syncable-optimize command skill
75+
- *(skills)* add syncable-validate command skill
76+
- *(skills)* add syncable-dependencies command skill
77+
- *(skills)* add syncable-vulnerabilities command skill
78+
- *(skills)* add syncable-security command skill
79+
- *(skills)* add syncable-analyze command skill
80+
- early agu-ui protocol added
81+
82+
### Fixed
83+
84+
- add failures/diagnostics fields to find_issues_array
85+
- *(installer)* add verbose logging, forward all flags in update command
86+
87+
### Other
88+
89+
- ignore 6 new transitive dependency advisories (aws-lc-sys, rustls-webpki)
90+
- agent output pipeline implementation plan (10 tasks)
91+
- agent output pipeline design spec
92+
- *(installer)* add professional npm README with logo and metadata
93+
- *(installer)* scaffold npx installer project
94+
- add npx installer implementation plan
95+
- add npx installer design spec
96+
- scaffold skills directory structure
97+
- add syncable CLI skills implementation plan
98+
- add syncable CLI skills design spec
99+
9100
## [0.36.0](https://github.com/syncable-dev/syncable-cli/compare/v0.35.1...v0.36.0) - 2026-03-15
10101

11102
### Fixed

Cargo.lock

Lines changed: 28 additions & 14 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "syncable-cli"
3-
version = "0.36.0"
3+
version = "0.37.1"
44
edition = "2024"
55
rust-version = "1.88" # MSRV - AWS SDK requires 1.88
66
authors = ["Syncable Team"]
@@ -125,6 +125,7 @@ assert_cmd = "2"
125125
predicates = "3"
126126
tempfile = "3"
127127
proptest = "1"
128+
insta = { version = "1", features = ["yaml"] }
128129

129130
# Fast debug builds - prioritize compile speed over runtime
130131
[profile.dev]

README.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,20 @@ This installs 11 skills (7 command + 4 workflow) into your AI coding agent. Then
6060
```bash
6161
cargo install syncable-cli
6262
sync-ctl analyze .
63+
64+
# Generate a CI pipeline skeleton (GitHub Actions, Azure Pipelines, or Cloud Build)
65+
sync-ctl generate ci . --platform gcp --dry-run # preview without writing files
66+
sync-ctl generate ci . --platform azure # write azure-pipelines.yml
67+
sync-ctl generate ci . --platform hetzner --notify # with Slack failure alert
68+
69+
# Generate a CD pipeline skeleton
70+
sync-ctl generate cd . --platform gcp --target cloud-run --dry-run
71+
sync-ctl generate cd . --platform azure --target aks -o ./pipelines
72+
sync-ctl generate cd . --platform hetzner --target vps --notify
73+
74+
# Generate both CI + CD in one shot
75+
sync-ctl generate ci-cd . --platform gcp --target cloud-run --dry-run
76+
sync-ctl generate ci-cd . --platform hetzner --target vps --notify
6377
```
6478

6579
## 🤖 AI Agent Skills

azure-pipelines.yml

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
trigger:
2+
branches:
3+
include:
4+
- main
5+
tags:
6+
include:
7+
- v*
8+
pr:
9+
branches:
10+
include:
11+
- main
12+
schedules:
13+
- cron: '{{CRON_SCHEDULE}}'
14+
displayName: Scheduled build
15+
branches:
16+
include:
17+
- main
18+
always: true
19+
pool:
20+
vmImage: ubuntu-latest
21+
steps:
22+
- script: rustup default stable
23+
displayName: Set up runtime
24+
- task: Cache@2
25+
displayName: Cache dependencies
26+
inputs:
27+
key: cargo | $(Agent.OS) | **/Cargo.lock
28+
path: |-
29+
~/.cargo/registry/index
30+
~/.cargo/registry/cache
31+
~/.cargo/git/db
32+
target/
33+
restoreKeys: cargo | $(Agent.OS)
34+
- script: cargo fetch
35+
displayName: Install dependencies
36+
- script: cargo clippy -- -D warnings
37+
displayName: Lint
38+
- script: cargo test
39+
displayName: Test
40+
- script: cargo build --release
41+
displayName: Build
42+
- script: docker build -t {{REGISTRY_URL}}/{{IMAGE_NAME}}:$(Build.SourceVersion) .
43+
displayName: Build Docker image
44+
- script: |-
45+
curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin
46+
trivy image --exit-code 1 --severity CRITICAL,HIGH --format sarif --output trivy-results.sarif {{REGISTRY_URL}}/{{IMAGE_NAME}}:$(Build.SourceVersion)
47+
displayName: Scan image (Trivy)
48+
- script: |-
49+
curl -sSfL https://github.com/gitleaks/gitleaks/releases/latest/download/gitleaks_linux_x64.tar.gz | tar xz -C /usr/local/bin
50+
gitleaks detect --source . --exit-code 1
51+
displayName: Secret scan (Gitleaks)
52+
env:
53+
GITHUB_TOKEN: $(GITHUB_TOKEN)
54+
- task: PublishBuildArtifacts@1
55+
displayName: Upload artifact
56+
inputs:
57+
artifactName: syncable-cli
58+
pathToPublish: target/release/

0 commit comments

Comments
 (0)