Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 56 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
name: CI

on:
push:
branches: [develop]
pull_request:
branches: [develop]
branches: [main]

env:
CARGO_TERM_COLOR: always
Expand All @@ -13,8 +11,34 @@ env:
RUSTFLAGS: ""

jobs:
# Detect what changed to decide which jobs to run
changes:
name: Detect Changes
runs-on: ubuntu-latest
outputs:
rust: ${{ steps.filter.outputs.rust }}
installer: ${{ steps.filter.outputs.installer }}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
id: filter
with:
filters: |
rust:
- 'src/**'
- 'Cargo.toml'
- 'Cargo.lock'
- 'tests/**/*.rs'
- '.github/workflows/ci.yml'
installer:
- 'installer/**'
- 'skills/**'

# Rust build, test, lint — only when Rust code changes
build:
name: Build & Test
needs: changes
if: needs.changes.outputs.rust == 'true'
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
Expand Down Expand Up @@ -68,9 +92,37 @@ jobs:
-A clippy::manual_strip -A clippy::manual_div_ceil \
-A dead_code -A unused_assignments

# Security audit
# Installer tests — only when installer or skills change
installer:
name: Installer Tests
needs: changes
if: needs.changes.outputs.installer == 'true'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'

- name: Install dependencies
working-directory: installer
run: npm ci

- name: Build
working-directory: installer
run: npm run build

- name: Run tests
working-directory: installer
run: npm test

# Security audit — only when Rust deps change
security:
name: Security Audit
needs: changes
if: needs.changes.outputs.rust == 'true'
runs-on: ubuntu-latest
permissions:
checks: write
Expand Down
6 changes: 5 additions & 1 deletion .github/workflows/release-plz.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ on:
push:
branches:
- main
paths:
- 'src/**'
- 'Cargo.toml'
- 'Cargo.lock'

permissions:
contents: write
Expand Down Expand Up @@ -64,4 +68,4 @@ jobs:
uses: release-plz/action@v0.5
with:
command: release-pr
manifest_path: Cargo.toml
manifest_path: Cargo.toml
2 changes: 1 addition & 1 deletion skills/commands/syncable-analyze.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: syncable-analyze
description: Use when analyzing a project's tech stack, detecting languages, frameworks, runtimes, or dependencies using Syncable CLI. Trigger on: "what stack is this", "analyze this project", "detect frameworks", "what languages does this use".
description: Analyze a project's tech stack including languages, frameworks, runtimes, package managers, and dependencies using the Syncable CLI sync-ctl tool
---

## Purpose
Expand Down
2 changes: 1 addition & 1 deletion skills/commands/syncable-dependencies.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: syncable-dependencies
description: Use when auditing project dependencies for licenses, production/dev split, or detailed dependency analysis using Syncable CLI. Trigger on: "license audit", "list dependencies", "dependency analysis", "what licenses am I using", "show me all packages".
description: Audit project dependencies for licenses, production vs development split, and detailed package analysis using the Syncable CLI sync-ctl tool
---

## Purpose
Expand Down
2 changes: 1 addition & 1 deletion skills/commands/syncable-optimize.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: syncable-optimize
description: Use when optimizing Kubernetes resource requests/limits, analyzing costs, or detecting configuration drift using Syncable CLI. Trigger on: "optimize k8s", "right-size pods", "k8s cost analysis", "resource recommendations", "over-provisioned containers".
description: Optimize Kubernetes resource requests and limits, analyze costs, detect over-provisioned containers, and right-size pods using the Syncable CLI sync-ctl tool
---

## Purpose
Expand Down
2 changes: 1 addition & 1 deletion skills/commands/syncable-platform.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: syncable-platform
description: Use when authenticating with Syncable, switching projects/orgs/environments, checking context, or deploying services through the Syncable platform. Trigger on: "syncable login", "select project", "switch project", "change project to", "use environment", "switch org", "deploy to syncable", "list environments", "what project am I on", "show current context".
description: Authenticate, login, sign in to Syncable platform. Switch organizations, projects, and environments. Deploy services to cloud providers. Check current context and manage platform settings using sync-ctl
---

