From 444ef94af4675f70d5ba1126de8c98f8afb36cb9 Mon Sep 17 00:00:00 2001 From: Dakshata Date: Wed, 15 Oct 2025 12:23:59 +0000 Subject: [PATCH] docs: add CI/CD Pipeline recipe Signed-off-by: Dakshata --- .../recipes/data/recipes/ci-cd-pipeline.yaml | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 documentation/src/pages/recipes/data/recipes/ci-cd-pipeline.yaml diff --git a/documentation/src/pages/recipes/data/recipes/ci-cd-pipeline.yaml b/documentation/src/pages/recipes/data/recipes/ci-cd-pipeline.yaml new file mode 100644 index 000000000000..742c538b7d39 --- /dev/null +++ b/documentation/src/pages/recipes/data/recipes/ci-cd-pipeline.yaml @@ -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.