ci: add dbghelp.lib to sysroot-aarch64-pc-windows-msvc.sh (#1975) (#2008)

successful runs:
https://github.com/FuPeiJiang/lancedb/actions/runs/12698662005
This commit is contained in:
Mr. Doge
2025-01-09 17:24:09 -05:00
committed by GitHub
parent 6eacae18c4
commit 998c5f3f74
2 changed files with 95 additions and 97 deletions

View File

@@ -334,51 +334,50 @@ jobs:
path: | path: |
node/dist/lancedb-vectordb-win32*.tgz node/dist/lancedb-vectordb-win32*.tgz
# TODO: https://github.com/lancedb/lancedb/issues/1975 node-windows-arm64:
# node-windows-arm64: name: vectordb ${{ matrix.config.arch }}-pc-windows-msvc
# name: vectordb ${{ matrix.config.arch }}-pc-windows-msvc # if: startsWith(github.ref, 'refs/tags/v')
# # if: startsWith(github.ref, 'refs/tags/v') runs-on: ubuntu-latest
# runs-on: ubuntu-latest container: alpine:edge
# container: alpine:edge strategy:
# strategy: fail-fast: false
# fail-fast: false matrix:
# matrix: config:
# config: # - arch: x86_64
# # - arch: x86_64 - arch: aarch64
# - arch: aarch64 steps:
# steps: - name: Checkout
# - name: Checkout uses: actions/checkout@v4
# uses: actions/checkout@v4 - name: Install dependencies
# - name: Install dependencies run: |
# run: | apk add protobuf-dev curl clang lld llvm19 grep npm bash msitools sed
# apk add protobuf-dev curl clang lld llvm19 grep npm bash msitools sed curl --proto '=https' --tlsv1.3 -sSf https://raw.githubusercontent.com/rust-lang/rustup/refs/heads/master/rustup-init.sh | sh -s -- -y
# curl --proto '=https' --tlsv1.3 -sSf https://raw.githubusercontent.com/rust-lang/rustup/refs/heads/master/rustup-init.sh | sh -s -- -y echo "source $HOME/.cargo/env" >> saved_env
# echo "source $HOME/.cargo/env" >> saved_env echo "export CC=clang" >> saved_env
# echo "export CC=clang" >> saved_env echo "export AR=llvm-ar" >> saved_env
# echo "export AR=llvm-ar" >> saved_env source "$HOME/.cargo/env"
# source "$HOME/.cargo/env" rustup target add ${{ matrix.config.arch }}-pc-windows-msvc
# rustup target add ${{ matrix.config.arch }}-pc-windows-msvc (mkdir -p sysroot && cd sysroot && sh ../ci/sysroot-${{ matrix.config.arch }}-pc-windows-msvc.sh)
# (mkdir -p sysroot && cd sysroot && sh ../ci/sysroot-${{ matrix.config.arch }}-pc-windows-msvc.sh) echo "export C_INCLUDE_PATH=/usr/${{ matrix.config.arch }}-pc-windows-msvc/usr/include" >> saved_env
# echo "export C_INCLUDE_PATH=/usr/${{ matrix.config.arch }}-pc-windows-msvc/usr/include" >> saved_env echo "export CARGO_BUILD_TARGET=${{ matrix.config.arch }}-pc-windows-msvc" >> saved_env
# echo "export CARGO_BUILD_TARGET=${{ matrix.config.arch }}-pc-windows-msvc" >> saved_env - name: Configure x86_64 build
# - name: Configure x86_64 build if: ${{ matrix.config.arch == 'x86_64' }}
# if: ${{ matrix.config.arch == 'x86_64' }} run: |
# run: | echo "export RUSTFLAGS='-Ctarget-cpu=haswell -Ctarget-feature=+crt-static,+avx2,+fma,+f16c -Clinker=lld -Clink-arg=/LIBPATH:/usr/x86_64-pc-windows-msvc/usr/lib'" >> saved_env
# echo "export RUSTFLAGS='-Ctarget-cpu=haswell -Ctarget-feature=+crt-static,+avx2,+fma,+f16c -Clinker=lld -Clink-arg=/LIBPATH:/usr/x86_64-pc-windows-msvc/usr/lib'" >> saved_env - name: Configure aarch64 build
# - name: Configure aarch64 build if: ${{ matrix.config.arch == 'aarch64' }}
# if: ${{ matrix.config.arch == 'aarch64' }} run: |
# run: | echo "export RUSTFLAGS='-Ctarget-feature=+crt-static,+neon,+fp16,+fhm,+dotprod -Clinker=lld -Clink-arg=/LIBPATH:/usr/aarch64-pc-windows-msvc/usr/lib -Clink-arg=arm64rt.lib'" >> saved_env
# echo "export RUSTFLAGS='-Ctarget-feature=+crt-static,+neon,+fp16,+fhm,+dotprod -Clinker=lld -Clink-arg=/LIBPATH:/usr/aarch64-pc-windows-msvc/usr/lib -Clink-arg=arm64rt.lib'" >> saved_env - name: Build Windows Artifacts
# - name: Build Windows Artifacts run: |
# run: | source ./saved_env
# source ./saved_env bash ci/manylinux_node/build_vectordb.sh ${{ matrix.config.arch }} ${{ matrix.config.arch }}-pc-windows-msvc
# bash ci/manylinux_node/build_vectordb.sh ${{ matrix.config.arch }} ${{ matrix.config.arch }}-pc-windows-msvc - name: Upload Windows Artifacts
# - name: Upload Windows Artifacts uses: actions/upload-artifact@v4
# uses: actions/upload-artifact@v4 with:
# with: name: node-native-windows-${{ matrix.config.arch }}
# name: node-native-windows-${{ matrix.config.arch }} path: |
# path: | node/dist/lancedb-vectordb-win32*.tgz
# node/dist/lancedb-vectordb-win32*.tgz
nodejs-windows: nodejs-windows:
name: lancedb ${{ matrix.target }} name: lancedb ${{ matrix.target }}
@@ -414,58 +413,57 @@ jobs:
path: | path: |
nodejs/dist/*.node nodejs/dist/*.node
# TODO: https://github.com/lancedb/lancedb/issues/1975 nodejs-windows-arm64:
# nodejs-windows-arm64: name: lancedb ${{ matrix.config.arch }}-pc-windows-msvc
# name: lancedb ${{ matrix.config.arch }}-pc-windows-msvc # Only runs on tags that matches the make-release action
# # Only runs on tags that matches the make-release action # if: startsWith(github.ref, 'refs/tags/v')
# # if: startsWith(github.ref, 'refs/tags/v') runs-on: ubuntu-latest
# runs-on: ubuntu-latest container: alpine:edge
# container: alpine:edge strategy:
# strategy: fail-fast: false
# fail-fast: false matrix:
# matrix: config:
# config: # - arch: x86_64
# # - arch: x86_64 - arch: aarch64
# - arch: aarch64 steps:
# steps: - name: Checkout
# - name: Checkout uses: actions/checkout@v4
# uses: actions/checkout@v4 - name: Install dependencies
# - name: Install dependencies run: |
# run: | apk add protobuf-dev curl clang lld llvm19 grep npm bash msitools sed
# apk add protobuf-dev curl clang lld llvm19 grep npm bash msitools sed curl --proto '=https' --tlsv1.3 -sSf https://raw.githubusercontent.com/rust-lang/rustup/refs/heads/master/rustup-init.sh | sh -s -- -y
# curl --proto '=https' --tlsv1.3 -sSf https://raw.githubusercontent.com/rust-lang/rustup/refs/heads/master/rustup-init.sh | sh -s -- -y echo "source $HOME/.cargo/env" >> saved_env
# echo "source $HOME/.cargo/env" >> saved_env echo "export CC=clang" >> saved_env
# echo "export CC=clang" >> saved_env echo "export AR=llvm-ar" >> saved_env
# echo "export AR=llvm-ar" >> saved_env source "$HOME/.cargo/env"
# source "$HOME/.cargo/env" rustup target add ${{ matrix.config.arch }}-pc-windows-msvc
# rustup target add ${{ matrix.config.arch }}-pc-windows-msvc (mkdir -p sysroot && cd sysroot && sh ../ci/sysroot-${{ matrix.config.arch }}-pc-windows-msvc.sh)
# (mkdir -p sysroot && cd sysroot && sh ../ci/sysroot-${{ matrix.config.arch }}-pc-windows-msvc.sh) echo "export C_INCLUDE_PATH=/usr/${{ matrix.config.arch }}-pc-windows-msvc/usr/include" >> saved_env
# echo "export C_INCLUDE_PATH=/usr/${{ matrix.config.arch }}-pc-windows-msvc/usr/include" >> saved_env echo "export CARGO_BUILD_TARGET=${{ matrix.config.arch }}-pc-windows-msvc" >> saved_env
# echo "export CARGO_BUILD_TARGET=${{ matrix.config.arch }}-pc-windows-msvc" >> saved_env printf '#!/bin/sh\ncargo "$@"' > $HOME/.cargo/bin/cargo-xwin
# printf '#!/bin/sh\ncargo "$@"' > $HOME/.cargo/bin/cargo-xwin chmod u+x $HOME/.cargo/bin/cargo-xwin
# chmod u+x $HOME/.cargo/bin/cargo-xwin - name: Configure x86_64 build
# - name: Configure x86_64 build if: ${{ matrix.config.arch == 'x86_64' }}
# if: ${{ matrix.config.arch == 'x86_64' }} run: |
# run: | echo "export RUSTFLAGS='-Ctarget-cpu=haswell -Ctarget-feature=+crt-static,+avx2,+fma,+f16c -Clinker=lld -Clink-arg=/LIBPATH:/usr/x86_64-pc-windows-msvc/usr/lib'" >> saved_env
# echo "export RUSTFLAGS='-Ctarget-cpu=haswell -Ctarget-feature=+crt-static,+avx2,+fma,+f16c -Clinker=lld -Clink-arg=/LIBPATH:/usr/x86_64-pc-windows-msvc/usr/lib'" >> saved_env - name: Configure aarch64 build
# - name: Configure aarch64 build if: ${{ matrix.config.arch == 'aarch64' }}
# if: ${{ matrix.config.arch == 'aarch64' }} run: |
# run: | echo "export RUSTFLAGS='-Ctarget-feature=+crt-static,+neon,+fp16,+fhm,+dotprod -Clinker=lld -Clink-arg=/LIBPATH:/usr/aarch64-pc-windows-msvc/usr/lib -Clink-arg=arm64rt.lib'" >> saved_env
# echo "export RUSTFLAGS='-Ctarget-feature=+crt-static,+neon,+fp16,+fhm,+dotprod -Clinker=lld -Clink-arg=/LIBPATH:/usr/aarch64-pc-windows-msvc/usr/lib -Clink-arg=arm64rt.lib'" >> saved_env - name: Build Windows Artifacts
# - name: Build Windows Artifacts run: |
# run: | source ./saved_env
# source ./saved_env bash ci/manylinux_node/build_lancedb.sh ${{ matrix.config.arch }}
# bash ci/manylinux_node/build_lancedb.sh ${{ matrix.config.arch }} - name: Upload Windows Artifacts
# - name: Upload Windows Artifacts uses: actions/upload-artifact@v4
# uses: actions/upload-artifact@v4 with:
# with: name: nodejs-native-windows-${{ matrix.config.arch }}
# name: nodejs-native-windows-${{ matrix.config.arch }} path: |
# path: | nodejs/dist/*.node
# nodejs/dist/*.node
release: release:
name: vectordb NPM Publish name: vectordb NPM Publish
needs: [node, node-macos, node-linux-gnu, node-linux-musl, node-windows] needs: [node, node-macos, node-linux-gnu, node-linux-musl, node-windows, node-windows-arm64]
runs-on: ubuntu-latest runs-on: ubuntu-latest
# Only runs on tags that matches the make-release action # Only runs on tags that matches the make-release action
if: startsWith(github.ref, 'refs/tags/v') if: startsWith(github.ref, 'refs/tags/v')
@@ -505,7 +503,7 @@ jobs:
release-nodejs: release-nodejs:
name: lancedb NPM Publish name: lancedb NPM Publish
needs: [nodejs-macos, nodejs-linux-gnu, nodejs-linux-musl, nodejs-windows] needs: [nodejs-macos, nodejs-linux-gnu, nodejs-linux-musl, nodejs-windows, nodejs-windows-arm64]
runs-on: ubuntu-latest runs-on: ubuntu-latest
# Only runs on tags that matches the make-release action # Only runs on tags that matches the make-release action
if: startsWith(github.ref, 'refs/tags/v') if: startsWith(github.ref, 'refs/tags/v')

View File

@@ -53,7 +53,7 @@ curl -O https://download.visualstudio.microsoft.com/download/pr/32863b8d-a46d-42
curl -O https://download.visualstudio.microsoft.com/download/pr/32863b8d-a46d-4231-8e84-0888519d20a9/149578fb3b621cdb61ee1813b9b3e791/463ad1b0783ebda908fd6c16a4abfe93.cab curl -O https://download.visualstudio.microsoft.com/download/pr/32863b8d-a46d-4231-8e84-0888519d20a9/149578fb3b621cdb61ee1813b9b3e791/463ad1b0783ebda908fd6c16a4abfe93.cab
curl -O https://download.visualstudio.microsoft.com/download/pr/32863b8d-a46d-4231-8e84-0888519d20a9/5c986c4f393c6b09d5aec3b539e9fb4a/5a22e5cde814b041749fb271547f4dd5.cab curl -O https://download.visualstudio.microsoft.com/download/pr/32863b8d-a46d-4231-8e84-0888519d20a9/5c986c4f393c6b09d5aec3b539e9fb4a/5a22e5cde814b041749fb271547f4dd5.cab
# fwpuclnt.lib arm64rt.lib # dbghelp.lib fwpuclnt.lib arm64rt.lib
curl -O https://download.visualstudio.microsoft.com/download/pr/32863b8d-a46d-4231-8e84-0888519d20a9/7a332420d812f7c1d41da865ae5a7c52/windows%20sdk%20desktop%20libs%20arm64-x86_en-us.msi curl -O https://download.visualstudio.microsoft.com/download/pr/32863b8d-a46d-4231-8e84-0888519d20a9/7a332420d812f7c1d41da865ae5a7c52/windows%20sdk%20desktop%20libs%20arm64-x86_en-us.msi
curl -O https://download.visualstudio.microsoft.com/download/pr/32863b8d-a46d-4231-8e84-0888519d20a9/19de98ed4a79938d0045d19c047936b3/3e2f7be479e3679d700ce0782e4cc318.cab curl -O https://download.visualstudio.microsoft.com/download/pr/32863b8d-a46d-4231-8e84-0888519d20a9/19de98ed4a79938d0045d19c047936b3/3e2f7be479e3679d700ce0782e4cc318.cab
@@ -98,7 +98,7 @@ find /usr/aarch64-pc-windows-msvc/usr/include -type f -exec sed -i -E 's/(#inclu
# reason: https://developercommunity.visualstudio.com/t/libucrtlibstreamobj-error-lnk2001-unresolved-exter/1544787#T-ND1599818 # reason: https://developercommunity.visualstudio.com/t/libucrtlibstreamobj-error-lnk2001-unresolved-exter/1544787#T-ND1599818
# I don't understand the 'correct' fix for this, arm64rt.lib is supposed to be the workaround # I don't understand the 'correct' fix for this, arm64rt.lib is supposed to be the workaround
(cd 'program files/windows kits/10/lib/10.0.26100.0/um/arm64' && cp advapi32.lib bcrypt.lib kernel32.lib ntdll.lib user32.lib uuid.lib ws2_32.lib userenv.lib cfgmgr32.lib runtimeobject.lib fwpuclnt.lib arm64rt.lib -t /usr/aarch64-pc-windows-msvc/usr/lib) (cd 'program files/windows kits/10/lib/10.0.26100.0/um/arm64' && cp advapi32.lib bcrypt.lib kernel32.lib ntdll.lib user32.lib uuid.lib ws2_32.lib userenv.lib cfgmgr32.lib runtimeobject.lib dbghelp.lib fwpuclnt.lib arm64rt.lib -t /usr/aarch64-pc-windows-msvc/usr/lib)
(cd 'contents/vc/tools/msvc/14.16.27023/lib/arm64' && cp libcmt.lib libvcruntime.lib -t /usr/aarch64-pc-windows-msvc/usr/lib) (cd 'contents/vc/tools/msvc/14.16.27023/lib/arm64' && cp libcmt.lib libvcruntime.lib -t /usr/aarch64-pc-windows-msvc/usr/lib)