Skip to content

Commit

Permalink
Merge pull request #45 from gusmonod/fix-manifest
Browse files Browse the repository at this point in the history
Fix `MANIFEST.in` and make CI tests build and use a source distribution instead of the source directly
  • Loading branch information
Gus Monod authored Oct 25, 2023
2 parents 5654aea + 1bc9ad9 commit 29b0c11
Show file tree
Hide file tree
Showing 2 changed files with 133 additions and 42 deletions.
168 changes: 128 additions & 40 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,42 +1,34 @@
name: Tests

on:
push:
branches:
- main
pull_request:
branches:
- main
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:
test:
name: Test suite
build_bloomberg_comdb2:
name: Build bloomberg-comdb2 from source
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: Checkout comdb2 dependency
uses: actions/checkout@v3
- name: Checkout bloomberg-comdb2 repository
uses: actions/checkout@v4
with:
repository: bloomberg/comdb2
path: original_comdb2
- name: Build comdb2 from source
path: bloomberg-comdb2
- name: Install build dependencies
run: '
sudo apt-get update &&
sudo apt-get install -qy
Expand All @@ -55,15 +47,97 @@ jobs:
protobuf-c-compiler
tcl
uuid-dev
zlib1g-dev &&
zlib1g-dev
'
- name: Build from source
run: '
(
mkdir original_comdb2/build &&
cd original_comdb2/build &&
mkdir bloomberg-comdb2/build &&
cd bloomberg-comdb2/build &&
cmake .. &&
make &&
sudo make install
make
)
'
- name: Archive bloomberg-comdb2 repo with build artifacts
run: 'tar czvf bloomberg-comdb2.tar.gz bloomberg-comdb2/'
- name: Upload bloomberg-comdb2 repo with build artifacts
uses: actions/upload-artifact@v3
with:
name: bloomberg-comdb2
path: ./bloomberg-comdb2.tar.gz

build_sdist:
name: Build python-comdb2 source distribution
runs-on: ubuntu-latest
needs: [build_bloomberg_comdb2]
steps:
- name: Download bloomberg-comdb2 with build artifacts
uses: actions/download-artifact@v3
with:
name: bloomberg-comdb2
path: .
- name: Install bloomberg-comdb2
run: '
sudo apt-get install -qy
libevent-dev
liblz4-dev
libprotobuf-c-dev
libsqlite3-dev
libssl-dev
libunwind-dev
zlib1g-dev &&
tar xvf bloomberg-comdb2.tar.gz &&
(cd bloomberg-comdb2/build && sudo make install)
'
- uses: actions/checkout@v4
- name: 'Set up Python 3.7'
uses: actions/setup-python@v4 # note that this step overwrites the PKG_CONFIG_PATH variable
with:
python-version: '3.7' # the lowest version that we support in CI
- name: Build sdist
run: '
sudo apt-get install -qy pkg-config &&
PKG_CONFIG_PATH=/opt/bb/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:$PKG_CONFIG_PATH
pipx run build --sdist
'
- name: Upload sdist
uses: actions/upload-artifact@v3
with:
name: python-comdb2-sdist
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'
- '3.7'
steps:
- name: Download comdb2 repo with build artifacts
uses: actions/download-artifact@v3
with:
name: bloomberg-comdb2
path: .
- name: Install bloomberg-comdb2
run: '
sudo apt-get install -qy
libevent-dev
liblz4-dev
libprotobuf-c-dev
libsqlite3-dev
libssl-dev
libunwind-dev
zlib1g-dev &&
tar xvf bloomberg-comdb2.tar.gz &&
(cd bloomberg-comdb2/build && sudo make install)
'
- name: Start local comdb2 instance
run: '
sudo mkdir -p /opt/bb/share/schemas/$COMDB2_DBNAME &&
Expand All @@ -84,22 +158,36 @@ jobs:
fi;
done
'
- name: Creating tables
- name: Download python-comdb2 sdist
uses: actions/download-artifact@v3
with:
name: python-comdb2-sdist
path: dist
- name: Extract python-comdb2 sdist
run: '
(cd dist/ && tar xvf comdb2-*.tar.gz && rm comdb2-*.tar.gz) &&
mv dist/comdb2-* python-comdb2-sdist && rmdir dist
'
- name: Create tables
run: |
tables="$(cat tests/schemas/$COMDB2_DBNAME/table_constraint_order.txt)"
tables="$(cat python-comdb2-sdist/tests/schemas/$COMDB2_DBNAME/table_constraint_order.txt)"
for table_name in $tables
do
table_file="tests/schemas/$COMDB2_DBNAME/$table_name.csc2"
table_file="python-comdb2-sdist/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
- 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 .[tests]
python-version: "${{matrix.python_version}}"
- name: Install python-comdb2 from the sdist
run: '
sudo apt-get install -qy pkg-config &&
python -m pip install --upgrade pip &&
PKG_CONFIG_PATH=/opt/bb/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:$PKG_CONFIG_PATH
LDFLAGS="-Wl,-rpath,/opt/bb/lib"
python -m pip install ./python-comdb2-sdist[tests]
'
- name: Run Tests
run: (cd tests && python -m pytest -vvv)
run: (cd python-comdb2-sdist/tests && python -m pytest -vvv)
7 changes: 5 additions & 2 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
include *.txt
include pyproject.toml
recursive-include comdb2 py.typed
recursive-include comdb2 *.pyi
recursive-include comdb2/ py.typed *.pyi *.pxd *.h
recursive-include docs/ *.rst *.py
recursive-include tests/ *.py *.csc2 *.txt
exclude comdb2/_ccdb2.c*

0 comments on commit 29b0c11

Please sign in to comment.