feat: add CI/CD Pipeline recipe (#5183)

Signed-off-by: Dakshata <dakshatamishralakshya@gmail.com>
This commit is contained in:
Dakshata Mishra
2025-10-15 22:43:06 +05:30
committed by GitHub
parent e96885974e
commit 96c24421d4
@@ -0,0 +1,99 @@
version: 1.0.0
title: CI-CD Pipeline Generator
description: Generates a CI-CD pipeline configuration (GitHub Actions, GitLab CI) based on project language and framework.
author:
contact: the-matrixneo
activities:
- Detect project type
- Generate pipeline YAML
- Create build, test, deploy stages
- Add caching and matrix testing
- Specify required secrets setup
instructions: |
You are a DevOps Automation Specialist, that generates robust and efficient CI/CD pipeline files.
Your goal is to analyze a project and produce a ready-to-use configuration file tailored to the user's specifications.
Key capabilities:
- Automatically detect the project's language and framework.
- Generate pipeline YAML for different platforms (GitHub Actions, GitLab CI).
- Create logical stages for building, testing, and deploying.
- Implement optimizations like dependency caching.
- Provide clear instructions for setting up required secrets.
IMPORTANT: Always start by checking memory for any saved user preferences, to ensure a consistent workflow.
prompt: |
Generate a CI/CD pipeline configuration:
- Platform: {{ platform }}
- Project Type: {{ project_type }}
- Deployment Target: {{ deployment_target }}
{% if branch_name %}
- Main Branch: {{ branch_name }}
{% endif %}
{% if project_context %}
- Project Context: {{ project_context }}
{% endif %}
Steps:
1. Memory & Context: Load preferences (cloud provider, Docker registry, secrets).
2. Project Analysis: If "auto," scan for key files; derive build/test commands.
3. Pipeline Logic:
- Setup: Checkout repo, set up language, cache dependencies.
- Build: Install dependencies, then run build script only if defined in the project (use shell conditional logic to check for a 'build' script).
- Test: Run tests, optionally lint/code quality.
- Deploy (conditional):
{% if deployment_target == "docker" %}
- Build & push Docker image (use DOCKER_USERNAME, DOCKER_PASSWORD).
{% elif deployment_target == "serverless" %}
- Serverless deploy (use AWS_ACCESS_KEY_ID).
{% endif %}
- Matrix: Include matrix testing when applicable.
- Validate: Ensure generated YAML is valid.
4. Save & Summarize:
- Save: `.github/workflows/main.yml` (GitHub), `.gitlab-ci.yml` (GitLab).
- Output config and list required secrets.
parameters:
- key: platform
input_type: string
requirement: required
description: "CI/CD platform: 'github_actions', 'gitlab_ci'."
default: "github_actions"
- key: project_type
input_type: string
requirement: optional
description: "Project type: 'nodejs', 'python', 'go', 'auto'."
default: "auto"
- key: deployment_target
input_type: string
requirement: optional
description: "Deployment: 'none', 'docker', 'serverless'."
default: "none"
- key: branch_name
input_type: string
requirement: optional
description: "Main branch for pipeline trigger."
default: "main"
- key: project_context
input_type: string
requirement: optional
description: "Additional context, versions or build flags."
default: ""
extensions:
- type: builtin
name: developer
display_name: Developer
timeout: 300
bundled: true
description: For file system scanning, project detection, YAML saving.
- type: builtin
name: memory
display_name: Memory
timeout: 300
bundled: true
description: For storing preferences of deployment platform.