## Purpose
Expand Down
2 changes: 1 addition & 1 deletion skills/commands/syncable-security.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: syncable-security
description: Use when scanning code for secrets, credentials, API keys, or insecure code patterns using Syncable CLI. Trigger on: "scan for secrets", "find leaked credentials", "security scan", "is this code secure", "check for hardcoded passwords".
description: Scan code for leaked secrets, credentials, API keys, hardcoded passwords, and insecure code patterns using the Syncable CLI sync-ctl security scanner
---

## Purpose
Expand Down
2 changes: 1 addition & 1 deletion skills/commands/syncable-validate.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: syncable-validate
description: Use when linting or validating Dockerfiles, Docker Compose files, Terraform configs, or Kubernetes manifests using Syncable CLI. Trigger on: "lint Dockerfile", "validate compose", "check terraform", "is my IaC correct", "lint my infrastructure files".
description: Lint and validate Dockerfiles, Docker Compose files, Kubernetes manifests, Helm charts, and Terraform configs using the Syncable CLI sync-ctl tool
---

## Purpose
Expand Down
2 changes: 1 addition & 1 deletion skills/commands/syncable-vulnerabilities.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: syncable-vulnerabilities
description: Use when checking project dependencies for known CVEs or security vulnerabilities using Syncable CLI. Trigger on: "check for CVEs", "vulnerable dependencies", "dependency security", "are my packages safe", "npm audit", "cargo audit".
description: Check project dependencies for known CVEs and security vulnerabilities across npm, pip, cargo, and go ecosystems using the Syncable CLI sync-ctl tool
---

## Purpose
Expand Down
2 changes: 1 addition & 1 deletion skills/workflows/syncable-deploy-pipeline.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: syncable-deploy-pipeline
description: Use when deploying a project through Syncable - orchestrates auth, analysis, security gating, and deployment via Syncable CLI. Trigger on: "deploy this", "push to syncable", "set up deployment", "deploy my project".
description: Deploy a project through Syncable by orchestrating authentication, project analysis, security gating, and cloud deployment using the Syncable CLI sync-ctl tool
---

## Purpose
Expand Down
2 changes: 1 addition & 1 deletion skills/workflows/syncable-iac-pipeline.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: syncable-iac-pipeline
description: Use when validating all infrastructure-as-code files in a project - combines IaC linting with Kubernetes optimization and security checks via Syncable CLI. Trigger on: "validate infrastructure", "lint all IaC", "check my k8s and docker files", "infrastructure review".
description: Validate all infrastructure-as-code files by combining Dockerfile linting, Docker Compose validation, Kubernetes manifest checking, and Helm chart analysis using the Syncable CLI sync-ctl tool
---

## Purpose
Expand Down
2 changes: 1 addition & 1 deletion skills/workflows/syncable-project-assessment.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: syncable-project-assessment
description: Use when a user wants a comprehensive project health check - combines stack analysis, security scanning, vulnerability checks, and dependency auditing via Syncable CLI. Trigger on: "assess this project", "full health check", "project overview", "what's the state of this codebase", "onboard me to this repo".
description: Run a comprehensive project health check combining stack analysis, security scanning, vulnerability detection, and dependency auditing using the Syncable CLI sync-ctl tool
---

## Purpose
Expand Down
2 changes: 1 addition & 1 deletion skills/workflows/syncable-security-audit.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: syncable-security-audit
description: Use when performing a thorough pre-deployment or compliance security review - combines deep security scan, CVE checks, and IaC validation via Syncable CLI. Trigger on: "security audit", "is this production-ready", "pre-deploy security check", "compliance review", "full security review".
description: Perform a thorough pre-deployment or compliance security review combining deep security scan, CVE checks, and IaC validation using the Syncable CLI sync-ctl tool
---

## Purpose
Expand Down
Loading