name: ci concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true on: workflow_dispatch: schedule: - cron: '0 10 * * *' push: branches: - 'master' - 'releases/v*' tags: - 'v*' pull_request: env: DOCKER_VERSION: v27.3.1 DOCKER_BUILD_SUMMARY: false jobs: main: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: - ubuntu-latest #- macos-14 # no virt: https://github.com/docker/actions-toolkit/issues/317 - macos-13 - windows-latest version: - v27.3.1 - type=image,tag=27.3.1 steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Docker uses: ./ with: version: ${{ matrix.version }} channel: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: - ubuntu-latest #- macos-14 # no virt: https://github.com/docker/actions-toolkit/issues/317 - macos-13 - windows-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Docker uses: ./ with: version: ${{ env.DOCKER_VERSION }} channel: test daemon-config: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: - ubuntu-latest #- macos-14 # no virt: https://github.com/docker/actions-toolkit/issues/317 - macos-13 - windows-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Docker uses: ./ with: version: ${{ env.DOCKER_VERSION }} daemon-config: | { "debug": true, "features": { "containerd-snapshotter": true } } context: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: - ubuntu-latest #- macos-14 # no virt: https://github.com/docker/actions-toolkit/issues/317 - macos-13 - windows-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Docker uses: ./ with: version: ${{ env.DOCKER_VERSION }} context: foo - name: Check context run: | docker context inspect foo lima-start-args: #runs-on: macos-14 # no virt: https://github.com/docker/actions-toolkit/issues/317 runs-on: macos-13 steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Docker uses: ./ with: version: ${{ env.DOCKER_VERSION }} env: LIMA_START_ARGS: --cpus 4 --memory 8 build-linux: runs-on: ubuntu-latest strategy: fail-fast: false matrix: containerd: - containerd-system - containerd-tarball steps: - name: Checkout uses: actions/checkout@v4 - name: Uninstall containerd if: matrix.containerd == 'containerd-tarball' run: | sudo apt-get remove -y containerd.io - name: Set up Docker uses: ./ with: version: ${{ env.DOCKER_VERSION }} - name: Start registry run: | docker run -d -p 5000:5000 --restart=always --name registry registry:2 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 with: driver: docker driver-opts: network=host - name: Build and push uses: docker/build-push-action@v6 with: context: ./test push: true tags: | localhost:5000/name/app:latest - name: Inspect run: | docker buildx imagetools inspect localhost:5000/name/app:latest --format '{{json .}}' build-macos: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: #- macos-14 # no virt: https://github.com/docker/actions-toolkit/issues/317 - macos-13 steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Docker uses: ./ with: version: ${{ env.DOCKER_VERSION }} - name: Start registry run: | docker run -d -p 5000:5000 --restart=always --name registry registry:2 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 with: driver: docker driver-opts: network=host - name: Build and push uses: docker/build-push-action@v6 with: context: ./test push: true tags: | localhost:5000/name/app:latest - name: Inspect run: | docker buildx imagetools inspect localhost:5000/name/app:latest --format '{{json .}}' build-windows: runs-on: windows-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Docker uses: ./ with: version: ${{ env.DOCKER_VERSION }} - name: Build working-directory: ./test run: | docker build -f win.Dockerfile -t test . - name: Inspect run: | docker image inspect test set-host: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Docker uses: ./ with: version: ${{ env.DOCKER_VERSION }} set-host: true - name: List contexts run: | docker context ls rootless: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Docker uses: ./ with: version: ${{ env.DOCKER_VERSION }} rootless: true - name: List contexts run: | docker context ls tcp: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: - ubuntu-latest #- macos-14 # no virt: https://github.com/docker/actions-toolkit/issues/317 - macos-13 - windows-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Docker id: setup_docker uses: ./ with: version: ${{ env.DOCKER_VERSION }} tcp-port: 2378 - name: Check docker info through TCP run: | docker info env: DOCKER_HOST: ${{ steps.setup_docker.outputs.tcp }}