[#31] docs: code agent #10
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Deploy Swagger UI | |
| on: | |
| push: | |
| branches: | |
| - main | |
| workflow_dispatch: | |
| jobs: | |
| generate-openapi: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up JDK 24 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '24' | |
| distribution: 'oracle' | |
| - name: Setup Gradle | |
| uses: gradle/actions/setup-gradle@v3 | |
| - name: Grant execute permission for gradlew | |
| run: chmod +x gradlew | |
| - name: Generate OpenAPI documentation | |
| run: ./gradlew openapi3 | |
| - name: Copy OpenAPI files to server | |
| uses: appleboy/scp-action@master | |
| with: | |
| host: ${{ secrets.SERVER_HOST }} | |
| username: ${{ secrets.SERVER_USERNAME }} | |
| password: ${{ secrets.SERVER_PASSWORD }} | |
| key: ${{ secrets.SSH_PRIVATE_KEY }} | |
| source: "build/api-spec/openapi3.yaml" | |
| target: "~/app/docs" | |
| strip_components: 2 | |
| overwrite: true | |
| deploy: | |
| needs: generate-openapi | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Deploy Swagger UI | |
| uses: appleboy/[email protected] | |
| with: | |
| host: ${{ secrets.SERVER_HOST }} | |
| username: ${{ secrets.SERVER_USERNAME }} | |
| password: ${{ secrets.SERVER_PASSWORD }} | |
| key: ${{ secrets.SSH_PRIVATE_KEY }} | |
| script: | | |
| # Check if container is already running | |
| if docker ps --format '{{.Names}}' | grep -q '^team-ace-swagger$'; then | |
| echo "✅ Swagger UI container is already running. Skipping deployment." | |
| exit 0 | |
| fi | |
| # Remove stopped container if exists | |
| docker rm team-ace-swagger 2>/dev/null || true | |
| echo "🚀 Starting Swagger UI container..." | |
| # Run Swagger UI container | |
| docker run -d \ | |
| --name team-ace-swagger \ | |
| --restart unless-stopped \ | |
| -p 8081:8080 \ | |
| -e SWAGGER_JSON=/app/openapi3.yaml \ | |
| -e FILTER=true \ | |
| -e TRY_IT_OUT_ENABLED=true \ | |
| -v ~/app/docs/openapi3.yaml:/app/openapi3.yaml:ro \ | |
| swaggerapi/swagger-ui:latest | |
| echo "✅ Swagger UI container started successfully!" |