Merge branch 'duckdb:main' into CastToUUID #74
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Windows | |
| on: | |
| workflow_call: | |
| inputs: | |
| override_git_describe: | |
| type: string | |
| git_ref: | |
| type: string | |
| skip_tests: | |
| type: string | |
| run_all: | |
| type: string | |
| workflow_dispatch: | |
| inputs: | |
| override_git_describe: | |
| type: string | |
| git_ref: | |
| type: string | |
| skip_tests: | |
| type: string | |
| run_all: | |
| type: string | |
| push: | |
| branches-ignore: | |
| - 'main' | |
| - 'feature' | |
| - 'v*.*-*' | |
| paths-ignore: | |
| - '**.md' | |
| - 'test/configs/**' | |
| - 'tools/**' | |
| - '!tools/shell/**' | |
| - '.github/patches/duckdb-wasm/**' | |
| - '.github/workflows/**' | |
| - '!.github/workflows/Windows.yml' | |
| - '.github/config/extensions/*.cmake' | |
| - '.github/patches/extensions/**/*.patch' | |
| merge_group: | |
| pull_request: | |
| types: [opened, reopened, ready_for_review, converted_to_draft] | |
| paths-ignore: | |
| - '**.md' | |
| - 'test/configs/**' | |
| - 'tools/**' | |
| - '!tools/shell/**' | |
| - '.github/patches/duckdb-wasm/**' | |
| - '.github/workflows/**' | |
| - '!.github/workflows/Windows.yml' | |
| - '.github/config/extensions/*.cmake' | |
| - '.github/patches/extensions/**/*.patch' | |
| concurrency: | |
| group: windows-${{ github.workflow }}-${{ github.ref }}-${{ github.head_ref || '' }}-${{ github.base_ref || '' }}-${{ github.ref != 'refs/heads/main' || github.sha }}-${{ inputs.override_git_describe }} | |
| cancel-in-progress: true | |
| env: | |
| GH_TOKEN: ${{ secrets.GH_TOKEN }} | |
| OVERRIDE_GIT_DESCRIBE: ${{ inputs.override_git_describe }} | |
| AZURE_CODESIGN_ENDPOINT: https://eus.codesigning.azure.net/ | |
| AZURE_CODESIGN_ACCOUNT: duckdb-signing-2 | |
| AZURE_CODESIGN_PROFILE: duckdb-certificate-profile | |
| jobs: | |
| check-draft: | |
| # We run all other jobs on PRs only if they are not draft PR | |
| if: github.event_name != 'pull_request' || github.event.pull_request.draft == false | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Preliminary checks on CI | |
| run: echo "Event name is ${{ github.event_name }}" | |
| win-release-64: | |
| # Builds binaries for windows_amd64 | |
| name: Windows (64 Bit) | |
| needs: check-draft | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| ref: ${{ inputs.git_ref }} | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Setup Ccache | |
| uses: hendrikmuhs/ccache-action@main | |
| with: | |
| key: ${{ github.job }} | |
| save: ${{ vars.BRANCHES_TO_BE_CACHED == '' || contains(vars.BRANCHES_TO_BE_CACHED, github.ref) }} | |
| - name: Build | |
| shell: bash | |
| run: | | |
| python scripts/windows_ci.py | |
| cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_GENERATOR_PLATFORM=x64 -DENABLE_EXTENSION_AUTOLOADING=1 -DENABLE_EXTENSION_AUTOINSTALL=1 -DDUCKDB_EXTENSION_CONFIGS="${GITHUB_WORKSPACE}/.github/config/bundled_extensions.cmake" -DDISABLE_UNITY=1 -DOVERRIDE_GIT_DESCRIBE="$OVERRIDE_GIT_DESCRIBE" | |
| cmake --build . --config Release --parallel | |
| - name: Set DUCKDB_INSTALL_LIB for ADBC tests | |
| shell: pwsh | |
| run: echo "DUCKDB_INSTALL_LIB=$((Get-ChildItem -Recurse -Filter "duckdb.dll" | Select-Object -First 1).FullName)" >> $GITHUB_ENV | |
| - name: Test DUCKDB_INSTALL_LIB variable | |
| shell: bash | |
| run: echo $DUCKDB_INSTALL_LIB | |
| - name: Test | |
| shell: bash | |
| if: ${{ inputs.skip_tests != 'true' }} | |
| run: | | |
| test/Release/unittest.exe | |
| - name: Test with VS2019 C++ stdlib | |
| shell: bash | |
| if: ${{ inputs.skip_tests != 'true' }} | |
| run: | | |
| choco install wget -y --no-progress | |
| wget -P ./test/Release https://blobs.duckdb.org/ci/msvcp140.dll | |
| ls ./test/Release | |
| ./test/Release/unittest.exe | |
| rm ./test/Release/msvcp140.dll | |
| - name: Tools Test | |
| shell: bash | |
| if: ${{ inputs.skip_tests != 'true' }} | |
| run: | | |
| python -m pip install pytest | |
| python -m pytest tools/shell/tests --shell-binary Release/duckdb.exe | |
| tools/sqlite3_api_wrapper/Release/test_sqlite3_api_wrapper.exe | |
| - name: Sign files with Azure Trusted Signing (TM) | |
| if: github.repository == 'duckdb/duckdb' && github.event_name != 'pull_request' | |
| uses: azure/trusted-signing-action@v0 | |
| with: | |
| azure-tenant-id: ${{ secrets.AZURE_CODESIGN_TENANT_ID }} | |
| azure-client-id: ${{ secrets.AZURE_CODESIGN_CLIENT_ID }} | |
| azure-client-secret: ${{ secrets.AZURE_CODESIGN_CLIENT_SECRET }} | |
| endpoint: ${{ env.AZURE_CODESIGN_ENDPOINT }} | |
| trusted-signing-account-name: ${{ env.AZURE_CODESIGN_ACCOUNT }} | |
| certificate-profile-name: ${{ env.AZURE_CODESIGN_PROFILE }} | |
| files-folder: ${{ github.workspace }} | |
| files-folder-filter: exe,dll | |
| files-folder-recurse: true | |
| file-digest: SHA256 | |
| timestamp-rfc3161: http://timestamp.acs.microsoft.com | |
| timestamp-digest: SHA256 | |
| - name: Deploy | |
| shell: bash | |
| env: | |
| AWS_ACCESS_KEY_ID: ${{ secrets.S3_DUCKDB_STAGING_ID }} | |
| AWS_SECRET_ACCESS_KEY: ${{ secrets.S3_DUCKDB_STAGING_KEY }} | |
| run: | | |
| python scripts/amalgamation.py | |
| /c/msys64/usr/bin/bash.exe -lc "pacman -Sy --noconfirm zip" | |
| /c/msys64/usr/bin/zip.exe -j duckdb_cli-windows-amd64.zip Release/duckdb.exe | |
| /c/msys64/usr/bin/zip.exe -j libduckdb-windows-amd64.zip src/Release/duckdb.dll src/Release/duckdb.lib src/amalgamation/duckdb.hpp src/include/duckdb.h | |
| ./scripts/upload-assets-to-staging.sh github_release libduckdb-windows-amd64.zip duckdb_cli-windows-amd64.zip | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: duckdb-binaries-windows-amd64 | |
| path: | | |
| libduckdb-windows-amd64.zip | |
| duckdb_cli-windows-amd64.zip | |
| - uses: ilammy/msvc-dev-cmd@v1 | |
| - name: Duckdb.dll export symbols with C++ on Windows | |
| shell: bash | |
| run: cl -I src/include examples/embedded-c++-windows/cppintegration.cpp -link src/Release/duckdb.lib | |
| win-release-32: | |
| name: Windows (32 Bit) | |
| needs: | |
| - win-release-64 | |
| - check-draft | |
| if: ${{ github.ref == 'refs/heads/main' || github.repository != 'duckdb/duckdb' || inputs.run_all == 'true' }} | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| ref: ${{ inputs.git_ref }} | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Setup Ccache | |
| uses: hendrikmuhs/ccache-action@main | |
| with: | |
| key: ${{ github.job }} | |
| save: ${{ vars.BRANCHES_TO_BE_CACHED == '' || contains(vars.BRANCHES_TO_BE_CACHED, github.ref) }} | |
| - name: Build | |
| shell: bash | |
| run: | | |
| cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_GENERATOR_PLATFORM=Win32 -DDUCKDB_EXTENSION_CONFIGS="${GITHUB_WORKSPACE}/.github/config/bundled_extensions.cmake" -DOVERRIDE_GIT_DESCRIBE="$OVERRIDE_GIT_DESCRIBE" | |
| cmake --build . --config Release --parallel | |
| - name: Test | |
| shell: bash | |
| run: test/Release/unittest.exe | |
| - name: Tools Test | |
| shell: bash | |
| run: | | |
| python -m pip install pytest | |
| python -m pytest tools/shell/tests --shell-binary Release/duckdb.exe | |
| tools/sqlite3_api_wrapper/Release/test_sqlite3_api_wrapper.exe | |
| win-release-arm64: | |
| name: Windows (ARM64) | |
| needs: | |
| - win-release-64 | |
| - check-draft | |
| if: ${{ github.ref == 'refs/heads/main' || github.repository != 'duckdb/duckdb' || inputs.run_all == 'true' }} | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| ref: ${{ inputs.git_ref }} | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Setup Ccache | |
| uses: hendrikmuhs/ccache-action@main | |
| with: | |
| key: ${{ github.job }} | |
| save: ${{ vars.BRANCHES_TO_BE_CACHED == '' || contains(vars.BRANCHES_TO_BE_CACHED, github.ref) }} | |
| - name: Build | |
| shell: bash | |
| run: | | |
| cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_GENERATOR_PLATFORM=ARM64 -DDUCKDB_EXTENSION_CONFIGS="${GITHUB_WORKSPACE}/.github/config/bundled_extensions.cmake" -DOVERRIDE_GIT_DESCRIBE="$OVERRIDE_GIT_DESCRIBE" -DDUCKDB_EXPLICIT_PLATFORM=windows_arm64 -DDUCKDB_CUSTOM_PLATFORM=windows_arm64 -DBUILD_UNITTESTS=FALSE | |
| cmake --build . --config Release --parallel | |
| - name: Sign files with Azure Trusted Signing (TM) | |
| if: github.repository == 'duckdb/duckdb' && github.event_name != 'pull_request' | |
| uses: azure/trusted-signing-action@v0 | |
| with: | |
| azure-tenant-id: ${{ secrets.AZURE_CODESIGN_TENANT_ID }} | |
| azure-client-id: ${{ secrets.AZURE_CODESIGN_CLIENT_ID }} | |
| azure-client-secret: ${{ secrets.AZURE_CODESIGN_CLIENT_SECRET }} | |
| endpoint: ${{ env.AZURE_CODESIGN_ENDPOINT }} | |
| trusted-signing-account-name: ${{ env.AZURE_CODESIGN_ACCOUNT }} | |
| certificate-profile-name: ${{ env.AZURE_CODESIGN_PROFILE }} | |
| files-folder: ${{ github.workspace }} | |
| files-folder-filter: exe,dll | |
| files-folder-recurse: true | |
| file-digest: SHA256 | |
| timestamp-rfc3161: http://timestamp.acs.microsoft.com | |
| timestamp-digest: SHA256 | |
| - name: Deploy | |
| shell: bash | |
| env: | |
| AWS_ACCESS_KEY_ID: ${{ secrets.S3_DUCKDB_STAGING_ID }} | |
| AWS_SECRET_ACCESS_KEY: ${{ secrets.S3_DUCKDB_STAGING_KEY }} | |
| run: | | |
| python scripts/amalgamation.py | |
| /c/msys64/usr/bin/bash.exe -lc "pacman -Sy --noconfirm zip" | |
| /c/msys64/usr/bin/zip.exe -j duckdb_cli-windows-arm64.zip Release/duckdb.exe | |
| /c/msys64/usr/bin/zip.exe -j libduckdb-windows-arm64.zip src/Release/duckdb.dll src/Release/duckdb.lib src/amalgamation/duckdb.hpp src/include/duckdb.h | |
| ./scripts/upload-assets-to-staging.sh github_release libduckdb-windows-arm64.zip duckdb_cli-windows-arm64.zip | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: duckdb-binaries-windows-arm64 | |
| path: | | |
| libduckdb-windows-arm64.zip | |
| duckdb_cli-windows-arm64.zip | |
| mingw: | |
| name: MinGW (64 Bit) | |
| needs: | |
| - win-release-64 | |
| - check-draft | |
| if: ${{ inputs.skip_tests != 'true' }} | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ inputs.git_ref }} | |
| - uses: msys2/setup-msys2@v2 | |
| with: | |
| msystem: MINGW64 | |
| update: true | |
| install: git mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake mingw-w64-x86_64-ninja | |
| cache: ${{ github.ref == 'refs/heads/main' || github.repository != 'duckdb/duckdb' }} | |
| # see here: https://gist.github.com/scivision/1de4fd6abea9ba6b2d87dc1e86b5d2ce | |
| - name: Put MSYS2_MinGW64 on PATH | |
| # there is not yet an environment variable for this path from msys2/setup-msys2 | |
| shell: msys2 {0} | |
| run: export PATH=D:/a/_temp/msys/msys64/mingw64/bin:$PATH | |
| - name: Setup Ccache | |
| uses: hendrikmuhs/ccache-action@main | |
| with: | |
| key: ${{ github.job }} | |
| save: ${{ vars.BRANCHES_TO_BE_CACHED == '' || contains(vars.BRANCHES_TO_BE_CACHED, github.ref) }} | |
| - name: Build | |
| shell: msys2 {0} | |
| run: | | |
| cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DBUILD_EXTENSIONS='parquet' -DOVERRIDE_GIT_DESCRIBE="$OVERRIDE_GIT_DESCRIBE" | |
| cmake --build . --config Release | |
| - name: Test | |
| shell: msys2 {0} | |
| run: | | |
| cp src/libduckdb.dll . | |
| test/unittest.exe | |
| - name: Tools Test | |
| shell: msys2 {0} | |
| run: | | |
| tools/sqlite3_api_wrapper/test_sqlite3_api_wrapper.exe | |
| win-packaged-upload: | |
| runs-on: windows-latest | |
| needs: | |
| - win-release-64 | |
| - win-release-arm64 | |
| steps: | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| name: duckdb-binaries-windows-arm64 | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| name: duckdb-binaries-windows-amd64 | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: duckdb-binaries-windows | |
| path: | | |
| libduckdb-windows-amd64.zip | |
| duckdb_cli-windows-amd64.zip | |
| libduckdb-windows-arm64.zip | |
| duckdb_cli-windows-arm64.zip |