Fix MANIFEST.in
and make CI tests build and use a source distribution instead of the source directly
#97
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: 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: | |
- name: Install dependencies | |
run: ' | |
sudo apt-get install -qy | |
pkg-config | |
' # libcdb2api-dev is installed from source below | |
- uses: actions/checkout@v4 | |
- 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: Build sdist | |
run: PKG_CONFIG_PATH=/opt/bb/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig 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 | |
needs: [build_sdist] | |
strategy: | |
matrix: | |
python-version: | |
- '3.12' | |
- '3.11' | |
- '3.10' | |
- '3.9' | |
- '3.8' | |
steps: | |
- name: Download sdist | |
uses: actions/download-artifact@v3 | |
with: | |
name: artifact | |
path: dist | |
- name: Install dependencies | |
run: ' | |
sudo apt-get install -qy | |
pkg-config | |
' # libcdb2api-dev is installed from source below | |
- 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 dist/tests/schemas/$COMDB2_DBNAME/table_constraint_order.txt)" | |
for table_name in $tables | |
do | |
table_file="dist/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 dist/tests && python -m pytest -vvv) |