diff --git a/.github/workflows/javascript.yml b/.github/workflows/javascript.yml index c0519a07c9..5ed8a1f057 100644 --- a/.github/workflows/javascript.yml +++ b/.github/workflows/javascript.yml @@ -91,6 +91,8 @@ jobs: target: aarch64-apple-darwin - host: windows-latest target: x86_64-pc-windows-msvc + - host: windows-11-arm + target: aarch64-pc-windows-msvc - host: ubuntu-latest target: x86_64-unknown-linux-gnu - host: ubuntu-24.04-arm @@ -149,6 +151,8 @@ jobs: target: aarch64-apple-darwin - host: windows-latest target: x86_64-pc-windows-msvc + - host: windows-11-arm + target: aarch64-pc-windows-msvc steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: @@ -168,21 +172,21 @@ jobs: with: name: bindings-${{ matrix.settings.target }} path: javascript - - name: Setup conda (Windows) - if: runner.os == 'Windows' - uses: conda-incubator/setup-miniconda@8ee1f361103df19b6f8c8655fd3967a8ecb162d5 # v4.0.1 - with: - miniforge-version: latest - name: Install C++ dependencies (Windows) + # SQLite is the only dependency the test driver build needs, so take + # it from the runner's preinstalled vcpkg (present on both the x64 and + # arm64 images) rather than conda. The static-md triplet links SQLite + # into the driver DLL, so nothing extra has to go on PATH at runtime. if: runner.os == 'Windows' - run: conda install -c conda-forge --file ci/conda_env_cpp.txt + shell: pwsh + run: | + $triplet = if ($env:PROCESSOR_ARCHITECTURE -eq 'ARM64') { 'arm64-windows-static-md' } else { 'x64-windows-static-md' } + & "$env:VCPKG_INSTALLATION_ROOT\vcpkg.exe" install "sqlite3:$triplet" + $toolchain = "$env:VCPKG_INSTALLATION_ROOT\scripts\buildsystems\vcpkg.cmake" -replace '\\', '/' + echo "ADBC_CMAKE_ARGS=-DCMAKE_TOOLCHAIN_FILE=$toolchain -DVCPKG_TARGET_TRIPLET=$triplet" >> $env:GITHUB_ENV - name: Install C++ dependencies (Linux) if: runner.os == 'Linux' run: sudo apt-get install libsqlite3-dev - - name: Set cmake args (Windows) - if: runner.os == 'Windows' - shell: pwsh - run: echo "ADBC_CMAKE_ARGS=-DCMAKE_PREFIX_PATH=$env:CONDA_PREFIX/Library" >> $env:GITHUB_ENV - name: Build Driver # We need to build the SQLite driver for tests. shell: bash @@ -197,7 +201,7 @@ jobs: if: runner.os == 'Windows' shell: pwsh run: | - echo "PATH=${{ github.workspace }}/javascript/build/bin;$env:CONDA_PREFIX\Library\bin;$env:PATH" >> $env:GITHUB_ENV + echo "PATH=${{ github.workspace }}/javascript/build/bin;$env:PATH" >> $env:GITHUB_ENV echo "ADBC_DRIVER_MANAGER_TEST_LIB=${{ github.workspace }}/javascript/build/bin/adbc_driver_sqlite.dll" >> $env:GITHUB_ENV - name: Run Tests working-directory: javascript diff --git a/.github/workflows/packaging.yml b/.github/workflows/packaging.yml index 77a8763711..0a3c11685c 100644 --- a/.github/workflows/packaging.yml +++ b/.github/workflows/packaging.yml @@ -1124,6 +1124,8 @@ jobs: target: aarch64-apple-darwin - host: windows-latest target: x86_64-pc-windows-msvc + - host: windows-11-arm + target: aarch64-pc-windows-msvc - host: ubuntu-latest target: x86_64-unknown-linux-gnu - host: ubuntu-24.04-arm diff --git a/javascript/.cargo/config.toml b/javascript/.cargo/config.toml index 60aafc2cce..f86e2115f6 100644 --- a/javascript/.cargo/config.toml +++ b/javascript/.cargo/config.toml @@ -17,3 +17,6 @@ [target.x86_64-pc-windows-msvc] rustflags = ["-C", "target-feature=+crt-static"] + +[target.aarch64-pc-windows-msvc] +rustflags = ["-C", "target-feature=+crt-static"] diff --git a/javascript/npm/win32-arm64-msvc/README.md b/javascript/npm/win32-arm64-msvc/README.md new file mode 100644 index 0000000000..598b0018cf --- /dev/null +++ b/javascript/npm/win32-arm64-msvc/README.md @@ -0,0 +1,22 @@ + + +# `adbc-driver-manager-win32-arm64-msvc` + +This is the **aarch64-pc-windows-msvc** binary for `adbc-driver-manager` diff --git a/javascript/npm/win32-arm64-msvc/package.json b/javascript/npm/win32-arm64-msvc/package.json new file mode 100644 index 0000000000..c25cd61707 --- /dev/null +++ b/javascript/npm/win32-arm64-msvc/package.json @@ -0,0 +1,24 @@ +{ + "name": "@apache-arrow/adbc-driver-manager-win32-arm64-msvc", + "version": "0.25.0", + "cpu": [ + "arm64" + ], + "main": "adbc-driver-manager.win32-arm64-msvc.node", + "files": [ + "adbc-driver-manager.win32-arm64-msvc.node" + ], + "description": "Node.js ADBC Driver Manager", + "license": "Apache-2.0", + "engines": { + "node": ">=22.0.0" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/apache/arrow-adbc.git", + "directory": "javascript" + }, + "os": [ + "win32" + ] +} diff --git a/javascript/package-lock.json b/javascript/package-lock.json index 2f0a2f307d..2083982c9d 100644 --- a/javascript/package-lock.json +++ b/javascript/package-lock.json @@ -27,6 +27,7 @@ "@apache-arrow/adbc-driver-manager-darwin-x64": "0.25.0", "@apache-arrow/adbc-driver-manager-linux-arm64-gnu": "0.25.0", "@apache-arrow/adbc-driver-manager-linux-x64-gnu": "0.25.0", + "@apache-arrow/adbc-driver-manager-win32-arm64-msvc": "0.25.0", "@apache-arrow/adbc-driver-manager-win32-x64-msvc": "0.25.0" }, "peerDependencies": { diff --git a/javascript/package.json b/javascript/package.json index bc5a7a32ce..3e07a6ae7d 100644 --- a/javascript/package.json +++ b/javascript/package.json @@ -26,6 +26,7 @@ "binaryName": "adbc-driver-manager", "targets": [ "x86_64-pc-windows-msvc", + "aarch64-pc-windows-msvc", "x86_64-apple-darwin", "x86_64-unknown-linux-gnu", "aarch64-unknown-linux-gnu", @@ -86,6 +87,7 @@ }, "optionalDependencies": { "@apache-arrow/adbc-driver-manager-win32-x64-msvc": "0.25.0", + "@apache-arrow/adbc-driver-manager-win32-arm64-msvc": "0.25.0", "@apache-arrow/adbc-driver-manager-darwin-x64": "0.25.0", "@apache-arrow/adbc-driver-manager-linux-x64-gnu": "0.25.0", "@apache-arrow/adbc-driver-manager-linux-arm64-gnu": "0.25.0",