问题描述
嗨,我想知道这种情况是否有可能。
我正在使用带有typescript-axios生成器选项的openapi-generator,并想知道它是否可以按以下方式自动化。
这是我最初的想法。
- 创建一个项目并添加脚本以使用openapi-generator生成并编译。 例如)“构建”:“ openapi-generator-cli生成-g typescript-axios -o src -i https://myapi.com/swagger.json && tsc“
- 上传到github并添加一个webhook,以便在我们的api项目获得PR或commit时获得通知。
- 此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}}
和我的package.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工作流程之上触发并将新的openapi生成的客户端sdk发布到npm。