name: e2e

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

on:
  workflow_dispatch:
  push:
    branches:
      - 'master'
      - '[0-9]+.[0-9]+'
    tags:
      - 'v*'
  pull_request:

jobs:
  e2e:
    runs-on: ubuntu-22.04
    strategy:
      fail-fast: false
      matrix:
        target:
          - non-experimental
          - experimental
          - connhelper-ssh
        base:
          - alpine
          - debian
        engine-version:
          - 25.0  # latest
          - 24.0  # latest - 1
          - 23.0  # mirantis lts
          # TODO(krissetto) 19.03 needs a look, doesn't work ubuntu 22.04 (cgroup errors). 
          # we could have a separate job that tests it against ubuntu 20.04
    steps:
      -
        name: Checkout
        uses: actions/checkout@v4
      -
        name: Update daemon.json
        run: |
          sudo jq '.experimental = true' < /etc/docker/daemon.json > /tmp/docker.json
          sudo mv /tmp/docker.json /etc/docker/daemon.json
          sudo cat /etc/docker/daemon.json
          sudo service docker restart
          docker version
          docker info
      -
        name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3
      -
        name: Run ${{ matrix.target }}
        run: |
          make -f docker.Makefile test-e2e-${{ matrix.target }}
        env:
          BASE_VARIANT: ${{ matrix.base }}
          ENGINE_VERSION: ${{ matrix.engine-version }}
          TESTFLAGS: -coverprofile=/tmp/coverage/coverage.txt
      -
        name: Send to Codecov
        uses: codecov/codecov-action@v4
        with:
          file: ./build/coverage/coverage.txt
          token: ${{ secrets.CODECOV_TOKEN }}
