Token导航 LogoToken导航TokenDH.com
研究检索敏感数据clawhub未标认证来源可访问clear审计通过

cicd-workflowCICD 工作流程

Agent Skill

cicd-workflow 用于查找、检索和筛选相关信息,适合在 OpenClaw 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

7,287

周安装

313

GitHub Stars

公开资料未说明

下载量

2,554
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:cicd-workflow(CICD 工作流程)
来源仓库:https://github.com/smallest-ming/cicd-workflow
安装命令:
openclaw skills install cicd-workflow
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install cicd-workflow

简介

cicd-workflow 为 Java+Vue 项目提供 CI/CD 模板支持。

  • 支持 GitLab CI 和 Jenkins 两种主流平台。
  • 包含代码检查、测试、构建和容器化等完整流程。
  • 通过 clawhub 安装,适用于 OpenClaw 研究检索场景。
  • 建议根据实际技术栈调整模板配置参数。cicd-workflow 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

name
cicd-workflow
description
CI/CD workflow skill for Java + Vue projects. Supports GitLab CI and Jenkins pipelines with code linting, unit testing, build packaging, Docker image building, Kubernetes deployment, and notification feedback. Use when: (1) Setting up CI/CD pipelines for Java/Vue projects, (2) Configuring GitLab CI or Jenkins workflows, (3) Building Docker images and deploying to Kubernetes, (4) Implementing automated code quality checks and testing, (5) Setting up deployment notifications.

CI/CD Workflow Skill

Complete CI/CD pipeline templates for Java + Vue full-stack projects, supporting GitLab CI and Jenkins with Kubernetes deployment.

Interactive Configuration (NEW)

This skill supports interactive step-by-step configuration with numbered options.

Configuration Flow

1. Choose Platform (GitLab CI / Jenkins)
        ↓
2. Choose Project Type (Java / Vue / Java+Vue)
        ↓
3. Choose Deployment Target (K8s / Docker / SSH)
        ↓
4. Choose Trigger Method (Manual / Auto / Scheduled)
        ↓
5. Choose Pipeline Steps (Multi-select)
        ↓
6. Generate Configuration

Step 1: Platform

#PlatformConfig File
1GitLab CI.gitlab-ci.yml
2JenkinsJenkinsfile

Step 2: Project Type

#TypeDescription
1Java BackendSpring Boot project only
2Vue FrontendVue.js project only
3Java + Vue FullstackBoth backend and frontend

Step 3: Deployment Target

#TargetDescription
1KubernetesDeploy to K8s cluster with kubectl
2Docker ServerDeploy to Docker host
3Traditional Server (SSH)Deploy via SSH to remote server

Step 4: Trigger Method

#MethodDescription
1ManualTrigger by "Build Now" button
2Push AutoTrigger on every push
3ScheduledTrigger by cron schedule

Step 5: Pipeline Steps (Multi-select)

#StepDescription
1LintCode quality checks
2TestUnit tests with coverage
3BuildCompile and package
4DockerizeBuild and push Docker images
5DeployDeploy to target environment
6NotifySend notifications

Input Format

Complete in one line:

Platform,Project,Target,Trigger,Steps

Examples:

  • 1,3,1,1,123456 = GitLab CI + Java/Vue + K8s + Manual + All steps
  • 2,1,3,1,12356 = Jenkins + Java + SSH + Manual + No Docker
  • 1,2,1,2,123456 = GitLab CI + Vue + K8s + Auto trigger + All steps

Or step by step: Reply with one number at a time, the skill will guide you through each step.

Generated Output

When generating CI/CD configuration, this skill produces a complete package including:

For Jenkins

cicd-output/
├── Jenkinsfile.txt          # Pipeline configuration (rename to Jenkinsfile when using)
├── setup-guide.md           # Complete setup instructions
├── systemd/
│   └── [app-name].service   # systemd service file (for SSH deployment)
└── README.md                # Quick reference

For GitLab CI

cicd-output/
├── .gitlab-ci.yml.txt       # Pipeline configuration (rename to .gitlab-ci.yml when using)
├── setup-guide.md           # Complete setup instructions
├── docker-compose.yml       # Local development setup
└── README.md                # Quick reference

Setup Guide Contents

The automatically generated setup-guide.md includes:

1. Prerequisites

  • Required Jenkins/GitLab version
  • Required plugins and extensions
  • Server/environment requirements

2. Credential Configuration

  • Detailed list of required credentials
  • Step-by-step credential creation guide
  • Security best practices

3. Platform-Specific Setup

  • Jenkins: Pipeline job creation, plugin installation
  • GitLab CI: Runner setup, variable configuration

