用AI实现软件开发流程自动化:从零到发布,你只负责提需求
用AI实现软件开发流程自动化:从零到发布,你只负责提需求
一、背景:当AI接手软件开发,会发生什么?
想象这样一个场景:你有一个软件开发的好点子,比如“做一个待办事项的API(应用程序接口)”。你只需要把这个想法告诉AI,剩下的所有事情——创建代码仓库、搭建项目框架、编写代码、写测试、配置自动化流水线、生成安装包,甚至把安装包发布到指定服务器——都由AI自动完成。最终,你只需要等着收“安装包”就行。
这篇文章就是想通过一个真实的例子,展示如何用AI(这里用的是Claude Code)实现这个“一句话需求,自动出软件”的流程。为了让大家看得更明白,我们会简化一些配置,比如没有用复杂的配置文件来管理GitLab(一个代码托管平台)的登录信息,但核心思路完全保留。
为什么要这么做?
传统软件开发中,程序员需要手动完成大量重复工作:搭框架、配CI/CD(持续集成/持续交付)、写测试……这些工作不仅耗时,还容易出错。如果AI能自动完成,开发者就能把精力集中在更有创造性的需求分析和代码逻辑上,大大提升效率。
二、效果图:看看AI都干了哪些活
为了让结果更直观,我们先来看看AI自动生成的成果。下面这些截图和文件列表,展示了整个自动化流程的输出。
1. 生成的项目文件结构
运行 tree 命令,可以看到AI创建了一个标准的Python项目目录,包含源代码、测试、构建包、文档等:
root@demo:/app/autodevops# tree
.
├── build # 构建过程中生成的临时文件夹
├── dist # 生成的wheel安装包存放处
├── docs # 项目文档,这里放了设计文档和实现计划
│ └── plans
│ ├── 2026-03-17-todo-api-design.md
│ └── 2026-03-17-todo-api-implementation.md
├── pyproject.toml # Python项目的配置文件(相当于项目的“身份证”)
├── README.md # 项目说明文件
├── release # 最终要发布的安装包(从dist复制过来)
│ └── todo_api-0.1.0-py3-none-any.whl
├── src # 源代码目录
│ └── todo_api # 我们的待办事项API主模块
│ ├── __init__.py
│ └── main.py # 核心代码
├── tests # 单元测试目录
│ ├── __pycache__ # Python编译的缓存文件
│ └── test_main.py # 测试代码
└── todos.db # 测试用的SQLite数据库文件
简单解释:
src里放的是你写的API代码。tests里是自动生成的测试代码,用来确保API正确运行。dist和release里是生成的安装包(wheel文件),你可以直接把它发给别人安装。docs里是AI写的设计文档,记录需求分析和实现思路。
2. CI/CD流水线截图
CI/CD(持续集成/持续交付)是一条自动化流水线。每次你提交代码,GitLab Runner(一个执行任务的小工具)就会自动运行测试、构建包、发布。下图是流水线的两个阶段:
- 第一个截图展示了流水线执行成功,每个步骤都打了绿色对勾。
- 第二个截图是流水线的详细日志,可以看到它执行了哪些命令,比如安装依赖、运行测试、打包等。


3. GitLab上的仓库
AI自动把代码推送到了GitLab仓库,并配置好了CI/CD:
- 仓库主页显示项目文件,并且CI/CD状态是“passed”(通过)。
- Issues(问题)页面显示AI自动创建和关闭了两个issue(问题),用来跟踪任务进度。


4. 版本发布到指定服务器
最后一步,AI通过curl命令把生成的安装包上传到了一个指定的服务器上。下图是服务器接收文件的日志:

