1.获取个人访问令牌
1.1 登录 azure
1.2 点击 Personal Access Tokens
1.3 点击 New Token
1.4 选择 Marketplace 权限
默认情况 Marketplace 是隐藏的, 需要点击 Show all scopes
Expiration: 过期日期(可选):设置令牌所需的到期日期
填写完 Name 后, 点击 Create
至此, Token 创建完毕, 记得保存
2. 在 github 仓库里设置 Token
保存 token 让 workflows 可以使用。
- Name: 后面 workflows 变量名字和这里保持一致,这里我们用
VSCODE_TOKEN - Secret: 第一步拿到的 Token
3. 编写 github workflows
创建文件 /.github/workflows/vsx-release.yml
name: VSX Release
on:
push:
branches:
# 当 push 到 master 分支时触发构建
- "master"
# - "vscode/**"
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Check out git repository
uses: actions/checkout@v4.1.1
- uses: pnpm/action-setup@v3
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
cache: pnpm
# 这里我用的是 pnpm, 你们也可以换成 npm
- name: pnpm install
run: pnpm install
# https://github.com/HaaLeo/publish-vscode-extension
- name: build vscode vsx
uses: HaaLeo/publish-vscode-extension@v1
id: publishVSX
with:
# 如果项目不在根目录, 可以修改这里
# packagePath: ./packages/vscode
# pat 是刚刚创建的 TOKEN
pat: ${{ secrets.VSCODE_TOKEN }}
# 忽略市场上已存在版本错误
skipDuplicate: true
registryUrl: https://marketplace.visualstudio.com
yarn: false
以上已经配置完成,只需要在下一步推送代码到 master 分支既可以看到效果
演示仓库: github.com/aooiuu/any-…
any-reader 是一款开源的多站点自定义规则聚合阅读工具, 支持小说、漫画、视频等
多端支持:VSCode插件、Electron、网页端、Docker、移动端(移动端是其它项目)
规则:由 XPath、JSONPath、CSS选择器、正则、JS脚本等组合而成
有时候, 我们希望 Github Action 生成 .vsx 到 release, 而不是直接发布,上面的仓库里也有例子, 这里不展开细说了。
参考网站: