Add test case for binding hugeint as UUID #73
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: OSX | |
| 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/OSX.yml' | |
| concurrency: | |
| group: osx-${{ 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 }} | |
| jobs: | |
| xcode-debug: | |
| name: OSX Debug | |
| runs-on: macos-14 | |
| env: | |
| TREAT_WARNINGS_AS_ERRORS: 1 | |
| CMAKE_CXX_FLAGS: '-DDEBUG' | |
| FORCE_ASSERT: 1 | |
| 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: Install ninja | |
| shell: bash | |
| run: brew install ninja | |
| - name: Build | |
| shell: bash | |
| run: GEN=ninja make release | |
| - name: Set DUCKDB_INSTALL_LIB for ADBC tests | |
| shell: bash | |
| run: echo "DUCKDB_INSTALL_LIB=$(find `pwd` -name "libduck*.dylib" | head -n 1)" >> $GITHUB_ENV | |
| - name: Test DUCKDB_INSTALL_LIB variable | |
| run: echo $DUCKDB_INSTALL_LIB | |
| - name: Test | |
| if: ${{ inputs.skip_tests != 'true' }} | |
| shell: bash | |
| run: make unittest_release | |
| - name: Amalgamation | |
| if: ${{ inputs.skip_tests != 'true' }} | |
| shell: bash | |
| run: | | |
| python scripts/amalgamation.py --extended | |
| cd src/amalgamation | |
| clang++ -std=c++11 -O0 -Wall -Werror -emit-llvm -S duckdb.cpp | |
| clang++ -DNDEBUG -O0 -std=c++11 -Wall -Werror -emit-llvm -S duckdb.cpp | |
| clang++ -DDEBUG -O0 -std=c++11 -Wall -Werror -emit-llvm -S duckdb.cpp | |
| xcode-release: | |
| # Builds binaries for osx_arm64 and osx_amd64 | |
| name: OSX Release | |
| runs-on: macos-14 | |
| needs: xcode-debug | |
| env: | |
| EXTENSION_CONFIGS: '${GITHUB_WORKSPACE}/.github/config/bundled_extensions.cmake' | |
| ENABLE_EXTENSION_AUTOLOADING: 1 | |
| ENABLE_EXTENSION_AUTOINSTALL: 1 | |
| OSX_BUILD_UNIVERSAL: 1 | |
| GEN: ninja | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| ref: ${{ inputs.git_ref }} | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Install Ninja | |
| run: brew install ninja | |
| - 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: Install pytest | |
| run: | | |
| python -m pip install pytest | |
| - name: Build | |
| shell: bash | |
| run: make | |
| - name: Print platform | |
| shell: bash | |
| run: ./build/release/duckdb -c "PRAGMA platform;" | |
| # from https://docs.github.com/en/actions/deployment/deploying-xcode-applications/installing-an-apple-certificate-on-macos-runners-for-xcode-development | |
| - name: Sign Binaries | |
| shell: bash | |
| env: | |
| BUILD_CERTIFICATE_BASE64: ${{ secrets.OSX_CODESIGN_BUILD_CERTIFICATE_BASE64 }} | |
| P12_PASSWORD: ${{ secrets.OSX_CODESIGN_P12_PASSWORD }} | |
| KEYCHAIN_PASSWORD: ${{ secrets.OSX_CODESIGN_KEYCHAIN_PASSWORD }} | |
| TEAM_ID : ${{ secrets.OSX_NOTARIZE_TEAM_ID }} | |
| APPLE_ID: ${{ secrets.OSX_NOTARIZE_APPLE_ID }} | |
| PASSWORD: ${{ secrets.OSX_NOTARIZE_PASSWORD }} | |
| run: | | |
| if [[ "$GITHUB_REPOSITORY" = "duckdb/duckdb" ]] ; then | |
| . scripts/osx_import_codesign_certificate.sh | |
| echo -e '<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">\n<plist version="1.0">\n<dict>\n <key>com.apple.security.cs.disable-library-validation</key>\n <true/>\n</dict>\n</plist>' > entitlements.plist | |
| codesign --options runtime --entitlements entitlements.plist --all-architectures --force --sign "Developer ID Application: Stichting DuckDB Foundation" build/release/duckdb | |
| codesign --options runtime --entitlements entitlements.plist --all-architectures --force --sign "Developer ID Application: Stichting DuckDB Foundation" build/release/src/libduckdb*.dylib | |
| zip -j notarize.zip build/release/duckdb build/release/src/libduckdb.dylib | |
| export XCRUN_RESPONSE=$(xcrun notarytool submit --progress --apple-id "$APPLE_ID" --password "$PASSWORD" --team-id "$TEAM_ID" --wait -f json notarize.zip) | |
| rm notarize.zip | |
| if [[ $(./build/release/duckdb -csv -noheader -c "SELECT (getenv('XCRUN_RESPONSE')::JSON)->>'status'") != "Accepted" ]] ; then | |
| echo "Notarization failed!" | |
| echo $XCRUN_RESPONSE | |
| exit 1 | |
| fi | |
| fi | |
| - 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 | |
| zip -j duckdb_cli-osx-universal.zip build/release/duckdb | |
| gzip -9 -k -n -c build/release/duckdb > duckdb_cli-osx-universal.gz | |
| zip -j libduckdb-osx-universal.zip build/release/src/libduckdb*.dylib src/amalgamation/duckdb.hpp src/include/duckdb.h | |
| ./scripts/upload-assets-to-staging.sh github_release libduckdb-osx-universal.zip duckdb_cli-osx-universal.zip duckdb_cli-osx-universal.gz | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: duckdb-binaries-osx | |
| path: | | |
| libduckdb-osx-universal.zip | |
| duckdb_cli-osx-universal.zip | |
| - name: Unit Test | |
| shell: bash | |
| if: ${{ inputs.skip_tests != 'true' }} | |
| run: make allunit | |
| - name: Tools Tests | |
| shell: bash | |
| if: ${{ inputs.skip_tests != 'true' }} | |
| run: | | |
| python -m pytest tools/shell/tests --shell-binary build/release/duckdb | |
| - name: Examples | |
| shell: bash | |
| if: ${{ inputs.skip_tests != 'true' }} | |
| run: | | |
| (cd examples/embedded-c; make) | |
| (cd examples/embedded-c++; make) |