嗨,我想知道这种情况是否可能。
我正在使用openapi生成器和typescript axios生成器选项,并想知道它是否可以自动如下。
这是我最初的想法。
- 创建一个项目并添加脚本以使用openapi生成器生成代码并进行编译。ex(";build":"openapi生成器cli generate-g typescript axios-o src-ihttps://myapi.com/swagger.json&;tsc">
- 上传到github并添加一个webhook,这样当我们的api项目获得PR或提交时,它就会收到通知
- 一旦这个webhook收到通知,Github操作就会触发并生成新的客户端sdk和编译的lib,脚本位于1号
我厌倦了下面的工作流程,但发布的包不包含生成的代码。如有任何帮助,我们将不胜感激。
name: Node.js Package
on:
release:
types: [created]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: 12
- run: npm ci
publish-npm:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: 12
registry-url: https://registry.npmjs.org/
- run: npm ci
- run: npm run-script build
- run: npm publish
env:
NODE_AUTH_TOKEN: ${{secrets.npm_token}}
和我的包.json
{
"name": "my-api-client",
"version": "1.0.0",
"description": "Openapi generated typescript-axios client",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build": "openapi-generator-cli generate -g typescript-axios -o src -i https://myapi.com/swagger.json --type-mappings=DateTime=Date && tsc"
},
"keywords": [
"typescript-axios",
"client"
],
"license": "ISC",
"dependencies": {
"axios": "^0.21.0",
"typescript": "^3.8.3"
},
"devDependencies": {
"@openapitools/openapi-generator-cli": "^2.0.3",
"@types/node": "^13.9.0"
}
}```
Thank you
我不小心添加了src和lib文件夹,这就是我发布的包不包含这些文件夹的原因。修复后。gitignore一切正常。
因此,基本上,我的项目只包含package.json,每当我创建一个发布标签时,它都会触发Github之上的工作流,并向npm发布一个新的openapi生成的客户端sdk。