# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
#
# SPDX-License-Identifier: MIT

---

name: Builds

on:
  pull_request:

jobs:
  build:
    strategy:
      fail-fast: true
      matrix:
        machine:
          - raspberrypi
          - raspberrypi0-2w-64
          - raspberrypi0-2w
          - raspberrypi0
          - raspberrypi0-wifi
          - raspberrypi2
          - raspberrypi3-64
          - raspberrypi3
          - raspberrypi4-64
          - raspberrypi4
          - raspberrypi-cm3
          - raspberrypi-cm
          - raspberrypi-armv7
          - raspberrypi-armv8
        image: [rpi-test-image]
        distro: [poky]
    runs-on: [self-hosted, Linux]
    name: ${{ matrix.machine }}/${{ matrix.image }}/poky/systemd
    env:
      DL_DIR: /var/lib/ci/yocto/downloads
      SSTATE_DIR: /var/lib/ci/yocto/sstate
    steps:
      - name: Checkout the code
        uses: actions/checkout@v2
        with:
          fetch-depth: 0
      - name: Define Yocto build files
        id: changed-files-specific
        uses: tj-actions/changed-files@v24
        with:
          files: |
            .github/actions/**
            .github/workflows/docker-images/yocto-builder/**
            .github/workflows/docker-images/*.sh
            .github/workflows/yocto-builds.yml
            classes/**'
            conf/**
            dynamic-layers/**
            files/**
            lib/**
            recipes-**
            wic/**
      - name: Build a temporary yocto-builder image
        uses: ./.github/actions/docker-build
        with:
          docker_image: yocto-builder
          id: ${{ github.event.number }}
        if: steps.changed-files-specific.outputs.any_changed == 'true'
      - name: Build the image
        run: |
          docker run --rm \
            -v "$GITHUB_WORKSPACE:/work:ro" \
            -v "$DL_DIR:$DL_DIR:rw" \
            -v "$SSTATE_DIR:$SSTATE_DIR:rw" \
            --env "BASE_REF=$GITHUB_BASE_REF" \
            --env "MACHINE=${{ matrix.machine }}" \
            --env "DISTRO=${{ matrix.distro }}" \
            --env "IMAGE=${{ matrix.image }}" \
            --env "DL_DIR=$DL_DIR" \
            --env "SSTATE_DIR=$SSTATE_DIR" \
            "yocto-builder-${{ github.event.number }}" \
            /entrypoint-build.sh
        if: steps.changed-files-specific.outputs.any_changed == 'true'
      - name: Cleanup temporary docker image
        uses: ./.github/actions/docker-clean-image
        with:
          docker_image: yocto-builder-${{ github.event.number }}
        if: always()
      - name: Cleanup dangling docker images
        uses: ./.github/actions/docker-clean-dangling
        if: always()
