Добавить github webhook для генерации клиентского sdk с помощью openapi-generator

Привет, мне интересно, возможен ли этот сценарий.

Я использую openapi-generator с опцией генератора typescript-axios и хочу знать, можно ли его автоматизировать, как показано ниже.

Это моя первоначальная мысль.

  1. Создайте проект и добавьте скрипт для генерации кода с помощью openapi-generator и скомпилируйте. ex) build: openapi-generator-cli generate -g typescript-axios -o src -i https://myapi.com/swagger.json && tsc
  2. Загрузите в github и добавьте веб-перехватчик, чтобы он получал уведомления, когда наш проект api получает PR или коммит.
  3. Как только этот веб-перехватчик получает уведомление, действие Github запускается и генерирует новый клиентский sdk и скомпилировал библиотеку со сценарием под номером 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



person Hyounoo Sung    schedule 25.10.2020    source источник


Ответы (1)


Я случайно добавил папку src и lib, и по этой причине мой опубликованный пакет не содержал этих папок. После исправления .gitignore все работает нормально.

Итак, в основном мой проект будет содержать только package.json, и всякий раз, когда я создаю тег выпуска, он запускается выше рабочего процесса Github и публикует новый клиентский sdk, созданный openapi, в npm.

person Hyounoo Sung    schedule 25.10.2020