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