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@v4
        with:
          pull: true
          load: true
          files: |
            compose.yaml
            compose.override.yaml
          set: |
            *.cache-from=type=gha,scope=${{github.ref}}
            *.cache-from=type=gha,scope=refs/heads/main
            *.cache-to=type=gha,scope=${{github.ref}},mode=max
      -
        name: Update API Platform
        run: docker compose run php composer update api-platform/core:${{ 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 }}'
          body: 'Updates api-platform/core to ${{ inputs.tag }}'
