
jq
是一个轻量且强大的命令行工具,用于解析、过滤、修改、以及格式化 JSON 数据 。它在 GitHub Actions 中非常常用,因为很多配置文件(比如 package.json
)都是 JSON 格式的。
在 GitHub Actions 的 Ubuntu Runner(比如 ubuntu-latest
)中,jq
是预装的,你可以直接使用它。
🧩 常用 jq
方法和语法
假设我们有一个简单的 package.json
:
javascript
{
"name": "my-app",
"version": "1.2.3",
"scripts": {
"build": "vite build"
},
"dependencies": {
"vue": "^3.2.0"
}
}
📌 1. 读取某个字段
go
jq .version package.json
输出(带引号):
arduino
"1.2.3"
如果你只想要值,不要引号:
go
jq -r .version package.json
输出:
1.2.3
📌 2. 读取嵌套字段
go
jq -r .scripts.build package.json
输出:
vite build
📌 3. 获取多个字段
go
jq -r '{name: .name, version: .version}' package.json
输出:
json
{
"name": "my-app",
"version": "1.2.3"
}
📌 4. 格式化输出(美化 JSON)
go
jq . package.json
会美化输出整个 package.json
内容。
📌 5. 把某个字段赋值给变量(在 GitHub Actions 中)
ini
VERSION=$(jq -r .version package.json)
然后就可以用 $VERSION
了。
🛠️ GitHub Actions 中的实战小片段
javascript
- name: Get version from package.json
id: get_version
run: echo "VERSION=$(jq -r .version package.json)" >> $GITHUB_ENV
- name: Use version
run: echo "Package version is $VERSION"