-
Martina Ferrari authored
Following suggestions from code review, this commit avoid re-using the working directory from different versions of the library.
2f942de6
build.yml 3.19 KiB
# vim:ts=2:sw=2:et:ai:sts=2
name: 'Build'
on:
push:
jobs:
# Build the RocksDB C library and cache the result.
librocksdb:
name: 'Build librocksdb'
runs-on: ${{ matrix.os }}
env:
LIBROCKSDB_PATH: /opt/rocksdb-${{ matrix.rocksdb_ver }}
strategy:
matrix:
os: [ubuntu-latest]
rocksdb_ver: ['v6.14.6', 'v6.11.4']
steps:
- uses: actions/cache@v2
id: cache-librocksdb
with:
key: ${{ matrix.os }}-librocksdb-${{ matrix.rocksdb_ver }}
path: ${{ env.LIBROCKSDB_PATH }}
- name: 'Install dependencies'
if: steps.cache-librocksdb.outputs.cache-hit != 'true'
run: >
sudo apt install -y libsnappy-dev libbz2-dev liblz4-dev libz-dev
libgflags-dev libzstd-dev
- name: 'Clone & build RocksDB ${{ matrix.rocksdb_ver }}'
if: steps.cache-librocksdb.outputs.cache-hit != 'true'
run: >
git clone https://github.com/facebook/rocksdb --depth 1
--branch ${{ matrix.rocksdb_ver }} ${{ env.LIBROCKSDB_PATH }} &&
pushd ${{ env.LIBROCKSDB_PATH }} &&
CXXFLAGS='-flto -Os -s' PORTABLE=1 make shared_lib -j 4 &&
popd
test:
name: 'Build and test python-rocksdb'
needs: librocksdb
runs-on: ${{ matrix.os }}
env:
LIBROCKSDB_PATH: /opt/rocksdb-${{ matrix.rocksdb_ver }}
strategy:
matrix:
os: [ubuntu-latest]
py_ver: ['3.7', '3.8', '3.9']
rocksdb_ver: ['v6.14.6', 'v6.11.4']
steps:
- uses: actions/checkout@v2
name: 'Checkout source repository'
- uses: actions/setup-python@v2
name: 'Set up Python ${{ matrix.py_ver }}'
with:
python-version: ${{ matrix.py_ver }}
- name: 'Install C libraries'
# XXX(Tina): The non-development versions are sufficient, but package
# names are difficult to predict.
run: >
sudo apt install -y libsnappy-dev libbz2-dev liblz4-dev libz-dev
libgflags-dev libzstd-dev
# Recover the pre-built C library.
- uses: actions/cache@v2