name: ci-subaction

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

on:
  workflow_dispatch:
  schedule:
    - cron: '0 10 * * *'
  push:
    branches:
      - 'master'
      - 'releases/v*'
    tags:
      - 'v*'
    paths:
      - '.github/workflows/ci-subaction.yml'
      - 'subaction/**'
      - 'test/**'
  pull_request:
    paths:
      - '.github/workflows/ci-subaction.yml'
      - 'subaction/**'
      - 'test/**'

jobs:
  list-targets-group:
    runs-on: ubuntu-latest
    steps:
      -
        name: Checkout
        uses: actions/checkout@v4
      -
        name: Matrix gen
        id: gen
        uses: ./subaction/list-targets
        with:
          workdir: ./test/group
      -
        name: Check targets
        uses: actions/github-script@v7
        with:
          script: |
            const targets = `${{ steps.gen.outputs.targets }}`;
            if (!targets) {
              core.setFailed('No targets generated');
            }
            core.info(`targets=${targets}`);

  list-targets-group-matrix:
    runs-on: ubuntu-latest
    steps:
      -
        name: Checkout
        uses: actions/checkout@v4
      -
        name: Matrix gen
        id: gen
        uses: ./subaction/list-targets
        with:
          workdir: ./test/group-matrix
          target: validate
      -
        name: Check targets
        uses: actions/github-script@v7
        with:
          script: |
            const targets = `${{ steps.gen.outputs.targets }}`;
            if (!targets) {
              core.setFailed('No targets generated');
            }
            core.info(`targets=${targets}`);

  list-targets-multi-files:
    runs-on: ubuntu-latest
    steps:
      -
        name: Checkout
        uses: actions/checkout@v4
      -
        name: Matrix gen
        id: gen
        uses: ./subaction/list-targets
        with:
          workdir: ./test/multi-files
          files: |
            docker-bake.json
            docker-bake.hcl
      -
        name: Check targets
        uses: actions/github-script@v7
        with:
          script: |
            const targets = `${{ steps.gen.outputs.targets }}`;
            if (!targets) {
              core.setFailed('No targets generated');
            }
            core.info(`targets=${targets}`);
