---
name: CI for docker images

# Only run when docker paths change
# yamllint disable-line rule:truthy
on:
  push:
    branches: [dev, beta, release]
    paths:
      - "docker/**"
      - ".github/workflows/ci-docker.yml"
      - "requirements*.txt"
      - "platformio.ini"
      - "script/platformio_install_deps.py"

  pull_request:
    paths:
      - "docker/**"
      - ".github/workflows/ci-docker.yml"
      - "requirements*.txt"
      - "platformio.ini"
      - "script/platformio_install_deps.py"

permissions:
  contents: read
  packages: read

concurrency:
  # yamllint disable-line rule:line-length
  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
  cancel-in-progress: true

jobs:
  check-docker:
    name: Build docker containers
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        arch: [amd64, armv7, aarch64]
        build_type: ["ha-addon", "docker", "lint"]
    steps:
      - uses: actions/checkout@v4.1.1
      - name: Set up Python
        uses: actions/setup-python@v5.0.0
        with:
          python-version: "3.9"
      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3.0.0
      - name: Set up QEMU
        uses: docker/setup-qemu-action@v3.0.0

      - name: Set TAG
        run: |
          echo "TAG=check" >> $GITHUB_ENV

      - name: Run build
        run: |
          docker/build.py \
            --tag "${TAG}" \
            --arch "${{ matrix.arch }}" \
            --build-type "${{ matrix.build_type }}" \
            build