From e2526f537ba4466373f94580dd6e1948a8bcda94 Mon Sep 17 00:00:00 2001 From: Jake Coffman Date: Wed, 24 Sep 2025 10:12:36 -0500 Subject: [PATCH 1/9] ensure ARM64 builds don't break --- .github/workflows/arm64-build.yml | 56 +++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 .github/workflows/arm64-build.yml diff --git a/.github/workflows/arm64-build.yml b/.github/workflows/arm64-build.yml new file mode 100644 index 00000000000..4503f325866 --- /dev/null +++ b/.github/workflows/arm64-build.yml @@ -0,0 +1,56 @@ +name: ARM64 Build + +on: + pull_request: + +jobs: + build-arm64: + runs-on: macos-latest # arm64 runner + strategy: + fail-fast: false + matrix: + suite: + - { path: bin, name: dry_run, ecosystem: common } + - { path: bun, name: bun, ecosystem: bun } + - { path: bundler, name: bundler, ecosystem: bundler } + - { path: cargo, name: cargo, ecosystem: cargo } + - { path: common, name: common, ecosystem: common } + - { path: composer, name: composer, ecosystem: composer } + - { path: conda, name: conda, ecosystem: conda } + - { path: devcontainers, name: devcontainers, ecosystem: devcontainers } + - { path: docker_compose, name: docker_compose, ecosystem: docker-compose } + - { path: docker, name: docker, ecosystem: docker } + - { path: dotnet_sdk, name: dotnet_sdk, ecosystem: dotnet-sdk } + - { path: elm, name: elm, ecosystem: elm } + - { path: git_submodules, name: git_submodules, ecosystem: gitsubmodule } + - { path: github_actions, name: github_actions, ecosystem: github-actions } + - { path: go_modules, name: go_module, ecosystem: gomod } + - { path: gradle, name: gradle, ecosystem: gradle } + - { path: helm, name: helm, ecosystem: helm } + - { path: hex, name: hex, ecosystem: mix } + - { path: maven, name: maven, ecosystem: maven } + - { path: npm_and_yarn, name: npm_and_yarn, ecosystem: npm } + - { path: nuget, name: nuget, ecosystem: nuget } + - { path: pub, name: pub, ecosystem: pub } + - { path: python, name: python_slow, ecosystem: pip } + - { path: python, name: python, ecosystem: pip } + - { path: rust_toolchain, name: rust_toolchain, ecosystem: rust-toolchain } + - { path: swift, name: swift, ecosystem: swift } + - { path: terraform, name: terraform, ecosystem: terraform } + - { path: uv, name: uv, ecosystem: uv } + - { path: vcpkg, name: vcpkg, ecosystem: vcpkg } + steps: + - name: Checkout code + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + submodules: recursive + + - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 + id: changes + with: + token: '' # use git commands to avoid excessive rate limit usage + filters: .github/ci-filters.yml + + - name: Build ${{ matrix.suite.name }} image + if: steps.changes.outputs[matrix.suite.path] == 'true' + run: script/build ${{ matrix.suite.path }} From eb5cf6029bccf07cdf65930ecbfb4a4d11af73a8 Mon Sep 17 00:00:00 2001 From: Jake Coffman Date: Wed, 24 Sep 2025 10:23:14 -0500 Subject: [PATCH 2/9] common is not an ecosystem --- .github/workflows/arm64-build.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/arm64-build.yml b/.github/workflows/arm64-build.yml index 4503f325866..ff326327f25 100644 --- a/.github/workflows/arm64-build.yml +++ b/.github/workflows/arm64-build.yml @@ -14,7 +14,6 @@ jobs: - { path: bun, name: bun, ecosystem: bun } - { path: bundler, name: bundler, ecosystem: bundler } - { path: cargo, name: cargo, ecosystem: cargo } - - { path: common, name: common, ecosystem: common } - { path: composer, name: composer, ecosystem: composer } - { path: conda, name: conda, ecosystem: conda } - { path: devcontainers, name: devcontainers, ecosystem: devcontainers } From 0e6beb32ef23551d3b3bf72942e1a97bfd6b12e6 Mon Sep 17 00:00:00 2001 From: Jake Coffman Date: Wed, 24 Sep 2025 10:47:23 -0500 Subject: [PATCH 3/9] use ci instead of a separate copy that can diverge --- .github/workflows/arm64-build.yml | 55 ------------------------------- .github/workflows/ci.yml | 5 ++- 2 files changed, 4 insertions(+), 56 deletions(-) delete mode 100644 .github/workflows/arm64-build.yml diff --git a/.github/workflows/arm64-build.yml b/.github/workflows/arm64-build.yml deleted file mode 100644 index ff326327f25..00000000000 --- a/.github/workflows/arm64-build.yml +++ /dev/null @@ -1,55 +0,0 @@ -name: ARM64 Build - -on: - pull_request: - -jobs: - build-arm64: - runs-on: macos-latest # arm64 runner - strategy: - fail-fast: false - matrix: - suite: - - { path: bin, name: dry_run, ecosystem: common } - - { path: bun, name: bun, ecosystem: bun } - - { path: bundler, name: bundler, ecosystem: bundler } - - { path: cargo, name: cargo, ecosystem: cargo } - - { path: composer, name: composer, ecosystem: composer } - - { path: conda, name: conda, ecosystem: conda } - - { path: devcontainers, name: devcontainers, ecosystem: devcontainers } - - { path: docker_compose, name: docker_compose, ecosystem: docker-compose } - - { path: docker, name: docker, ecosystem: docker } - - { path: dotnet_sdk, name: dotnet_sdk, ecosystem: dotnet-sdk } - - { path: elm, name: elm, ecosystem: elm } - - { path: git_submodules, name: git_submodules, ecosystem: gitsubmodule } - - { path: github_actions, name: github_actions, ecosystem: github-actions } - - { path: go_modules, name: go_module, ecosystem: gomod } - - { path: gradle, name: gradle, ecosystem: gradle } - - { path: helm, name: helm, ecosystem: helm } - - { path: hex, name: hex, ecosystem: mix } - - { path: maven, name: maven, ecosystem: maven } - - { path: npm_and_yarn, name: npm_and_yarn, ecosystem: npm } - - { path: nuget, name: nuget, ecosystem: nuget } - - { path: pub, name: pub, ecosystem: pub } - - { path: python, name: python_slow, ecosystem: pip } - - { path: python, name: python, ecosystem: pip } - - { path: rust_toolchain, name: rust_toolchain, ecosystem: rust-toolchain } - - { path: swift, name: swift, ecosystem: swift } - - { path: terraform, name: terraform, ecosystem: terraform } - - { path: uv, name: uv, ecosystem: uv } - - { path: vcpkg, name: vcpkg, ecosystem: vcpkg } - steps: - - name: Checkout code - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - with: - submodules: recursive - - - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 - id: changes - with: - token: '' # use git commands to avoid excessive rate limit usage - filters: .github/ci-filters.yml - - - name: Build ${{ matrix.suite.name }} image - if: steps.changes.outputs[matrix.suite.path] == 'true' - run: script/build ${{ matrix.suite.path }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d42548ed898..04ba63637ef 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,10 +10,13 @@ concurrency: jobs: ci: - runs-on: ubuntu-latest + runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: + os: + - ubuntu-latest + - macos-latest # arm64 runner suite: - { path: bin, name: dry_run, ecosystem: common } - { path: bun, name: bun, ecosystem: bun } From d5daed8bc7c5aeb1f03eb4fde75dcd97a12e5e6a Mon Sep 17 00:00:00 2001 From: Jake Coffman Date: Wed, 24 Sep 2025 10:56:51 -0500 Subject: [PATCH 4/9] install docker? --- .github/workflows/ci.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 04ba63637ef..544784e72ed 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -60,6 +60,12 @@ jobs: token: '' # use git commands to avoid excessive rate limit usage filters: .github/ci-filters.yml + - name: Install Docker + if: matrix.os == 'macos-latest' + run: | + brew install docker + colima start + - name: Build ecosystem image if: steps.changes.outputs[matrix.suite.path] == 'true' run: script/build ${{ matrix.suite.path }} From 79865566815879210224d21a243c86ad153b6cdd Mon Sep 17 00:00:00 2001 From: Jake Coffman Date: Wed, 24 Sep 2025 11:06:24 -0500 Subject: [PATCH 5/9] install docker? --- .github/workflows/ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 544784e72ed..899dd6d143f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -64,7 +64,6 @@ jobs: if: matrix.os == 'macos-latest' run: | brew install docker - colima start - name: Build ecosystem image if: steps.changes.outputs[matrix.suite.path] == 'true' From c396a9472caf04892acad86680724b507acaacb0 Mon Sep 17 00:00:00 2001 From: Jake Coffman Date: Wed, 24 Sep 2025 11:14:31 -0500 Subject: [PATCH 6/9] install buildx? --- .github/workflows/ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 899dd6d143f..3c978e25415 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -64,6 +64,9 @@ jobs: if: matrix.os == 'macos-latest' run: | brew install docker + mkdir -p ~/.docker/cli-plugins + curl -L https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.darwin-arm64 -o ~/.docker/cli-plugins/docker-buildx + chmod +x ~/.docker/cli-plugins/docker-buildx - name: Build ecosystem image if: steps.changes.outputs[matrix.suite.path] == 'true' From 1e3863d90c8774f7ff6458cf30455bb52d6745cb Mon Sep 17 00:00:00 2001 From: Jake Coffman Date: Wed, 24 Sep 2025 11:21:35 -0500 Subject: [PATCH 7/9] install docker? --- .github/workflows/ci.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3c978e25415..3d36ecb1e45 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -63,10 +63,7 @@ jobs: - name: Install Docker if: matrix.os == 'macos-latest' run: | - brew install docker - mkdir -p ~/.docker/cli-plugins - curl -L https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.darwin-arm64 -o ~/.docker/cli-plugins/docker-buildx - chmod +x ~/.docker/cli-plugins/docker-buildx + brew install --cask docker - name: Build ecosystem image if: steps.changes.outputs[matrix.suite.path] == 'true' From 6de557021144bae13b355e7ddcc294e6e6b4169f Mon Sep 17 00:00:00 2001 From: Jake Coffman Date: Wed, 24 Sep 2025 11:32:10 -0500 Subject: [PATCH 8/9] install docker? --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3d36ecb1e45..a1c73328bab 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -64,6 +64,7 @@ jobs: if: matrix.os == 'macos-latest' run: | brew install --cask docker + brew install docker-buildx - name: Build ecosystem image if: steps.changes.outputs[matrix.suite.path] == 'true' From 4df7ed8473850c2b6ef4934731ea6868b3e08141 Mon Sep 17 00:00:00 2001 From: Jake Coffman Date: Wed, 24 Sep 2025 11:36:40 -0500 Subject: [PATCH 9/9] install docker? --- .github/workflows/ci.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a1c73328bab..c37d367d6ea 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -65,6 +65,14 @@ jobs: run: | brew install --cask docker brew install docker-buildx + CONFIG="$HOME/.docker/config.json" + PLUGIN_DIR="/opt/homebrew/lib/docker/cli-plugins" + + if [ ! -f "$CONFIG" ]; then + echo '{ "cliPluginsExtraDirs": ["'"$PLUGIN_DIR"'"] }' > "$CONFIG" + else + jq '.cliPluginsExtraDirs |= ( . // [] | . + ["'"$PLUGIN_DIR"'"] | unique )' "$CONFIG" > "$CONFIG.tmp" && mv "$CONFIG.tmp" "$CONFIG" + fi - name: Build ecosystem image if: steps.changes.outputs[matrix.suite.path] == 'true'