4. Deployment Target Setup

  • Kubernetes: Cluster access, namespace setup
  • Docker: Registry configuration, daemon setup
  • SSH: User creation, key exchange, systemd service

5. Troubleshooting

  • Common errors and solutions
  • Debug tips and log locations
  • Verification steps

6. Customization Guide

  • How to modify environment variables
  • How to add custom stages
  • How to adjust resource limits

Pipeline Stages

  1. Prepare - 环境检查和初始化
  2. Lint - 代码质量检查 (SpotBugs, PMD, Checkstyle for Java; ESLint, Prettier for Vue)
  3. Test - 单元测试与覆盖率报告
  4. Build - 编译打包,同时进行静态资源安全扫描
  5. Security Scan - Trivy 镜像安全扫描(可选)
  6. Dockerize - 构建并推送 Docker 镜像
  7. Deploy - 部署到 Kubernetes 集群
  8. Notify - 发送部署状态通知

Supported Platforms

  • GitLab CI (.gitlab-ci.yml)
  • Jenkins (Jenkinsfile)

Quick Start

GitLab CI

  1. Copy assets/gitlab-ci.yml.txt to your project root as .gitlab-ci.yml
  2. Update variables in the file:

- DOCKER_REGISTRY - Your Docker registry URL - DOCKER_NAMESPACE - Your registry namespace - K8S_NAMESPACE - Kubernetes namespace

  1. Configure CI/CD variables in GitLab:

- CI_REGISTRY_USER / CI_REGISTRY_PASSWORD - Docker registry credentials - KUBE_CONFIG - Base64 encoded kubeconfig - WEBHOOK_URL - Notification webhook URL

  1. Push to trigger pipeline (manual trigger for dockerize and deploy stages)

Jenkins

  1. Copy assets/Jenkinsfile.txt to your project root as Jenkinsfile
  2. Install recommended plugins:

- Pipeline - Docker Pipeline - Kubernetes CLI - JUnit (for test results) - JaCoCo (optional, for coverage) - HTTP Request (for notifications)

  1. Create Jenkins credentials:

- docker-registry-credentials - Docker registry login (username/password) - kubeconfig - Kubernetes config file (secret file) - webhook-url - Notification webhook URL (secret text)

  1. Create a new Pipeline job pointing to your repository
  2. Run manually via "Build Now"

Jenkinsfile Features:

  • ✅ Conditional builds based on file changes (when { changeset })
  • ✅ Static resource security scan during build
  • ✅ Graceful handling of missing plugins
  • ✅ Resource limits for Docker agents
  • ✅ Multi-environment deployment support
  • ✅ Rich notification cards for Feishu/DingTalk

Project Structure

project-root/
├── backend/              # Java Spring Boot project
│   ├── src/
│   ├── pom.xml
│   └── Dockerfile        # Copy from assets/Dockerfile.java.txt
├── frontend/             # Vue.js project
│   ├── src/
│   ├── package.json
│   └── Dockerfile        # Copy from assets/Dockerfile.vue.txt
├── .gitlab-ci.yml        # Copy from assets/.gitlab-ci.yml.txt
├── Jenkinsfile           # Copy from assets/Jenkinsfile.txt
└── k8s/
    └── deployment.yml    # Kubernetes manifests (from assets/)

Assets Reference

Dockerfiles

  • assets/Dockerfile.java.txt - Java backend Docker image (multi-stage, Alpine-based)
  • assets/Dockerfile.vue.txt - Vue frontend Docker image (multi-stage, Nginx-based)

Note: Rename .txt files to remove the extension when using in your project.

  • Dockerfile.java.txtDockerfile
  • Dockerfile.vue.txtDockerfile

Security Features

1. Static Resource Security (Vue Projects)

自动排除的文件类型:

  • .vue - Vue 单文件组件源码
  • *.config.js/ts/mjs/cjs/json - 各种配置文件
  • vite.config.* - Vite 配置
  • webpack.config.* - Webpack 配置
  • babel.config.* - Babel 配置
  • tailwind.config.* - Tailwind 配置
  • postcss.config.* - PostCSS 配置
  • eslint.config.* / .eslintrc.* - ESLint 配置
  • .prettierrc.* - Prettier 配置
  • *.map - Source map 文件

防护层级:

层级位置机制
构建时Dockerfilefind 命令删除上述文件
运行时Nginxlocation 规则返回 404
CI/CDJenkinsfile构建阶段扫描并删除

2. Nginx Security Configuration

# 拒绝访问源码文件
location ~* \.vue$ { return 404; }

# 拒绝访问配置文件
location ~* (config|vite|webpack|babel|tailwind|postcss|eslint|prettier)\.config\.(js|ts|mjs|cjs|json)$ {
    return 404;
}