三、准备工作:在GitLab上搭好舞台
在AI开始工作之前,我们需要先在GitLab上创建空白仓库,并配置好GitLab Runner(相当于给流水线配一个“工人”)。这些操作只需要做一次,后续AI就可以重复使用。
1. 创建空的GitLab仓库
在GitLab上新建一个项目,比如 todo-api,保持为空。记录下项目ID和仓库地址,后面会用到。
2. 安装并注册GitLab Runner
GitLab Runner是一个轻量级服务,负责执行CI/CD任务。我们需要在一台机器(或容器)上安装它,并让它和GitLab建立联系。
第一步:获取注册token
在GitLab仓库的 Settings > CI/CD > Runners 里找到注册token。这个token是Runner和GitLab之间的“密码”。
第二步:安装Runner
在Ubuntu机器上执行以下命令:
# 下载GitLab Runner的安装包
curl -LJO "https://gitlab-runner-downloads.s3.amazonaws.com/latest/deb/gitlab-runner_amd64.deb"
# 安装
dpkg -ivh gitlab-runner_amd64.deb
第三步:注册Runner
使用刚才获取的token,将Runner注册到GitLab:
gitlab-runner register \
--url "http://<你的GitLab服务器地址>:3080/" \
--registration-token "GR1348941pikmZyPJ9Fnysb1tc6z_" # 替换成你的token
注册过程中会要求选择执行器(executor),我们选择 docker,并指定默认镜像为 python:3.12。这样每次运行流水线时,都会在一个全新的Python 3.12容器中执行。
第四步:修改配置解决克隆问题
由于网络原因,有时Runner从GitLab克隆代码会失败。需要修改Runner配置文件 /etc/gitlab-runner/config.toml,增加 clone_url 字段,指向GitLab的访问地址:
[[runners]]
name = "my-runner"
url = "http://<GitLab服务器地址>:3080/"
clone_url = "http://<GitLab服务器地址>:3080/" # 加上这一行
token = "glrtr-PwMctDNIbgVBf4T9qM9-JG86MQpwOmcKdDozCw"
executor = "docker"
[runners.docker]
image = "python:3.12"
...
第五步:启动Runner并验证
gitlab-runner start
gitlab-runner status # 应该显示 running
回到GitLab的Runner页面,你会看到刚刚注册的Runner状态变为绿色(可用)。
四、给AI的提示词:清晰的需求说明书
现在舞台已经搭好,轮到AI登场了。我们需要给它一份详细的“任务说明书”,告诉它要做什么。下面就是给Claude Code的提示词原文,我会在每段旁边加上“为什么这么写”的解释。
(一)需求描述
为什么需要这节?
AI必须清楚你要开发什么,用什么技术。所以先定义清楚。
### 1、环境
- 开发语言:python
- 运行环境:Ubuntu 24.04 LTS、Python 3.12
- 技术选型:FastAPI
- 开发语言:Python是AI需要使用的编程语言。
- 运行环境:最终代码会在Ubuntu 24.04 + Python 3.12上运行,所以AI要保证兼容性。
- 技术选型:FastAPI是一个现代Python Web框架,用来快速构建API。
### 2、功能介绍
- 待办事项REST API: 创建、读取、更新、删除 (CRUD)。
- 本项目旨在验证自动化端到端全流程,功能上不需要复杂的设计。
- 功能:CRUD是最经典的API示例,简单但完整。用来演示流程足够了。
- 目的:再次强调,这不是一个复杂项目,重点是演示自动化流程。
(二)代码管理
为什么需要这节?
AI需要知道代码存放到哪里,以及如何与GitLab交互。
### 1、gitlab配置
GITLAB_URL=http://<GitLab服务器地址>:3080
GITLAB_TOKEN=glpat-d1825zPNKKHWxhajtNGu
代码仓库: http://<GitLab服务器地址>:3080/autodevops/todo-api.git
gitlab用户名:XXX
gitlab密码: XXX
- GITLAB_URL:GitLab的访问地址。
- GITLAB_TOKEN:私有访问令牌,相当于AI的“密码”,用来调用GitLab API。
- 代码仓库:要操作的仓库地址。
- 用户名/密码:备用登录方式(实际项目中更推荐用token)。
### 2、gitlab issues管理
* 创建issues
curl --request POST --header "PRIVATE-TOKEN: glpat-d1825zPNKKHWxhajtNGu" \
--data "title=测试&description=测试issue" \
"http://<GitLab服务器地址>:3080/api/v4/projects/<仓库ID>/issues"
* 查询打开的issues
curl --header "PRIVATE-TOKEN: glpat-d1825zPNKKHWxhajtNGu" \
--url "http://<GitLab服务器地址>:3080/api/v4/projects/<仓库ID>/issues?state=opened"
* 关闭issues
curl --request PUT --header "PRIVATE-TOKEN: glpat-d1825zPNKKHWxhajtNGu" --data "state_event=close" \
--url "http://<GitLab服务器地址>:3080/api/v4/projects/<仓库ID>/issues/1"
- 这些curl命令演示了如何通过GitLab API操作issues。AI可以用它们自动创建任务、跟踪进度、最后关闭完成的任务。这样整个开发过程都记录在GitLab里,便于追溯。
(三)项目管理要求
为什么需要这节?
这是整个自动化的核心,告诉AI要完成哪些具体任务,每个任务怎么做。
根据功能需求,构建一个从零开始的软件项目,涵盖版本控制、框架搭建、测试驱动开发、CI/CD集成及发布包生成的全流程。具体要求如下:
- 1. Git仓库管理
- 使用gitlab配置信息里的todo-api仓库(目前为空)
- 整个开发过程使用Git进行版本控制,提交信息清晰规范。
解释:AI要像一个负责任的开发者,把每一步改动都提交到Git,并写清楚提交信息,方便以后查看历史。
- 2. 测试用例与单元测试
- 编写核心功能的测试用例(单元测试),使用pytest测试框架。
- 确保测试覆盖关键业务逻辑,并包含边界情况。
解释:测试是为了保证代码正确性。AI要自动生成测试代码,比如测试创建待办事项时,传入非法数据API能不能正确处理。这样后续修改代码时,一跑测试就知道有没有破坏原有功能。
- 3. GitLab Issue集成
- 在GitLab中为项目创建Issue模板,用于记录和跟踪bug。
- 配置流程,使得代码提交可以关联Issue(例如在提交信息中引用Issue ID)。
解释:在GitLab里创建issue(问题),可以像待办事项一样管理任务。AI创建issue后,后续的代码提交可以关联这些issue(比如提交信息里写“Closes #1”),这样issue会自动关闭,开发进度一目了然。
- 4. CI/CD自动化测试
- 配置CI/CD流水线(如GitLab CI),在每次推送时自动运行所有单元测试。
- 流水线应包含测试阶段,并生成测试报告(可选)。
解释:配置 .gitlab-ci.yml 文件,告诉GitLab Runner每次代码推送后做什么。比如先安装依赖,再运行 pytest。如果测试失败,流水线会红掉,提醒你代码有问题。
- 5. 发布包生成与归档
- 当所有测试通过后,流水线自动构建发布包(Python的wheel包)。
- 将生成的发布包上传到服务器:
curl -F "file=@release/<文件名>" http://<发布包服务器>:8000/<当前日期>/<文件名>
解释:测试通过后,AI会自动用 python -m build 生成wheel包(一种Python安装包格式)。然后通过curl命令上传到指定的发布服务器,这样其他人就可以直接下载安装了。
- 6. 任务完成确认
- 所有步骤完成后,输出一条明确的消息
解释:这是给用户的最终反馈,告诉你一切都搞定,可以去拿安装包了。
请以清晰、可执行的步骤输出整个过程的详细说明,包括所需的命令、代码片段、配置文件示例(如 `.gitlab-ci.yml`、测试文件、主程序文件等),并确保符合现代软件开发最佳实践。
(四)注意事项
- 如果使用gitlab SDK,请将SDK返回URL中的IP修改为<GitLab服务器地址>(内外网不一样)
- CI/CD使用
python:3.12镜像
解释:因为内外网IP可能不同,直接使用SDK返回的IP可能导致访问失败,需要替换为可访问的地址。另外明确流水线容器镜像,保证环境一致。
五、结语:让AI成为你的开发助手
通过这个例子,我们看到AI不仅能写代码,还能自动完成整个软件开发流程:从初始化项目、写测试、配CI/CD,到最终生成安装包并发布。你只需要清晰地描述需求,剩下的交给AI。
当然,这只是一个开端。随着AI能力的增强,未来我们可能只需要说一句话,AI就能自动拆解需求、设计架构、编写代码、测试、部署……整个软件工程将进入“自动驾驶”时代。
如果你也想尝试,可以按照上面的步骤准备环境,然后给AI一份类似的提示词,看看它能不能为你自动构建一个项目。欢迎在评论区分享你的实践成果!
注:本文中的所有IP地址、token等均为示例,实际操作时请替换为你自己的真实信息。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)