Update compatibility tests for clients #3
Workflow file for this run
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 | |
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.10' | |
- 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 | |
duckdb -c 'INSTALL json from core' | |
duckdb -c 'SELECT extension_name, loaded, install_path FROM duckdb_extensions() where installed' | |
sudo apt-get update | |
sudo apt-get install --yes --no-install-recommends bats cpanminus | |
cd compatibility/mysql/ | |
sudo apt-get install --yes --no-install-recommends libmysqlclient-dev dotnet-sdk-8.0 dotnet-runtime-8.0 | |
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 apt-get install --yes --no-install-recommends php-mysql | |
sudo cpanm DBD::mysql | |
pip3 install mysql-connector-python | |
sudo apt-get install --yes --no-install-recommends r-base-core | |
sudo R -e "install.packages('RMySQL', repos='http://cran.r-project.org')" | |
sudo gem install mysql2 | |
- 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.10' | |
- 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 | |
duckdb -c 'INSTALL json from core' | |
duckdb -c 'SELECT extension_name, loaded, install_path FROM duckdb_extensions() where installed' | |
sudo apt-get update | |
sudo apt-get install --yes --no-install-recommends bats cpanminus | |
cd compatibility/pg/ | |
sudo apt-get install --yes --no-install-recommends postgresql-client dotnet-sdk-8.0 dotnet-runtime-8.0 | |
curl -L -o ./java/postgresql-42.7.4.jar https://jdbc.postgresql.org/download/postgresql-42.7.3.jar | |
npm install pg | |
sudo cpanm DBD::Pg | |
pip3 install psycopg2 | |
sudo apt-get install --yes --no-install-recommends r-base-core | |
sudo R -e "install.packages('RPostgres', repos='http://cran.r-project.org')" | |
sudo gem install pg | |
- 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 | |
final-check: | |
runs-on: ubuntu-latest | |
needs: [test-mysql, test-postgresql] | |
steps: | |
- name: Check results | |
run: echo "All tests passed successfully!" |