add flightsql test workflow #288
This file contains 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: Compatibility Test for Clients | |
on: | |
push: | |
branches: | |
- main | |
- compatibility | |
- test | |
- support_flightsql | |
pull_request: | |
branches: [ "main" ] | |
jobs: | |
test-mysql: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: '1.23' | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '16' | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.13' | |
- name: Install system packages | |
uses: awalsh128/cache-apt-pkgs-action@latest | |
with: | |
packages: bats cpanminus libmysqlclient-dev dotnet-sdk-8.0 dotnet-runtime-8.0 php-mysql r-base-core | |
version: 1.1 | |
- name: Install dependencies | |
run: | | |
go get . | |
pip3 install "sqlglot[rs]" | |
curl -LJO https://github.com/duckdb/duckdb/releases/download/v1.1.3/duckdb_cli-linux-amd64.zip | |
unzip duckdb_cli-linux-amd64.zip | |
chmod +x duckdb | |
sudo mv duckdb /usr/local/bin | |
cd compatibility/mysql/ | |
curl -L -o ./java/mysql-connector-java-8.0.30.jar https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.30/mysql-connector-java-8.0.30.jar | |
npm install mysql | |
sudo cpanm --notest DBD::mysql | |
pip3 install mysql-connector-python | |
sudo gem install mysql2 | |
# R is unstable on GitHub Actions, so we disable it for now | |
# sudo apt-get install -y libblas-dev | |
# sudo R -e "install.packages('RMySQL', repos='http://cran.r-project.org')" | |
- name: Build | |
run: go build -v | |
- name: Start MyDuck Server | |
run: | | |
./myduckserver & | |
sleep 5 | |
- name: Run the Compatibility Test for MySQL Client | |
run: | | |
bats ./compatibility/mysql/test.bats | |
test-postgresql: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: '1.23' | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '16' | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.13' | |
- name: Install system packages | |
uses: awalsh128/cache-apt-pkgs-action@latest | |
with: | |
packages: bats cpanminus libpq-dev postgresql-client dotnet-sdk-8.0 dotnet-runtime-8.0 r-base-core | |
version: 1.1 | |
- name: Install dependencies | |
run: | | |
go get . | |
pip3 install "sqlglot[rs]" | |
curl -LJO https://github.com/duckdb/duckdb/releases/download/v1.1.3/duckdb_cli-linux-amd64.zip | |
unzip duckdb_cli-linux-amd64.zip | |
chmod +x duckdb | |
sudo mv duckdb /usr/local/bin | |
cd compatibility/pg/ | |
curl -L -o ./java/postgresql-42.7.4.jar https://jdbc.postgresql.org/download/postgresql-42.7.4.jar | |
npm install pg | |
sudo cpanm --notest DBD::Pg | |
pip3 install "psycopg[binary]" pandas pyarrow polars | |
sudo apt-get install -y libblas-dev | |
sudo gem install pg | |
# R is unstable on GitHub Actions, so we disable it for now | |
# TODO: Speed up the installation of RPostgres | |
# sudo R -e "install.packages('RPostgres', repos='http://cran.r-project.org')" | |
- name: Build | |
run: go build -v | |
- name: Start MyDuck Server | |
run: | | |
./myduckserver & | |
sleep 5 | |
- name: Run the Compatibility Test for PostgreSQL Client | |
run: | | |
bats ./compatibility/pg/test.bats | |
- name: Run the Compatibility Test for Python Data Tools | |
run: | | |
bats ./compatibility/pg-pytools/test.bats | |
test-flightsql: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: '1.23' | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.13' | |
- name: Install dependencies | |
run: | | |
go get . | |
pip3 install "sqlglot[rs]" | |
pip3 install "psycopg[binary]" pandas pyarrow polars adbc_driver_flightsql | |
- name: Build | |
run: go build -v | |
- name: Start MyDuck Server | |
run: | | |
./myduckserver & | |
sleep 5 | |
- name: Run the Compatibility Test for FlightSQL | |
run: | | |
go test -v ./compatibility/flightsql/go/flightsql_test.go | |
python3 -m unittest discover ./compatibility/flightsql/python -p "flightsql_test.py" |