diff --git a/.github/workflows/update-api.yml b/.github/workflows/update-api.yml new file mode 100644 index 0000000000..2f0690cf2f --- /dev/null +++ b/.github/workflows/update-api.yml @@ -0,0 +1,83 @@ +name: Update API json doc + +on: + schedule: + - cron: '0 1 * * *' + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +jobs: + update-api: + name: Update API doc json + + runs-on: ubuntu-latest + + strategy: + matrix: + ps_branch: + - develop + + steps: + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: 8.1 + extensions: mbstring, intl, gd, xml, dom, json, fileinfo, curl, zip, iconv + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + # Checkout PrestaShop + - uses: actions/checkout@v4 + name: Checkout PrestaShop repository + with: + repository: PrestaShop/PrestaShop + ref: ${{ matrix.ps_branch }} + + # Now install the shop + - name: Setup Environment + timeout-minutes: 15 + uses: .github/actions/setup-env + with: + PHP_VERSION: 8.1 + ENABLE_SSL: 'true' + INSTALL_AUTO: 'true' + - name: Setup Environment failure + uses: .github/actions/setup-env-export-logs + with: + DOCKER_PREFIX: prestashop + ARTIFACT_NAME: setup-symfony-console-${{ matrix.app-id }} + ENABLE_SSL: 'true' + INSTALL_AUTO: 'true' + if: failure() + + - name: Check folder + working-directory: docs + run: | + ls -l ${{ github.workspace }} + ls -l ${{ github.workspace }}/var + + # Checkout Docs + - uses: actions/checkout@v4 + name: Checkout Docs + with: + path: ${{ github.workspace }}/var/docs + + - name: Check folder + working-directory: docs + run: | + ls -l ${{ github.workspace }}/var/docs + + # Export the JSON Api file + - name: Execute core command to export the JSON API doc + run: | + ls -l ${{ github.workspace }}/docs + docker ps + docker exec docs-prestashop-git-1 php -d memory_limit=-1 ./bin/console prestashop:generate:apidoc > ${{ github.workspace }}/docs/admin-api/swagger-docs/openapi.json + working-directory: prestashop + + - name: Check modifications and commit if any + working-directory: docs + run: | + ls -l . + git status