Skip to content

support python 3.12 #1286

support python 3.12

support python 3.12 #1286

Workflow file for this run

name: ci
on:
pull_request:
branches:
- main
- prerelease
push:
branches:
- main
jobs:
# rust:
# runs-on: ubuntu-latest
# container: ubuntu:20.04
# services:
# # Label used to access the service container
# postgres:
# # Docker Hub image
# image: postgres
# env:
# POSTGRES_PASSWORD: postgres
# # Set health checks to wait until postgres has started
# options: >-
# --health-cmd pg_isready
# --health-interval 10s
# --health-timeout 5s
# --health-retries 5
# # mysql
# mysql:
# image: ghcr.io/wangxiaoying/mysql:latest
# env:
# MYSQL_DATABASE: mysql
# MYSQL_ROOT_PASSWORD: mysql
# LANG: C.UTF-8
# ports:
# - 3306:3306
# options: >-
# --health-cmd "mysqladmin ping"
# --health-interval 10s
# --health-timeout 10s
# --health-retries 5
# mssql:
# image: mcr.microsoft.com/mssql/server:2019-latest
# env:
# ACCEPT_EULA: y
# SA_PASSWORD: mssql!Password
# ports:
# - 1433:1433
# options: >-
# --health-cmd "/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P \"$SA_PASSWORD\" -Q 'SELECT 1' || exit 1"
# --health-interval 10s
# --health-timeout 5s
# --health-retries 20
# steps:
# - uses: actions/checkout@v4
# - name: Install tools
# run: |
# apt-get update
# apt-get install -y curl postgresql-client build-essential pkg-config libssl-dev git sqlite3 libsqlite3-dev mysql-client python3 python3-pip libicu66 libkrb5-dev libclang-dev
# pip3 install mssql-cli
# pip3 install cli-helpers==2.2.0
# ln -s /usr/bin/python3 /usr/bin/python
# echo "Cache Version ${{ secrets.CACHE_VERSION }}"
# env:
# DEBIAN_FRONTEND: noninteractive
# - name: Install Rust
# uses: actions-rs/toolchain@v1
# with:
# toolchain: stable
# components: rustfmt
# default: true
# - uses: actions/cache@v4
# with:
# path: |
# ~/.cargo/bin/
# ~/.cargo/registry/index/
# ~/.cargo/registry/cache/
# ~/.cargo/git/db/
# target/
# key: ${{ runner.os }}-cargo-${{ secrets.CACHE_VERSION }}-${{ hashFiles('**/Cargo.lock') }}
# - name: Install other dependent tools
# run: |
# if [ ! -f "$HOME/.cargo/bin/just" ]; then curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to ~/.cargo/bin; fi
# - name: Seed the database
# run: just seed-db
# env:
# POSTGRES_URL: "postgresql://postgres:postgres@postgres:5432/postgres"
# SQLITE_URL: "sqlite:///tmp/test.db"
# MYSQL_HOST: mysql
# MYSQL_PORT: 3306
# MYSQL_DB: mysql
# MYSQL_USER: root
# MYSQL_PASSWORD: mysql
# MSSQL_HOST: mssql
# MSSQL_PORT: 1433
# MSSQL_DB: tempdb
# MSSQL_USER: sa
# MSSQL_PASSWORD: mssql!Password
# - name: Is the code formatted?
# uses: actions-rs/cargo@v1
# with:
# command: fmt
# args: --all -- --check -q
# - name: Clippy linting
# uses: actions-rs/cargo@v1
# with:
# command: clippy
# args: --features all
# - name: Check each feature gate
# run: just test-feature-gate
# - name: Run tests
# run: cargo clean && just test
# env:
# POSTGRES_URL: "postgresql://postgres:postgres@postgres:5432/postgres"
# SQLITE_URL: "sqlite:///tmp/test.db"
# MYSQL_URL: "mysql://root:mysql@mysql:3306/mysql"
# MSSQL_URL: "mssql://sa:mssql!Password@mssql:1433/tempdb"
# - name: Test build docs
# uses: actions-rs/cargo@v1
# with:
# command: doc
# args: --no-deps --features all
python:
runs-on: ubuntu-latest
container: ubuntu:20.04
strategy:
matrix:
# python-version: ["3.9", "3.10", "3.11", "3.12"]
python-version: ["3.12"]
# services:
# # Label used to access the service container
# postgres:
# # Docker Hub image
# image: postgres
# env:
# POSTGRES_PASSWORD: postgres
# # Set health checks to wait until postgres has started
# options: >-
# --health-cmd pg_isready
# --health-interval 10s
# --health-timeout 5s
# --health-retries 5
# # mysql
# mysql:
# image: ghcr.io/wangxiaoying/mysql:latest
# env:
# MYSQL_DATABASE: mysql
# MYSQL_ROOT_PASSWORD: mysql
# LANG: C.UTF-8
# ports:
# - 3306:3306
# options: >-
# --health-cmd "mysqladmin ping"
# --health-interval 10s
# --health-timeout 10s
# --health-retries 5
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Setup python env
run: |
which python
which pip
# ln -s `which python` /usr/bin/python
# ln -s `which pip` /usr/bin/pip
echo "$Python3_ROOT_DIR/bin" >> $GITHUB_PATH
echo $GITHUB_PATH
- name: Install tools
run: |
apt-get update
apt-get install -y wget curl postgresql-client build-essential pkg-config libssl-dev git sqlite3 libsqlite3-dev mysql-client libmysqlclient-dev libicu66 libkrb5-dev libclang-dev
env:
DEBIAN_FRONTEND: noninteractive
- uses: Gr1N/setup-poetry@v9
# - name: install poetry
# run: |
# python -m pip install poetry
# poetry --version
- uses: extractions/setup-just@v2
- name: Install python dependencies
run: just bootstrap-python
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
components: rustfmt
default: true
- uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: "17"
# - uses: actions/cache@v4
# with:
# path: |
# ~/.cargo/bin/
# ~/.cargo/registry/index/
# ~/.cargo/registry/cache/
# ~/.cargo/git/db/
# target/
# key: ${{ runner.os }}-cargo-python-${{ matrix.python-version }}-${{ secrets.CACHE_VERSION }}-${{ hashFiles('**/Cargo.lock') }}
- name: Seed the database
run: just seed-db
env:
POSTGRES_URL: "postgresql://postgres:postgres@postgres:5432/postgres"
SQLITE_URL: "sqlite:///tmp/test.db"
MYSQL_HOST: mysql
MYSQL_PORT: 3306
MYSQL_DB: mysql
MYSQL_USER: root
MYSQL_PASSWORD: mysql
# - name: Clippy linting
# uses: actions-rs/cargo@v1
# with:
# command: clippy
# args: --features all --all
# - name: Cache venv
# uses: actions/cache@v4
# with:
# path: ~/.cache/pypoetry/virtualenvs
# key: ${{ runner.os }}-${{ matrix.python-version }}-venv-${{ secrets.CACHE_VERSION }}-${{ hashFiles('connectorx-python/poetry.lock') }}
- name: Install python dependencies
run: just bootstrap-python
- name: Test python
run: just test-python
env:
POSTGRES_URL: "postgresql://postgres:postgres@postgres:5432/postgres"
SQLITE_URL: "sqlite:///tmp/test.db"
MYSQL_URL: "mysql://root:mysql@mysql:3306/mysql"
DB1: "postgresql://postgres:postgres@postgres:5432/postgres"
DB2: "postgresql://postgres:postgres@postgres:5432/postgres"
FED_CONFIG_PATH: ${{ github.workspace }}/.github/config
SQLITE3_STATIC: 1