添加github-webhook,使用openapi生成器生成客户端sdk



嗨,我想知道这种情况是否可能。

我正在使用openapi生成器和typescript axios生成器选项,并想知道它是否可以自动如下。

这是我最初的想法。

  1. 创建一个项目并添加脚本以使用openapi生成器生成代码并进行编译。ex(";build":"openapi生成器cli generate-g typescript axios-o src-ihttps://myapi.com/swagger.json&tsc">
  2. 上传到github并添加一个webhook,这样当我们的api项目获得PR或提交时,它就会收到通知
  3. 一旦这个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。

最新更新