name: Release
permissions:
  contents: write 
  pull-requests: write

on:
  workflow_dispatch:
    inputs:
      tag:
        description: 'API Platform core tag'
        required: true

concurrency:
  group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
  cancel-in-progress: true

jobs:
  tests:
    name: Update api-platform/core
    runs-on: ubuntu-latest
    steps:
      -
        name: Checkout
        uses: actions/checkout@v4
      -
        name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3
      -
        name: Build Docker images
        uses: docker/bake-action@v6
        with:
          pull: true
          load: true
          files: |
            compose.yaml
            compose.override.yaml
          set: |
            php.cache-from=type=gha,scope=php-${{github.ref}}
            php.cache-from=type=gha,scope=php-refs/heads/main
            php.cache-to=type=gha,scope=php-${{github.ref}},mode=max
            pwa.cache-from=type=gha,scope=pwa-${{github.ref}}
            pwa.cache-from=type=gha,scope=pwa-refs/heads/main
            pwa.cache-to=type=gha,scope=pwa-${{github.ref}},mode=max
      -
        name: Update API Platform
        run: docker compose run php composer update api-platform/symfony:${{ inputs.tag }} api-platform/doctrine-orm:${{ inputs.tag }}
      -
        name: Create Pull Request
        uses: peter-evans/create-pull-request@v6
        with:
          commit-message: 'chore: api-platform ${{ inputs.tag }}'
          branch: api-platform-core
          title: 'chore: api-platform ${{ inputs.tag }}'
          token: ${{ secrets.RELEASE_TOKEN }}
          body: 'Updates api-platform/core to ${{ inputs.tag }}'
