Skip to content

Fix MANIFEST.in and make CI tests build and use a source distribution instead of the source directly #91

Fix MANIFEST.in and make CI tests build and use a source distribution instead of the source directly

Fix MANIFEST.in and make CI tests build and use a source distribution instead of the source directly #91

Workflow file for this run

name: Wheels
on:
push:
pull_request:
paths-ignore:
- "CONTRIBUTING.md"
release:
types:
- published
schedule:
# At 12:00 on every day-of-month
- cron: "0 12 */1 * *"
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
env:
COMDB2_DBNAME: mattdb
TIMEOUT: 30
jobs:
build_sdist:
name: Build source distribution
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build sdist
run: pipx run build --sdist
- name: Upload sdist
uses: actions/upload-artifact@v3
with:
path: dist/*.tar.gz
test:
name: Test suite
runs-on: ubuntu-latest
strategy:
matrix:
python-version:
- '3.12'
- '3.11'
- '3.10'
- '3.9'
- '3.8'
steps:
- name: Install dependencies
run: '
sudo apt-get install -qy
pkg-config
' # libcdb2api-dev is installed from source below
- uses: actions/checkout@v3
- name: Download sdist
uses: actions/download-artifact@v3
with:
name: artifact
path: dist
- name: Checkout comdb2 dependency
uses: actions/checkout@v3
with:
repository: bloomberg/comdb2
path: original_comdb2
- name: Build comdb2 from source
run: '
sudo apt-get update &&
sudo apt-get install -qy
bison
build-essential
cmake
flex
libevent-dev
liblz4-dev
libprotobuf-c-dev
libreadline-dev
libsqlite3-dev
libssl-dev
libunwind-dev
ncurses-dev
protobuf-c-compiler
tcl
uuid-dev
zlib1g-dev &&
(
mkdir original_comdb2/build &&
cd original_comdb2/build &&
cmake .. &&
make &&
sudo make install
)
'
- name: Start local comdb2 instance
run: '
sudo mkdir -p /opt/bb/share/schemas/$COMDB2_DBNAME &&
echo "$COMDB2_DBNAME 1234 $(hostname -f)" > /opt/bb/etc/cdb2/config/comdb2db.cfg &&
(/opt/bb/bin/pmux -n &) &&
echo started pmux &&
/opt/bb/bin/comdb2 --create $COMDB2_DBNAME &&
(/opt/bb/bin/comdb2 $COMDB2_DBNAME > /tmp/$COMDB2_DBNAME.log 2>&1 &);
iterations=0;
until /opt/bb/bin/cdb2sql $COMDB2_DBNAME local "select 1+1" > /dev/null 2>&1;
do
echo -n ".";
sleep 1;
iterations=$(($iterations + 1));
if [ "$iterations" -ge "$TIMEOUT" ]; then
echo >&2 "$COMDB2_DBNAME failed to start after $iterations seconds";
exit 1;
fi;
done
'
- name: Creating tables
run: |
tables="$(cat tests/schemas/$COMDB2_DBNAME/table_constraint_order.txt)"
for table_name in $tables
do
table_file="tests/schemas/$COMDB2_DBNAME/$table_name.csc2"
echo "Creating $table_name from $table_file"
/opt/bb/bin/cdb2sql "$COMDB2_DBNAME" local "create table $table_name { $(cat $table_file) }"
done
- name: Set up Python ${{ matrix.python_version }}
uses: actions/setup-python@v4 # note that this step overwrites the PKG_CONFIG_PATH variable
with:
python-version: ${{ matrix.python_version }}
- name: Install python dependencies
run: |
python -m pip install --upgrade pip
PKG_CONFIG_PATH=/opt/bb/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig LDFLAGS="-Wl,-rpath,/opt/bb/lib" python -m pip install --no-index --find-links=dist/ comdb2[tests]
- name: Run Tests
run: (cd tests && python -m pytest -vvv)