From 8e3145efe707054bd6d4a1bfaec3f0d2d680201b Mon Sep 17 00:00:00 2001 From: per1234 Date: Sat, 1 Nov 2025 20:46:20 -0700 Subject: [PATCH] Generate builds for Windows ARM hosts --- .github/workflows/publish-go-nightly-task.yml | 3 +++ .github/workflows/publish-go-tester-task.yml | 4 +++ .github/workflows/release-go-task.yml | 3 +++ DistTasks.yml | 27 +++++++++++++++++++ docs/installation.md | 16 ++++++----- 5 files changed, 46 insertions(+), 7 deletions(-) diff --git a/.github/workflows/publish-go-nightly-task.yml b/.github/workflows/publish-go-nightly-task.yml index da10a3f4b..df13edc84 100644 --- a/.github/workflows/publish-go-nightly-task.yml +++ b/.github/workflows/publish-go-nightly-task.yml @@ -34,6 +34,9 @@ jobs: - task: Windows_64bit artifact-suffix: Windows_64bit runner: ubuntu-latest + - task: Windows_ARM64 + artifact-suffix: Windows_ARM64 + runner: ubuntu-24.04-arm - task: Linux_32bit artifact-suffix: Linux_32bit runner: ubuntu-latest diff --git a/.github/workflows/publish-go-tester-task.yml b/.github/workflows/publish-go-tester-task.yml index 62d4258fa..d4058376a 100644 --- a/.github/workflows/publish-go-tester-task.yml +++ b/.github/workflows/publish-go-tester-task.yml @@ -93,6 +93,10 @@ jobs: path: "*Windows_64bit.zip" runner: ubuntu-latest artifact-name: Windows_X86-64 + - task: Windows_ARM64 + path: "*Windows_ARM64.zip" + runner: ubuntu-24.04-arm + artifact-name: Windows_ARM64 - task: Linux_32bit path: "*Linux_32bit.tar.gz" runner: ubuntu-latest diff --git a/.github/workflows/release-go-task.yml b/.github/workflows/release-go-task.yml index b6e30ffcd..0cc3c8fb2 100644 --- a/.github/workflows/release-go-task.yml +++ b/.github/workflows/release-go-task.yml @@ -31,6 +31,9 @@ jobs: - task: Windows_64bit artifact-suffix: Windows_64bit runner: ubuntu-latest + - task: Windows_ARM64 + artifact-suffix: Windows_ARM64 + runner: ubuntu-24.04-arm - task: Linux_32bit artifact-suffix: Linux_32bit runner: ubuntu-latest diff --git a/DistTasks.yml b/DistTasks.yml index e73c46f1c..877c9fc43 100644 --- a/DistTasks.yml +++ b/DistTasks.yml @@ -74,6 +74,33 @@ tasks: PACKAGE_PLATFORM: "Windows_64bit" PACKAGE_NAME: "{{.PROJECT_NAME}}_{{.VERSION}}_{{.PACKAGE_PLATFORM}}.zip" + Windows_ARM64: + desc: Builds Windows ARM64 binaries + dir: "{{.DIST_DIR}}" + cmds: + # "git config safe.directory" is required until this is fixed https://github.com/elastic/golang-crossbuild/issues/232 + - | + docker run \ + -v `pwd`/..:/home/build \ + -w /home/build \ + -e CGO_ENABLED=1 \ + {{.CONTAINER}}:{{.CONTAINER_TAG}} \ + --build-cmd "git config --global --add safe.directory /home/build && {{.BUILD_COMMAND}}" \ + -p "{{.BUILD_PLATFORM}}" + + zip \ + {{.PACKAGE_NAME}} \ + {{.PLATFORM_DIR}}/{{.PROJECT_NAME}}.exe ../LICENSE.txt \ + -j + + vars: + PLATFORM_DIR: "{{.PROJECT_NAME}}_windows_arm64" + BUILD_COMMAND: "go build -o {{.DIST_DIR}}/{{.PLATFORM_DIR}}/{{.PROJECT_NAME}}.exe {{.LDFLAGS}}" + BUILD_PLATFORM: "windows/arm64" + CONTAINER_TAG: "{{.GO_VERSION}}-windows-arm64-debian12" + PACKAGE_PLATFORM: "Windows_ARM64" + PACKAGE_NAME: "{{.PROJECT_NAME}}_{{.VERSION}}_{{.PACKAGE_PLATFORM}}.zip" + Linux_32bit: desc: Builds Linux 32 bit binaries dir: "{{.DIST_DIR}}" diff --git a/docs/installation.md b/docs/installation.md index 544fc9ad9..b38828822 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -67,13 +67,14 @@ These are available from the "Assets" sections on the [releases page](https://gi These builds are generated every day at 01:00 GMT from the `main` branch and should be considered unstable. In order to get the latest nightly build available for the supported platform, use the following links: -| Platform | | | -| --------- | ---------------------------- | ---------------------------- | -| Linux | [32 bit][linux32-nightly] | [64 bit][linux64-nightly] | -| Linux ARM | [32 bit][linuxarm32-nightly] | [64 bit][linuxarm64-nightly] | -| Windows | [32 bit][windows32-nightly] | [64 bit][windows64-nightly] | -| macOS | | [64 bit][macos64-nightly] | -| macOS ARM | | [64 bit][macosarm64-nightly] | +| Platform | | | +| ----------- | ---------------------------- | ------------------------------ | +| Linux | [32 bit][linux32-nightly] | [64 bit][linux64-nightly] | +| Linux ARM | [32 bit][linuxarm32-nightly] | [64 bit][linuxarm64-nightly] | +| Windows | [32 bit][windows32-nightly] | [64 bit][windows64-nightly] | +| Windows ARM | | [64 bit][windowsarm64-nightly] | +| macOS | | [64 bit][macos64-nightly] | +| macOS ARM | | [64 bit][macosarm64-nightly] | [linux64-nightly]: https://downloads.arduino.cc/arduino-lint/nightly/arduino-lint_nightly-latest_Linux_64bit.tar.gz [linux32-nightly]: https://downloads.arduino.cc/arduino-lint/nightly/arduino-lint_nightly-latest_Linux_32bit.tar.gz @@ -81,6 +82,7 @@ get the latest nightly build available for the supported platform, use the follo [linuxarm32-nightly]: https://downloads.arduino.cc/arduino-lint/nightly/arduino-lint_nightly-latest_Linux_ARMv7.tar.gz [windows64-nightly]: https://downloads.arduino.cc/arduino-lint/nightly/arduino-lint_nightly-latest_Windows_64bit.zip [windows32-nightly]: https://downloads.arduino.cc/arduino-lint/nightly/arduino-lint_nightly-latest_Windows_32bit.zip +[windowsarm64-nightly]: https://downloads.arduino.cc/arduino-lint/nightly/arduino-lint_nightly-latest_Windows_ARM64.zip [macos64-nightly]: https://downloads.arduino.cc/arduino-lint/nightly/arduino-lint_nightly-latest_macOS_64bit.tar.gz [macosarm64-nightly]: https://downloads.arduino.cc/arduino-lint/nightly/arduino-lint_nightly-latest_macOS_ARM64.tar.gz