name: 'Tests'
on:
    push:
jobs:
    test:
        strategy:
            matrix:
                suite:
                    - unit
        runs-on: ubuntu-latest
        steps:
            -   name: Checkout the repository
                uses: actions/checkout@v4
                with:
                    fetch-depth: 1000
                    submodules: recursive
            # ------------------------------------------------------------------------------
            # Checkout slic
            # ------------------------------------------------------------------------------
            -   name: Checkout slic
                uses: actions/checkout@v4
                with:
                    repository: stellarwp/slic
                    ref: main
                    path: slic
                    fetch-depth: 1
            # ------------------------------------------------------------------------------
            # Prepare our composer cache directory
            # ------------------------------------------------------------------------------
            -   name: Get Composer Cache Directory
                id: get-composer-cache-dir
                run: |
                    echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
            -   uses: actions/cache@v4
                id: composer-cache
                with:
                    path: ${{ steps.get-composer-cache-dir.outputs.dir }}
                    key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
                    restore-keys: |
                        ${{ runner.os }}-composer-
            # ------------------------------------------------------------------------------
            # Initialize slic
            # ------------------------------------------------------------------------------
            -   name: Set up slic env vars
                run: |
                    echo "SLIC_BIN=${GITHUB_WORKSPACE}/slic/slic" >> $GITHUB_ENV
                    echo "SLIC_WP_DIR=${GITHUB_WORKSPACE}/slic/_wordpress" >> $GITHUB_ENV
                    echo "SLIC_WORDPRESS_DOCKERFILE=Dockerfile.base" >> $GITHUB_ENV
            -   name: Set run context for slic
                run: echo "SLIC=1" >> $GITHUB_ENV && echo "CI=1" >> $GITHUB_ENV
            -   name: Start ssh-agent
                run: |
                    mkdir -p "${HOME}/.ssh"
                    ssh-agent -a /tmp/ssh_agent.sock
            -   name: Export SSH_AUTH_SOCK env var
                run: echo "SSH_AUTH_SOCK=/tmp/ssh_agent.sock" >> $GITHUB_ENV
            -   name: Set up slic for CI
                run: |
                    cd ${GITHUB_WORKSPACE}/..
                    ${SLIC_BIN} here
                    ${SLIC_BIN} interactive off
                    ${SLIC_BIN} build-prompt off
                    ${SLIC_BIN} build-subdir off
                    ${SLIC_BIN} xdebug off
                    ${SLIC_BIN} debug on
                    ${SLIC_BIN} info
                    ${SLIC_BIN} config
            -   name: Set up StellarWP DB
                run: |
                    ${SLIC_BIN} use validation
                    ${SLIC_BIN} composer install --ignore-platform-reqs
            -   name: Run suites
                run: ${SLIC_BIN} run ${{ matrix.suite }} --ext DotReporter