# 拒绝访问 source map
location ~* \.map$ { return 404; }

Kubernetes

  • assets/k8s-deployment.yml - Complete K8s manifests including:

- Deployments with health checks - Services (ClusterIP) - Ingress with TLS - HorizontalPodAutoscaler (HPA)

Nginx Config

  • assets/nginx.conf.txt - Optimized Nginx configuration for Vue SPA with:

- Gzip compression - Static asset caching - API proxy to backend - Health check endpoint - Security rules (blocks .vue, config files, source maps)

Note: Copy and rename to nginx.conf when using.

Scripts

Notification Script

scripts/notify.sh - Send deployment notifications to:

  • 飞书 (Feishu)
  • 钉钉 (DingTalk)
  • Slack
  • 企业微信 (WeChat Work)

Usage:

export WEBHOOK_TYPE=feishu
export WEBHOOK_URL=https://open.feishu.cn/...
export PROJECT_NAME=my-app
export VERSION=1.0.0
./scripts/notify.sh success

Customization Guide

1. Adjust Resource Limits

Edit assets/k8s-deployment.yml:

resources:
  requests:
    memory: "512Mi"  # Adjust based on your app
    cpu: "250m"
  limits:
    memory: "1Gi"
    cpu: "1000m"

2. Change Trigger Strategy

GitLab CI - Remove when: manual to auto-trigger:

dockerize-java:
  # ...
  # when: manual  # Remove or comment this line

Jenkins - Add SCM polling:

triggers {
    pollSCM('H/5 * * * *')  // Check every 5 minutes
}

3. Add Environment Stages

Add staging deployment between build and production:

GitLab CI:

stages:
  - lint
  - test
  - build
  - dockerize
  - deploy-staging    # Add this
  - deploy-production # Rename from deploy
  - notify

deploy-staging:
  stage: deploy-staging
  script:
    - kubectl set image ... -n staging
  environment:
    name: staging
  when: manual

4. Custom Quality Gates

Add SonarQube analysis:

sonarqube:
  stage: test
  image: sonarsource/sonar-scanner-cli
  script:
    - sonar-scanner
      -Dsonar.projectKey=$CI_PROJECT_NAME
      -Dsonar.sources=.
      -Dsonar.host.url=$SONAR_URL
      -Dsonar.login=$SONAR_TOKEN

5. Multi-Environment Support

Use GitLab environments or Jenkins branches:

GitLab:

deploy:
  script:
    - |
      if [ "$CI_COMMIT_REF_NAME" == "main" ]; then
        kubectl set image ... -n production
      else
        kubectl set image ... -n staging
      fi

Troubleshooting

Static Resource Security Violation

Error: Build fails with "Security violation found: *.vue files in dist"

Cause: Vue build configuration may be including source files

Solution:

  1. Check vite.config.js / vue.config.js for incorrect publicDir or assetsInclude
  2. Verify .gitignore excludes source files from build
  3. Manual fix in Dockerfile already handles cleanup:
RUN find /usr/share/nginx/html -type f \
    -name "*.vue" -o \
    -name "*.config.js" \
    -delete

Jenkins Plugin Not Found

Error: No such DSL method 'publishTestResults'

Solution:

  • Jenkinsfile now uses standard junit plugin instead of custom publishers
  • Install JUnit Plugin from Jenkins plugin manager
  • Or disable test publishing by removing the post { always { junit ... } } blocks

Docker Build Context Issues

Error: unable to prepare context: unable to evaluate symlinks

Solution:

// Use explicit build context
Dockerfile: "-f backend/Dockerfile backend/"
// Not: "-f backend/Dockerfile ."

Kubectl Commands Fail

  • Verify KUBE_CONFIG is base64 encoded correctly
  • Check cluster name matches the context in kubeconfig
  • Ensure service account has deployment permissions

Image Pull Errors

  • Verify image tags are pushed correctly
  • Check image pull secrets if using private registry
  • Verify pod has imagePullPolicy: Always for latest tags

Rollout Hangs

  • Check pod events: kubectl describe pod <pod-name>
  • Verify resource limits are not too low
  • Check application logs: kubectl logs <pod-name>

Security Best Practices

  1. Never commit credentials - Always use CI/CD variables
  2. Use specific image tags - Avoid :latest in production
  3. Enable RBAC - Limit service account permissions
  4. Scan images - Add Trivy or Clair vulnerability scanning
  5. Network policies - Restrict pod-to-pod communication
  6. Resource quotas - Set namespace limits

References

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

86.79%
按下载量换算2,217

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

通过

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills