name: Integration Test

on:
    pull_request:
        branches: [ master ]

env:
    DEBUGFAIL: "${{ secrets.ACTIONS_STEP_DEBUG && 'rd.debug' }}"

jobs:
    test:
        runs-on: ubuntu-latest
        timeout-minutes: 30
        concurrency:
            group: ${{ github.workflow }}-${{ github.ref }}-${{ matrix.container }}-${{ matrix.test }}
            cancel-in-progress: true
        strategy:
            matrix:
                container: [
                        "arch:latest",
                        "debian:latest",
                        "fedora:latest",
                        "opensuse:latest",
                ]
                test: [
                        "01",
                        "02",
                        "03",
                        "04",
                        "10",
                        "11",
                        "12",
                        "13",
                        "14",
                        "15",
                        "16",
                        "17",
                        "62",
                        "98",
                ]
            fail-fast: false
        container:
            image: ghcr.io/dracutdevs/${{ matrix.container }}
            options: "--privileged -v /dev:/dev"
        steps:
            -   name: "Checkout Repository"
                uses: actions/checkout@v3
                with:
                    fetch-depth: 0

            -   name: "${{ matrix.container }} TEST-${{ matrix.test }}"
                run: ./tools/test-github.sh "TEST-${{ matrix.test }}" ${{ matrix.test }}
    network:
        runs-on: ubuntu-latest
        timeout-minutes: 45
        concurrency:
            group: ${{ github.workflow }}-${{ github.ref }}-${{ matrix.container }}-${{ matrix.test }}-${{ matrix.network }}
            cancel-in-progress: true
        strategy:
            matrix:
                container: [
                        "fedora:latest",
                ]
                network: [
                        "network-manager",
                        "network-legacy",
                        #"systemd-networkd",
                        #"network-wicked",
                        #"connman",
                ]
                test: [
                        "20",
                        "30",
                        "35",
                        "40",
                        "50",
                ]
            fail-fast: false
        container:
            image: ghcr.io/dracutdevs/${{ matrix.container }}
            options: "--privileged -v /dev:/dev"
        steps:
            -   name: "Checkout Repository"
                uses: actions/checkout@v3
                with:
                    fetch-depth: 0

            -   name: "${{ matrix.container }} TEST-${{ matrix.test }}"
                run: USE_NETWORK=${{ matrix.network }} ./tools/test-github.sh "TEST-${{ matrix.test }}" ${{ matrix.test }}
    openrc-musl:
        runs-on: ubuntu-latest
        timeout-minutes: 45
        concurrency:
            group: ${{ github.workflow }}-${{ github.ref }}-${{ matrix.container }}-${{ matrix.test }}
            cancel-in-progress: true
        strategy:
            matrix:
                container: [
                        "gentoo:latest",
                ]
                test: [
                        "16",
                ]
            fail-fast: false
        container:
            image: ghcr.io/dracutdevs/${{ matrix.container }}
            options: "--privileged -v /dev:/dev"
        steps:
            -   name: "Checkout Repository"
                uses: actions/checkout@v1
                with:
                    fetch-depth: 0

            -   name: "${{ matrix.container }} TEST-${{ matrix.test }}"
                run: ./tools/test-github.sh "TEST-${{ matrix.test }}" ${{ matrix.test }}
