#github-actions #openapi-generator #npm-publish
#github-действия #openapi-generator #npm-опубликовать
Вопрос:
Привет, мне интересно, возможен ли этот сценарий вообще.
Я использую openapi-generator с опцией typescript-axios generator и хочу знать, можно ли его автоматизировать, как показано ниже.
Это моя первоначальная мысль.
- Создайте проект и добавьте скрипт для генерации кода с помощью openapi-generator и компиляции. например) «build»: «openapi-generator-cli generate -g typescript-axios -o src -i https://myapi.com/swagger.json amp;amp; tsc»
- Загрузите на github и добавьте webhook, чтобы он получал уведомления, когда наш проект api получает PR или commit.
- Как только этот веб-хук получает уведомление, действие 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\" amp;amp; exit 1",
"build": "openapi-generator-cli generate -g typescript-axios -o src -i https://myapi.com/swagger.json --type-mappings=DateTime=Date amp;amp; 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
Ответ №1:
Я случайно добавил папку src и lib, и именно по этой причине мой опубликованный пакет не содержал этих папок. После исправления .gitignore все работает нормально.
Итак, по сути, мой проект будет содержать только package.json, и всякий раз, когда я создаю тег выпуска, он запускает рабочий процесс Github и публикует новый клиентский sdk, созданный openapi, в npm.