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: jobs: main: runs-on: ubuntu-latest strategy: fail-fast: false matrix: buildx-version: - "" - "latest" - "v0.4.1" - "cloud:latest" - "cloud:v0.11.2-desktop.2" - "lab:latest" steps: - name: Checkout uses: actions/checkout@v6 - name: Set up Docker Buildx id: buildx uses: ./ with: version: ${{ matrix.buildx-version }} - name: Nodes output run: | cat << EOF ${{ steps.buildx.outputs.nodes }} EOF multi: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v6 - name: Set up Docker Buildx 1 uses: ./ - name: Set up Docker Buildx 2 uses: ./ error: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v6 - name: Stop docker run: | sudo systemctl stop docker docker.socket - name: Set up Docker Buildx id: buildx continue-on-error: true uses: ./ - name: Check run: | echo "${{ toJson(steps.buildx) }}" if [ "${{ steps.buildx.outcome }}" != "failure" ] || [ "${{ steps.buildx.conclusion }}" != "success" ]; then echo "::error::Should have failed" exit 1 fi - name: Dump context if: always() uses: crazy-max/ghaction-dump-context@v2 debug: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v6 - name: Create Dockerfile run: | cat > ./Dockerfile <- --privileged --health-cmd "docker info" --health-interval 10s --health-timeout 5s --health-retries 5 env: DOCKER_TLS_CERTDIR: "" ports: - 2375:2375 steps: - name: Checkout uses: actions/checkout@v6 - name: Create context run: | docker context create mycontext --docker host=tcp://127.0.0.1:2375 - name: Check context run: | docker --context mycontext info - name: Set up Docker Buildx uses: ./ with: endpoint: mycontext env: DOCKER_CONTEXT: mycontext buildkitd-config: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v6 - name: Create buildkitd conf run: | cat > /tmp/buildkitd.toml < ./Dockerfile < ./Dockerfile < ./Dockerfile </dev/null 2>&1; then sudo dpkg -r --force-depends docker-ce-cli docker-buildx-plugin else sudo apt-get purge -y moby-cli moby-buildx fi - name: Set up Docker Buildx uses: ./ - name: Create Dockerfile run: | cat > ./Dockerfile </dev/null 2>&1; then sudo dpkg -r --force-depends docker-ce-cli docker-buildx-plugin else sudo apt-get purge -y moby-cli moby-buildx fi - name: Set up Docker Buildx uses: ./ with: version: ${{ matrix.buildx-version }} - name: Create Dockerfile run: | cat > ./Dockerfile < ./Dockerfile <