Ubuntu 下 Swagger OpenAPI 持续集成方案
一 总体流程与工具选型
二 快速落地示例
示例一 静态站点 + GitLab CI
stages: - build - deploy variables: OPENAPI_GENERATOR_VERSION: "7.10.0" build-docs: stage: build image: node:18 script: - npm i -g @openapitools/openapi-generator-cli@$OPENAPI_GENERATOR_VERSION - openapi-generator-cli generate -i openapi.yaml -g html -o public/docs artifacts: paths: - public/docs deploy-pages: stage: deploy image: alpine needs: [build-docs] script: - mkdir -p /public - cp -r public/docs /public pages: path_prefix: /docs 示例二 Spring Boot 运行时文档 + Jenkins
<dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-ui</artifactId> <version>1.8.0</version> </dependency> pipeline { agent any stages { stage('Build') { steps { sh 'mvn -B package -DskipTests' } } stage('Test') { steps { sh 'mvn test' } } stage('Deploy') { steps { sh ''' docker build -t myapi:$BUILD_NUMBER . docker stop myapi || true docker rm myapi || true docker run -d --name myapi -p 8080:8080 myapi:$BUILD_NUMBER ''' } } } } 三 规范校验与自动化测试
openapi-generator-cli validate -i openapi.yaml pip install schemathesis schemathesis run openapi.yaml --base-url http://localhost:8080 四 部署与发布策略
docker run -d -p 38081:8080 \ -e SWAGGER_JSON=/spec/openapi.yaml \ -v $PWD/openapi.yaml:/spec/openapi.yaml \ swaggerapi/swagger-ui:latest