Skip to content

feat: add DuckDB::Value.create_varchar #2736

feat: add DuckDB::Value.create_varchar

feat: add DuckDB::Value.create_varchar #2736

Workflow file for this run

name: MacOS
on:
push:
branches:
- main
pull_request:
types:
- opened
- synchronize
- reopened
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
test:
runs-on: macos-latest
timeout-minutes: 120
strategy:
matrix:
ruby: ['3.2.11', '3.3.11', '3.4.9', '4.0.2', 'head']
duckdb: ['1.4.4', '1.5.1']
steps:
- uses: actions/checkout@v4
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
- name: duckdb cache
id: duckdb-cache
uses: actions/cache@v4
with:
path: libduckdb-osx-universal
key: ${{ runner.os }}-duckdb-v${{ matrix.duckdb }}
- name: Download duckdb ${{ matrix.duckdb }}
if: steps.duckdb-cache.outputs.cache-hit != 'true'
env:
DUCKDB_VERSION: ${{ matrix.duckdb }}
run: |
curl -OL https://github.com/duckdb/duckdb/releases/download/v${DUCKDB_VERSION}/libduckdb-osx-universal.zip
case "${DUCKDB_VERSION}" in
"1.5.1") EXPECTED_SHA256="d9dd723c59f8571202b468f6bf71d4555238544553dd1445e6c9ecb39f54c0f3" ;;
"1.4.4") EXPECTED_SHA256="5e6d79f5fb86bbd4f24d59cee3bc38f113d1433761df35337e3c01c62eeafe26" ;;
*) echo "No known SHA256 for DuckDB v${DUCKDB_VERSION}"; exit 1 ;;
esac
echo "${EXPECTED_SHA256} libduckdb-osx-universal.zip" | shasum -a 256 -c
mkdir libduckdb-osx-universal
unzip libduckdb-osx-universal.zip -d libduckdb-osx-universal
- name: bundle install with Ruby ${{ matrix.ruby }}
run: |
bundle install --jobs 4 --retry 3
- name: Build test with DUCKDB_API_NO_DEPRECATED and Ruby ${{ matrix.ruby }}
run: |
env DUCKDB_API_NO_DEPRECATED=1 bundle exec rake build -- --with-duckdb-include=${GITHUB_WORKSPACE}/libduckdb-osx-universal --with-duckdb-lib=${GITHUB_WORKSPACE}/libduckdb-osx-universal
bundle exec rake clean
- name: Build with Ruby ${{ matrix.ruby }}
run: |
bundle exec rake build -- --with-duckdb-include=${GITHUB_WORKSPACE}/libduckdb-osx-universal --with-duckdb-lib=${GITHUB_WORKSPACE}/libduckdb-osx-universal
- name: Setup MySQL
run: |
brew install mysql
brew services start mysql
sleep 5
mysql -u root -e "CREATE DATABASE test_db;"
mysql -u root -e "CREATE USER 'test_user'@'127.0.0.1' IDENTIFIED BY 'test_password';"
mysql -u root -e "GRANT ALL PRIVILEGES ON test_db.* TO 'test_user'@'127.0.0.1';"
mysql -u root -e "FLUSH PRIVILEGES;"
- name: confirm duckdb library version
env:
EXPECTED_DUCKDB_VERSION: ${{ matrix.duckdb }}
DYLD_LIBRARY_PATH: ${{ github.workspace }}/libduckdb-osx-universal
run: |
ruby -Ilib -rduckdb -e '
actual = DuckDB::LIBRARY_VERSION
expected = ENV.fetch("EXPECTED_DUCKDB_VERSION")
abort("Expected DuckDB #{expected}, got #{actual}") if actual != expected
puts "duckdb library #{actual}"
'
- name: test with Ruby ${{ matrix.ruby }}
env:
MYSQL_TEST: 1
DYLD_LIBRARY_PATH: ${{ github.workspace }}/libduckdb-osx-universal
run: |
env RUBYOPT=-W:deprecated rake test
post-test:
name: All tests passed on macos
runs-on: macos-latest
needs: test
steps:
- run: echo ok