serverless-devs-python/
├── .github/
│ └── workflows/
│ ├── publish.yml # 自动发布到 PyPI
│ └── test.yml # 自动测试
├── serverless_devs/ # Python 包目录
│ ├── __init__.py # 包初始化
│ ├── __main__.py # 命令行入口
│ └── installer.py # 安装器(使用官方脚本)
├── setup.py # 安装配置
├── pyproject.toml # 项目元数据
├── README.md # 项目说明
├── LICENSE # 许可证
├── MANIFEST.in # 打包清单
└── DEVELOPMENT.md # 本文件
cd serverless-devs-pythonpython -m venv venv
# Linux/Mac
source venv/bin/activate
# Windows
venv\Scripts\activatepip install -e .# 测试安装器
s-install
# 测试命令
s --version本项目的版本号只需要修改 setup.py 和 serverless_devs/__init__.py 中的 Python 包版本。
Serverless Devs 本身的版本会自动获取最新版,无需手动更新。
需要修改的文件:
setup.py-version='1.0.x'serverless_devs/__init__.py-__version__ = "1.0.x"
-
获取 PyPI API Token
- 访问 https://pypi.org/manage/account/
- 生成 API Token
- 复制 token(格式:
pypi-...)
-
配置 GitHub Secrets
- 进入 GitHub 仓库的 Settings → Secrets and variables → Actions
- 点击 "New repository secret"
- Name:
PYPI_API_TOKEN - Value: 粘贴你的 PyPI token
- 点击 "Add secret"
-
发布新版本
# 1. 更新版本号 vim setup.py # 修改 version vim serverless_devs/__init__.py # 修改 __version__ # 2. 提交更改 git add . git commit -m "chore: bump version to 1.0.x" git push # 3. 创建并推送标签 git tag v1.0.x git push origin v1.0.x
-
自动发布流程
- GitHub Actions 会自动检测到新标签
- 自动构建 Python 包
- 自动发布到 PyPI
- 自动创建 GitHub Release
也可以在 GitHub Actions 页面手动触发:
- 进入 Actions 标签页
- 选择 "Publish to PyPI" workflow
- 点击 "Run workflow"
- 选择分支并运行
如果需要手动发布:
# 1. 清理旧文件
rm -rf build/ dist/ *.egg-info
# 2. 安装构建工具
pip install build twine
# 3. 构建
python -m build
# 4. 检查
twine check dist/*
# 5. 上传到 TestPyPI(测试)
twine upload --repository testpypi dist/*
# 6. 上传到 PyPI(正式)
twine upload dist/*# 构建
python -m build
# 在新环境中测试
python -m venv test_env
source test_env/bin/activate # Windows: test_env\Scripts\activate
pip install dist/serverless_devs-*.whl
# 测试
s-install
s --versionpip install -i https://test.pypi.org/simple/ serverless-devs
s-install
s --versionpip install serverless-devs
s --version安装时使用国内镜像加速:
export USE_MIRROR=1
s-installset USE_MIRROR=1
s-install或在 PowerShell 中:
$env:USE_MIRROR=1
s-install# 查看详细日志
s-install
# 或直接使用 npm
npm install -g @serverless-devs/s# 重新加载环境变量
source ~/.bashrc # 或 ~/.zshrc
# 检查 PATH
echo $PATH
# 查找 s 命令位置
which s# Linux/macOS 使用 sudo
sudo pip install serverless-devs
# 或安装到用户目录
pip install --user serverless-devs欢迎提交 Issue 和 Pull Request!
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
MIT License