name: pkg
run-name: pkging ${{inputs.pkg}}

on:
  workflow_call:
    inputs:
      pkg:
        required: true
        type: string
      dry-run:
        type: boolean
        default: false
      complain:
        type: boolean
        default: false
      invalidate-cloudfront:
        type: boolean
        default: true

jobs:
  plan:
    runs-on: ubuntu-latest
    outputs:
      matrix: ${{ steps.matrix.outputs.matrix }}
      pkg: ${{ steps.id.outputs.pkg-json }}
    steps:
      - uses: pkgxdev/setup@v2
      - uses: actions/checkout@v4
      - run: .github/scripts/get-matrix.ts ${{ inputs.pkg }}
        id: matrix
      - uses: pkgxdev/brewkit/id@v1
        id: id
        with:
          pkg: ${{ inputs.pkg }}

  pkg:
    needs: plan
    name: ${{matrix.platform.tinyname}}
    strategy:
      fail-fast: false
      matrix:
        platform: ${{ fromJSON(needs.plan.outputs.matrix) }}
    uses: ./.github/workflows/pkg-platform.yml
    permissions:
      issues: write
    with:
      pkg: ${{ needs.plan.outputs.pkg }}
      name: ${{ matrix.platform.name }}
      os: ${{ toJSON(matrix.platform.os) }}
      container: ${{ matrix.platform.container }}
      test-os: ${{ toJSON(matrix.platform.test-os) }}
      test-container: ${{ toJSON(matrix.platform.test-container) }}
      dry-run: ${{ inputs.dry-run }}
      tinyname: ${{ matrix.platform.tinyname }}
      complain: ${{ inputs.complain }}
      invalidate-cloudfront: ${{ inputs.invalidate-cloudfront }}
    secrets: inherit
