| name: e2e |
| |
| # Default to 'contents: read', which grants actions to read commits. |
| # |
| # If any permission is set, any permission not included in the list is |
| # implicitly set to "none". |
| # |
| # see https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions |
| permissions: |
| contents: read |
| |
| concurrency: |
| group: ${{ github.workflow }}-${{ github.ref }} |
| cancel-in-progress: true |
| |
| on: |
| workflow_dispatch: |
| push: |
| branches: |
| - 'master' |
| - '[0-9]+.[0-9]+' |
| - '[0-9]+.x' |
| tags: |
| - 'v*' |
| pull_request: |
| |
| jobs: |
| e2e: |
| runs-on: ubuntu-24.04 |
| strategy: |
| fail-fast: false |
| matrix: |
| target: |
| - non-experimental |
| - experimental |
| - connhelper-ssh |
| base: |
| - alpine |
| - debian |
| engine-version: |
| - 27.0 # latest |
| - 26.1 # 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: | |
| if [ ! -f /etc/docker/daemon.json ]; then |
| # ubuntu 24.04 runners no longer have a default daemon.json present |
| sudo mkdir -p /etc/docker/ |
| echo '{"experimental": true}' | sudo tee /etc/docker/daemon.json |
| else |
| # but if there is one; let's patch it to keep other options that may be set. |
| sudo jq '.experimental = true' < /etc/docker/daemon.json > /tmp/docker.json |
| sudo mv /tmp/docker.json /etc/docker/daemon.json |
| fi |
| 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 }} |