Merge branch 'duckdb:main' into CastToUUID #72
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: LinuxRelease | |
| on: | |
| workflow_call: | |
| inputs: | |
| override_git_describe: | |
| type: string | |
| git_ref: | |
| type: string | |
| skip_tests: | |
| type: string | |
| workflow_dispatch: | |
| inputs: | |
| override_git_describe: | |
| description: 'Version tag to override git describe' | |
| type: string | |
| git_ref: | |
| description: 'Git ref' | |
| type: string | |
| skip_tests: | |
| description: 'Pass "true" to skip tests' | |
| type: string | |
| push: | |
| branches-ignore: | |
| - 'main' | |
| - 'feature' | |
| - 'v*.*-*' | |
| paths-ignore: | |
| - '**.md' | |
| - 'test/configs/**' | |
| - 'tools/**' | |
| - '!tools/shell/**' | |
| - '.github/patches/duckdb-wasm/**' | |
| - '.github/workflows/**' | |
| - '!.github/workflows/LinuxRelease.yml' | |
| 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/LinuxRelease.yml' | |
| concurrency: | |
| group: linuxrelease-${{ 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: | |
| 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 }}" | |
| linux-release-cli: | |
| needs: | |
| - check-draft | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| config: [ { runner: ubuntu-latest, arch: amd64, image: x86_64}, {runner: ubuntu-24.04-arm, arch: arm64, image: aarch64}] | |
| name: Linux CLI (${{ matrix.config.arch }}) | |
| runs-on: ${{ matrix.config.runner }} | |
| steps: | |
| - uses: actions/checkout@v3 | |
| with: | |
| fetch-depth: 0 | |
| ref: ${{ inputs.git_ref }} | |
| - name: Install pytest | |
| run: | | |
| python3 -m pip install pytest | |
| - name: Build | |
| shell: bash | |
| run: | | |
| export PWD=`pwd` | |
| docker run \ | |
| -v$PWD:$PWD \ | |
| -e CMAKE_BUILD_PARALLEL_LEVEL=2 \ | |
| -e OVERRIDE_GIT_DESCRIBE=$OVERRIDE_GIT_DESCRIBE \ | |
| -e EXTENSION_CONFIGS="$PWD/.github/config/bundled_extensions.cmake" \ | |
| -e ENABLE_EXTENSION_AUTOLOADING=1 \ | |
| -e ENABLE_EXTENSION_AUTOINSTALL=1 \ | |
| -e BUILD_BENCHMARK=1 \ | |
| -e FORCE_WARN_UNUSED=1 \ | |
| quay.io/pypa/manylinux_2_28_${{ matrix.config.image }} \ | |
| bash -c " | |
| set -e | |
| yum install -y perl-IPC-Cmd gcc-toolset-12 gcc-toolset-12-gcc-c++ | |
| source /opt/rh/gcc-toolset-12/enable | |
| export CC=gcc | |
| export CXX=g++ | |
| git config --global --add safe.directory $PWD | |
| make -C $PWD | |
| " | |
| - name: Print platform | |
| shell: bash | |
| run: ./build/release/duckdb -c "PRAGMA platform;" | |
| - name: Deploy | |
| shell: bash | |
| env: | |
| AWS_ACCESS_KEY_ID: ${{ secrets.S3_DUCKDB_STAGING_ID }} | |
| AWS_SECRET_ACCESS_KEY: ${{ secrets.S3_DUCKDB_STAGING_KEY }} | |
| run: | | |
| python3 scripts/amalgamation.py | |
| zip -j duckdb_cli-linux-${{ matrix.config.arch }}.zip build/release/duckdb | |
| gzip -9 -k -n -c build/release/duckdb > duckdb_cli-linux-${{ matrix.config.arch }}.gz | |
| zip -j libduckdb-linux-${{ matrix.config.arch }}.zip build/release/src/libduckdb*.* src/amalgamation/duckdb.hpp src/include/duckdb.h | |
| ./scripts/upload-assets-to-staging.sh github_release libduckdb-linux-${{ matrix.config.arch }}.zip duckdb_cli-linux-${{ matrix.config.arch }}.zip duckdb_cli-linux-${{ matrix.config.arch }}.gz | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: duckdb-binaries-linux-${{ matrix.config.arch }} | |
| path: | | |
| libduckdb-linux-${{ matrix.config.arch }}.zip | |
| duckdb_cli-linux-${{ matrix.config.arch }}.zip | |
| duckdb_cli-linux-${{ matrix.config.arch }}.gz | |
| - name: Test | |
| shell: bash | |
| if: ${{ inputs.skip_tests != 'true' }} | |
| run: | | |
| python3 scripts/run_tests_one_by_one.py build/release/test/unittest "*" --time_execution | |
| - name: Tools Tests | |
| shell: bash | |
| if: ${{ inputs.skip_tests != 'true' }} | |
| run: | | |
| python3 -m pytest tools/shell/tests --shell-binary build/release/duckdb | |
| - name: Examples | |
| shell: bash | |
| if: ${{ inputs.skip_tests != 'true' }} | |
| run: | | |
| build/release/benchmark/benchmark_runner benchmark/micro/update/update_with_join.benchmark | |
| build/release/duckdb -c "COPY (SELECT 42) TO '/dev/stdout' (FORMAT PARQUET)" | cat | |
| upload-libduckdb-src: | |
| name: Upload libduckdb-src.zip | |
| needs: linux-release-cli | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v3 | |
| with: | |
| fetch-depth: 0 | |
| ref: ${{ inputs.git_ref }} | |
| - name: Deploy | |
| shell: bash | |
| env: | |
| AWS_ACCESS_KEY_ID: ${{ secrets.S3_DUCKDB_STAGING_ID }} | |
| AWS_SECRET_ACCESS_KEY: ${{ secrets.S3_DUCKDB_STAGING_KEY }} | |
| run: | | |
| python3 scripts/amalgamation.py | |
| zip -j libduckdb-src.zip src/amalgamation/duckdb.hpp src/amalgamation/duckdb.cpp src/include/duckdb.h src/include/duckdb_extension.h | |
| ./scripts/upload-assets-to-staging.sh github_release libduckdb-src.zip | |
| symbol-leakage: | |
| name: Symbol Leakage | |
| runs-on: ubuntu-22.04 | |
| needs: linux-release-cli | |
| if: ${{ inputs.skip_tests != 'true' }} | |
| env: | |
| GEN: ninja | |
| steps: | |
| - uses: actions/checkout@v3 | |
| with: | |
| fetch-depth: 0 | |
| ref: ${{ inputs.git_ref }} | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Install Ninja | |
| shell: bash | |
| run: sudo apt-get update -y -qq && sudo apt-get install -y -qq ninja-build | |
| - 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: make | |
| - name: Symbol Leakage Test | |
| shell: bash | |
| run: python3 scripts/exported_symbols_check.py build/release/src/libduckdb*.so |