用于 Git 仓库和 Swift 包的 Swift CLI 发布工具
您可以使用 SPM 安装 Rocket
.package(url: "https://github.com/shibapm/Rocket", from: "0.1.0")
swift run rocket 1.0.0
,其中 1.0.0
是您要发布的版本创建一个名为 .rocket.yml
的文件,并将您的步骤放在其中
---
steps:
- script:
content: ruby Scripts/update_changelog.rb
- git_add:
paths:
- CHANGELOG.md
- commit:
message: "Releasing version $VERSION"
- tag
- push
使用 PackageConfig,您可以将配置放在 Package.swift
的末尾
#if canImport(PackageConfig)
import PackageConfig
let config = PackageConfiguration([
"rocket": ["steps":
[
["script": ["content": "ruby Scripts/update_changelog.rb"]]
["git_add": ["paths": ["CHANGELOG.md"]]],
["commit": ["message": "Releasing version $VERSION"]],
"tag",
"push"
]
]
]).write()
如果没有步骤定义,Rocket 将运行默认步骤
如果您使用 before
和/或 after
键
例如
---
before:
- script:
content: echo "Testing Release for $VERSION"
after:
- script:
content: echo "released $VERSION"
Rocket 将在 before 和 after 步骤之间执行默认步骤
echo "正在测试 $VERSION 的发布"
hide_dev_dependencies
git_add
commit
tag
unhide_dev_dependencies
git_add
commit (message: "取消隐藏开发依赖项")
push (remote=origin branch=master)
echo "已发布 $VERSION"
当您发布一个包时,您希望添加它作为依赖项的人只下载您的包真正需要的依赖项。
这就是 Rocket 引入开发依赖项概念的原因,如果您的包中有一些脚本,例如 swiftformat,您可以将它们添加为开发依赖项(通过在它们后面添加 // dev
),它们将被 hide_dev_dependencies
步骤注释掉,并从 unhide_dev_dependencies
中取消注释。
这也适用于仅从测试目标使用的依赖项,但在这种情况下,您也必须将测试目标添加为开发依赖项。
一些例子是
您可以在这里找到完整的步骤列表
您可以在步骤中使用变量 $VERSION
来引用您正在发布的版本
Package.swift
上的开发依赖项