From 7c710e2830c536e910d74662e75f31af29949385 Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Thu, 11 Apr 2024 22:05:53 +0900 Subject: [PATCH 01/14] GH-41124: [CI][C++] Don't use CMake 3.29.1 with vcpkg vcpkg doesn't work with CMake 3.29.1. See also: https://github.com/microsoft/vcpkg/issues/37968 --- dev/tasks/vcpkg-tests/github.windows.yml | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/dev/tasks/vcpkg-tests/github.windows.yml b/dev/tasks/vcpkg-tests/github.windows.yml index 618c997c2527b..ad29bef577089 100644 --- a/dev/tasks/vcpkg-tests/github.windows.yml +++ b/dev/tasks/vcpkg-tests/github.windows.yml @@ -15,14 +15,9 @@ # specific language governing permissions and limitations # under the License. -# NOTE: must set "Crossbow" as name to have the badge links working in the -# github comment reports! -name: Crossbow +{% import 'macros.jinja' as macros with context %} -on: - push: - branches: - - "*-github-*" +{{ macros.github_header() }} jobs: test-vcpkg-win: @@ -31,12 +26,12 @@ jobs: env: VCPKG_BINARY_SOURCES: 'clear;nuget,GitHub,readwrite' steps: - - name: Checkout Arrow - run: | - git clone --no-checkout {{ arrow.remote }} arrow - git -C arrow fetch -t {{ arrow.remote }} {{ arrow.branch }} - git -C arrow checkout FETCH_HEAD - git -C arrow submodule update --init --recursive + {{ macros.github_checkout_arrow()|indent }} + # CMake 3.29.1 that is pre-installed on the Windows image has a problem. + # See also: https://github.com/microsoft/vcpkg/issues/37968 + - name: Install CMake 3.29.0 + shell: bash + run: arrow/ci/scripts/install_cmake.sh 3.29.0 - name: Download Timezone Database shell: bash run: arrow/ci/scripts/download_tz_database.sh @@ -59,7 +54,7 @@ jobs: CALL setx PATH "%PATH%;C:\vcpkg" - name: Setup NuGet Credentials shell: bash - env: + env: GITHUB_TOKEN: {{ '${{ secrets.GITHUB_TOKEN }}' }} run: | `vcpkg fetch nuget | tail -n 1` \ From 0c5a3703efee0ff8e20baa7530f91d9d73c84fc4 Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Thu, 11 Apr 2024 22:23:32 +0900 Subject: [PATCH 02/14] Fix --- ci/scripts/install_cmake.sh | 2 ++ dev/tasks/python-wheels/github.osx.yml | 8 ++++++++ dev/tasks/vcpkg-tests/github.windows.yml | 4 +++- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/ci/scripts/install_cmake.sh b/ci/scripts/install_cmake.sh index 2f5e5d52051ed..3c730f7d01536 100755 --- a/ci/scripts/install_cmake.sh +++ b/ci/scripts/install_cmake.sh @@ -21,6 +21,8 @@ set -e declare -A archs archs=([amd64]=x86_64 + [arch64]=aarch64 + [arm64]=aarch64 [arm64v8]=aarch64) declare -A platforms diff --git a/dev/tasks/python-wheels/github.osx.yml b/dev/tasks/python-wheels/github.osx.yml index cf99c84c60bfd..ed9689f5248db 100644 --- a/dev/tasks/python-wheels/github.osx.yml +++ b/dev/tasks/python-wheels/github.osx.yml @@ -50,6 +50,14 @@ jobs: run: | brew list + # CMake 3.29.1 that is pre-installed on the Windows image has a problem. + # See also: https://github.com/microsoft/vcpkg/issues/37968 + - name: Install CMake 3.29.0 + shell: bash + run: | + arrow/ci/scripts/install_cmake.sh $(arch) macos 3.29.0 ${PWD}/local + echo "${PWD}/local/bin" >> $GITHUB_PATH + - name: Retrieve VCPKG version from arrow/.env run: | vcpkg_version=$(cat "arrow/.env" | grep "VCPKG" | cut -d "=" -f2 | tr -d '"') diff --git a/dev/tasks/vcpkg-tests/github.windows.yml b/dev/tasks/vcpkg-tests/github.windows.yml index ad29bef577089..af12db595286f 100644 --- a/dev/tasks/vcpkg-tests/github.windows.yml +++ b/dev/tasks/vcpkg-tests/github.windows.yml @@ -31,7 +31,9 @@ jobs: # See also: https://github.com/microsoft/vcpkg/issues/37968 - name: Install CMake 3.29.0 shell: bash - run: arrow/ci/scripts/install_cmake.sh 3.29.0 + run: | + arrow/ci/scripts/install_cmake.sh amd64 windows 3.29.0 /c/cmake + echo "c:\\cmake\\bin" >> $GITHUB_PATH - name: Download Timezone Database shell: bash run: arrow/ci/scripts/download_tz_database.sh From 1fdc1151f2a6ae33dcfdd0604077d8c3c1cf5703 Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Thu, 11 Apr 2024 22:27:48 +0900 Subject: [PATCH 03/14] Fix --- ci/scripts/install_cmake.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ci/scripts/install_cmake.sh b/ci/scripts/install_cmake.sh index 3c730f7d01536..5ae46aa9dc123 100755 --- a/ci/scripts/install_cmake.sh +++ b/ci/scripts/install_cmake.sh @@ -40,5 +40,6 @@ platform=${platforms[$2]} version=$3 prefix=$4 +mkdir -p ${prefix} url="https://github.com/Kitware/CMake/releases/download/v${version}/cmake-${version}-${platform}-${arch}.tar.gz" -wget -q ${url} -O - | tar -xzf - --directory ${prefix} --strip-components=1 +curl -O - ${url} | tar -xzf - --directory ${prefix} --strip-components=1 From 336fb4559e95287b5498b663ec73751fe65649ce Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Thu, 11 Apr 2024 22:40:47 +0900 Subject: [PATCH 04/14] Fix --- ci/scripts/install_cmake.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ci/scripts/install_cmake.sh b/ci/scripts/install_cmake.sh index 5ae46aa9dc123..b468f735af91b 100755 --- a/ci/scripts/install_cmake.sh +++ b/ci/scripts/install_cmake.sh @@ -23,7 +23,8 @@ declare -A archs archs=([amd64]=x86_64 [arch64]=aarch64 [arm64]=aarch64 - [arm64v8]=aarch64) + [arm64v8]=aarch64 + [x86_64]=x86_64) declare -A platforms platforms=([linux]=linux @@ -42,4 +43,4 @@ prefix=$4 mkdir -p ${prefix} url="https://github.com/Kitware/CMake/releases/download/v${version}/cmake-${version}-${platform}-${arch}.tar.gz" -curl -O - ${url} | tar -xzf - --directory ${prefix} --strip-components=1 +curl -L ${url} | tar -xzf - --directory ${prefix} --strip-components=1 From 488356ce1778af74aab2f27ae6e18276420ab782 Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Thu, 11 Apr 2024 22:55:50 +0900 Subject: [PATCH 05/14] Fix --- ci/scripts/install_cmake.sh | 24 ++++++++++++++++++++++-- dev/tasks/python-wheels/github.osx.yml | 2 ++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/ci/scripts/install_cmake.sh b/ci/scripts/install_cmake.sh index b468f735af91b..0ac42a8c35474 100755 --- a/ci/scripts/install_cmake.sh +++ b/ci/scripts/install_cmake.sh @@ -42,5 +42,25 @@ version=$3 prefix=$4 mkdir -p ${prefix} -url="https://github.com/Kitware/CMake/releases/download/v${version}/cmake-${version}-${platform}-${arch}.tar.gz" -curl -L ${url} | tar -xzf - --directory ${prefix} --strip-components=1 +url="https://github.com/Kitware/CMake/releases/download/v${version}/cmake-${version}-${platform}-" +case ${platform} in + macos) + url+="universal.tar.gz" + ;; + windows) + url+="${arch}.zip" + ;; + *) + url+="${arch}.tar.gz" + ;; +esac +if [ ${platform} = windows ]; then + archive_name=$(basename ${url}) + curl -L -o ${archive_name} ${url} + unzip ${archive_name} + base_name=$(basename ${archive_name} .zip) + mv ${base_name}/* ${prefix} + rm -rf ${base_name} ${archive_name} +else + curl -L ${url} | tar -xzf - --directory ${prefix} --strip-components=1 +fi diff --git a/dev/tasks/python-wheels/github.osx.yml b/dev/tasks/python-wheels/github.osx.yml index ed9689f5248db..77c06c062ee12 100644 --- a/dev/tasks/python-wheels/github.osx.yml +++ b/dev/tasks/python-wheels/github.osx.yml @@ -60,6 +60,8 @@ jobs: - name: Retrieve VCPKG version from arrow/.env run: | + which cmake + cmake --version vcpkg_version=$(cat "arrow/.env" | grep "VCPKG" | cut -d "=" -f2 | tr -d '"') echo "VCPKG_VERSION=$vcpkg_version" >> $GITHUB_ENV From c55fec80bc1de8e48e5a797c351f38693bc939a0 Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Thu, 11 Apr 2024 23:03:08 +0900 Subject: [PATCH 06/14] Debug --- dev/tasks/python-wheels/github.osx.yml | 2 ++ dev/tasks/vcpkg-tests/github.windows.yml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/dev/tasks/python-wheels/github.osx.yml b/dev/tasks/python-wheels/github.osx.yml index 77c06c062ee12..e855b42986732 100644 --- a/dev/tasks/python-wheels/github.osx.yml +++ b/dev/tasks/python-wheels/github.osx.yml @@ -57,9 +57,11 @@ jobs: run: | arrow/ci/scripts/install_cmake.sh $(arch) macos 3.29.0 ${PWD}/local echo "${PWD}/local/bin" >> $GITHUB_PATH + ${PWD/local/bin/cmake --version - name: Retrieve VCPKG version from arrow/.env run: | + echo $PATH which cmake cmake --version vcpkg_version=$(cat "arrow/.env" | grep "VCPKG" | cut -d "=" -f2 | tr -d '"') diff --git a/dev/tasks/vcpkg-tests/github.windows.yml b/dev/tasks/vcpkg-tests/github.windows.yml index af12db595286f..601c50e207c37 100644 --- a/dev/tasks/vcpkg-tests/github.windows.yml +++ b/dev/tasks/vcpkg-tests/github.windows.yml @@ -45,6 +45,8 @@ jobs: # to remove and reinstall it. shell: cmd run: | + echo %PATH% + cmake --version CALL vcpkg integrate remove 2>NUL CALL C: CALL cd \ From 519fe298e96adcb52165e046dfb19282a3593754 Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Thu, 11 Apr 2024 23:09:26 +0900 Subject: [PATCH 07/14] Debug --- dev/tasks/python-wheels/github.osx.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/tasks/python-wheels/github.osx.yml b/dev/tasks/python-wheels/github.osx.yml index e855b42986732..e83a8933a92e3 100644 --- a/dev/tasks/python-wheels/github.osx.yml +++ b/dev/tasks/python-wheels/github.osx.yml @@ -57,7 +57,7 @@ jobs: run: | arrow/ci/scripts/install_cmake.sh $(arch) macos 3.29.0 ${PWD}/local echo "${PWD}/local/bin" >> $GITHUB_PATH - ${PWD/local/bin/cmake --version + ${PWD}/local/bin/cmake --version - name: Retrieve VCPKG version from arrow/.env run: | From c5cc6ae8612a61c0f805b7b7ff3bd3126edb9d09 Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Thu, 11 Apr 2024 23:19:43 +0900 Subject: [PATCH 08/14] Fix --- ci/scripts/install_cmake.sh | 19 +++++++++---------- dev/tasks/vcpkg-tests/github.windows.yml | 2 -- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/ci/scripts/install_cmake.sh b/ci/scripts/install_cmake.sh index 0ac42a8c35474..7fdb06d90f02c 100755 --- a/ci/scripts/install_cmake.sh +++ b/ci/scripts/install_cmake.sh @@ -46,21 +46,20 @@ url="https://github.com/Kitware/CMake/releases/download/v${version}/cmake-${vers case ${platform} in macos) url+="universal.tar.gz" + curl -L ${url} | tar -xzf - --directory ${prefix} --strip-components=1 + ln -s CMake.app/Contents/bin ${prefix}/bin ;; windows) url+="${arch}.zip" + archive_name=$(basename ${url}) + curl -L -o ${archive_name} ${url} + unzip ${archive_name} + base_name=$(basename ${archive_name} .zip) + mv ${base_name}/* ${prefix} + rm -rf ${base_name} ${archive_name} ;; *) url+="${arch}.tar.gz" + curl -L ${url} | tar -xzf - --directory ${prefix} --strip-components=1 ;; esac -if [ ${platform} = windows ]; then - archive_name=$(basename ${url}) - curl -L -o ${archive_name} ${url} - unzip ${archive_name} - base_name=$(basename ${archive_name} .zip) - mv ${base_name}/* ${prefix} - rm -rf ${base_name} ${archive_name} -else - curl -L ${url} | tar -xzf - --directory ${prefix} --strip-components=1 -fi diff --git a/dev/tasks/vcpkg-tests/github.windows.yml b/dev/tasks/vcpkg-tests/github.windows.yml index 601c50e207c37..af12db595286f 100644 --- a/dev/tasks/vcpkg-tests/github.windows.yml +++ b/dev/tasks/vcpkg-tests/github.windows.yml @@ -45,8 +45,6 @@ jobs: # to remove and reinstall it. shell: cmd run: | - echo %PATH% - cmake --version CALL vcpkg integrate remove 2>NUL CALL C: CALL cd \ From 30bec1cb5f7caee8ac8ca5931d81f793e20a228a Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Thu, 11 Apr 2024 23:50:09 +0900 Subject: [PATCH 09/14] Fix --- dev/tasks/macros.jinja | 2 +- dev/tasks/python-wheels/github.osx.yml | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/dev/tasks/macros.jinja b/dev/tasks/macros.jinja index f55a7f9481e56..d6e1863622353 100644 --- a/dev/tasks/macros.jinja +++ b/dev/tasks/macros.jinja @@ -59,7 +59,7 @@ env: {%- macro github_install_archery() -%} - name: Set up Python by actions/setup-python - if: runner.arch == 'X64' + if: !(runner.os == 'Linux' && runner.arch != 'X64') uses: actions/setup-python@v4 with: cache: 'pip' diff --git a/dev/tasks/python-wheels/github.osx.yml b/dev/tasks/python-wheels/github.osx.yml index e83a8933a92e3..ed9689f5248db 100644 --- a/dev/tasks/python-wheels/github.osx.yml +++ b/dev/tasks/python-wheels/github.osx.yml @@ -57,13 +57,9 @@ jobs: run: | arrow/ci/scripts/install_cmake.sh $(arch) macos 3.29.0 ${PWD}/local echo "${PWD}/local/bin" >> $GITHUB_PATH - ${PWD}/local/bin/cmake --version - name: Retrieve VCPKG version from arrow/.env run: | - echo $PATH - which cmake - cmake --version vcpkg_version=$(cat "arrow/.env" | grep "VCPKG" | cut -d "=" -f2 | tr -d '"') echo "VCPKG_VERSION=$vcpkg_version" >> $GITHUB_ENV From ef3c8c4f46fc3d5291aecddd5f280a8c1b14cd7e Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Thu, 11 Apr 2024 23:52:51 +0900 Subject: [PATCH 10/14] Specify --build-config --- dev/tasks/vcpkg-tests/cpp-build-vcpkg.bat | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dev/tasks/vcpkg-tests/cpp-build-vcpkg.bat b/dev/tasks/vcpkg-tests/cpp-build-vcpkg.bat index 8f160ee7c4fd2..3b337bb175005 100644 --- a/dev/tasks/vcpkg-tests/cpp-build-vcpkg.bat +++ b/dev/tasks/vcpkg-tests/cpp-build-vcpkg.bat @@ -78,7 +78,8 @@ cmake --build . --target INSTALL --config Release || exit /B 1 @rem Test Arrow C++ library -ctest --output-on-failure ^ +ctest --build-config Release ^ + --output-on-failure ^ --parallel %NUMBER_OF_PROCESSORS% ^ --timeout 300 || exit /B 1 From bc6a2245b0d5c486d7799247e2ebfd4fba147c98 Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Fri, 12 Apr 2024 00:15:08 +0900 Subject: [PATCH 11/14] Use setup-python on arm64 macOS --- dev/tasks/macros.jinja | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/tasks/macros.jinja b/dev/tasks/macros.jinja index d6e1863622353..2aa052b4dc18f 100644 --- a/dev/tasks/macros.jinja +++ b/dev/tasks/macros.jinja @@ -86,7 +86,7 @@ env: {%- macro github_upload_releases(pattern) -%} - name: Set up Python by actions/setup-python - if: runner.arch == 'X64' + if: !(runner.os == 'Linux' && runner.arch != 'X64') uses: actions/setup-python@v4 with: python-version: 3.12 From b20b3382682a85b3051ad3a146233de08681a0a8 Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Fri, 12 Apr 2024 09:22:39 +0900 Subject: [PATCH 12/14] Fix syntax --- dev/tasks/macros.jinja | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dev/tasks/macros.jinja b/dev/tasks/macros.jinja index 2aa052b4dc18f..fc1ebae9a3e3a 100644 --- a/dev/tasks/macros.jinja +++ b/dev/tasks/macros.jinja @@ -86,7 +86,8 @@ env: {%- macro github_upload_releases(pattern) -%} - name: Set up Python by actions/setup-python - if: !(runner.os == 'Linux' && runner.arch != 'X64') + if: | + !(runner.os == 'Linux' && runner.arch != 'X64') uses: actions/setup-python@v4 with: python-version: 3.12 From d46405f361264321446070706ab11da28fc59025 Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Fri, 12 Apr 2024 10:32:59 +0900 Subject: [PATCH 13/14] Fix a typo Co-authored-by: Jacob Wujciak-Jens --- dev/tasks/python-wheels/github.osx.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/tasks/python-wheels/github.osx.yml b/dev/tasks/python-wheels/github.osx.yml index ed9689f5248db..ce9613545eb54 100644 --- a/dev/tasks/python-wheels/github.osx.yml +++ b/dev/tasks/python-wheels/github.osx.yml @@ -50,7 +50,7 @@ jobs: run: | brew list - # CMake 3.29.1 that is pre-installed on the Windows image has a problem. + # CMake 3.29.1 that is pre-installed on the macOS image has a problem. # See also: https://github.com/microsoft/vcpkg/issues/37968 - name: Install CMake 3.29.0 shell: bash From 56eb753b0a706bc0f28ce7bff7e7f6e67b871b44 Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Fri, 12 Apr 2024 10:35:51 +0900 Subject: [PATCH 14/14] Fix --- dev/tasks/macros.jinja | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dev/tasks/macros.jinja b/dev/tasks/macros.jinja index fc1ebae9a3e3a..1e819d3cf4556 100644 --- a/dev/tasks/macros.jinja +++ b/dev/tasks/macros.jinja @@ -59,7 +59,8 @@ env: {%- macro github_install_archery() -%} - name: Set up Python by actions/setup-python - if: !(runner.os == 'Linux' && runner.arch != 'X64') + if: | + !(runner.os == 'Linux' && runner.arch != 'X64') uses: actions/setup-python@v4 with: cache: 'pip'