EscolaLMS/Files

View on GitHub
.github/workflows/swagger.yml

Summary

Maintainability
Test Coverage
name: Generate Swagger Documentation

on:
  push:
    branches:
      - main
      - master

jobs:
  phpunit-code-coverage:
    runs-on: ubuntu-latest
    container:
      image: escolalms/php:8.2

    steps:
      - name: Instantiate package
        uses: actions/checkout@v2

      - name: Setup environment
        run: cp -r env/codecov/. .

      - name: add Swagger main annotaion
        run: php -r "file_put_contents('src/Http/Controllers/Swagger/FileApiSwagger.php', str_replace('SWAGGER_VERSION', '@OA\Info(title=\"EscolaLMS\", version=\"0.0.1\")', file_get_contents('src/Http/Controllers/Swagger/FileApiSwagger.php')));"

      - name: Update composer
        run: composer update

      - name: Require composer swagger package
        run: composer require darkaonline/l5-swagger:8.1.0

      - name: Discover packages
        run: vendor/bin/testbench package:discover --ansi

      - name: Generate YAML openapi
        run: vendor/bin/openapi --format json -b env/openapi/config.php -o openapi.json src

      - name: Generate Swagger UI
        uses: Legion2/swagger-ui-action@v1
        with:
          output: swagger-ui
          spec-file: openapi.json

      - name: Install git
        run: apt-get install git -y

      - name: Deploy to GitHub Pages
        uses: peaceiris/actions-gh-pages@v3
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_dir: swagger-ui