Skip to content

Commit 8cd12a3

Browse files
committed
Rework caching and building librocksdb.
Following suggestions from code review, this commit avoid re-using the working directory from different versions of the library.
1 parent 9cbbea6 commit 8cd12a3

2 files changed

Lines changed: 27 additions & 22 deletions

File tree

.github/workflows/build.yml

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ jobs:
88
librocksdb:
99
name: 'Build librocksdb'
1010
runs-on: ${{ matrix.os }}
11+
env:
12+
LIBROCKSDB_PATH: /opt/rocksdb-${{ matrix.rocksdb_ver }}
1113
strategy:
1214
matrix:
1315
os: [ubuntu-latest]
@@ -18,10 +20,7 @@ jobs:
1820
id: cache-librocksdb
1921
with:
2022
key: ${{ matrix.os }}-librocksdb-${{ matrix.rocksdb_ver }}
21-
path: /opt/rocksdb
22-
restore-keys: |
23-
librocksdb-${{ matrix.os }}-
24-
librocksdb-
23+
path: ${{ env.LIBROCKSDB_PATH }}
2524

2625
- name: 'Install dependencies'
2726
if: steps.cache-librocksdb.outputs.cache-hit != 'true'
@@ -31,19 +30,19 @@ jobs:
3130
3231
- name: 'Clone & build RocksDB ${{ matrix.rocksdb_ver }}'
3332
if: steps.cache-librocksdb.outputs.cache-hit != 'true'
34-
run: |
35-
pushd /opt &&
36-
git clone https://github.com/facebook/rocksdb &&
37-
cd rocksdb &&
38-
git reset --hard ${{ matrix.rocksdb_ver }} &&
33+
run: >
34+
git clone https://github.com/facebook/rocksdb --depth 1
35+
--branch ${{ matrix.rocksdb_ver }} ${{ env.LIBROCKSDB_PATH }} &&
36+
pushd ${{ env.LIBROCKSDB_PATH }} &&
3937
CXXFLAGS='-flto -Os -s' PORTABLE=1 make shared_lib -j 4 &&
40-
make shared_lib &&
4138
popd
4239
4340
test:
4441
name: 'Build and test python-rocksdb'
4542
needs: librocksdb
4643
runs-on: ${{ matrix.os }}
44+
env:
45+
LIBROCKSDB_PATH: /opt/rocksdb-${{ matrix.rocksdb_ver }}
4746
strategy:
4847
matrix:
4948
os: [ubuntu-latest]
@@ -71,13 +70,13 @@ jobs:
7170
id: cache-librocksdb
7271
with:
7372
key: ${{ matrix.os }}-librocksdb-${{ matrix.rocksdb_ver }}
74-
path: /opt/rocksdb
73+
path: ${{ env.LIBROCKSDB_PATH }}
7574

7675
- name: 'Install RocksDB ${{ matrix.rocksdb_ver }}'
7776
if: steps.cache-librocksdb.outputs.cache-hit == 'true'
7877
# DO NOT FORGET to call `ldconfig`!
7978
run: |
80-
pushd /opt/rocksdb &&
79+
pushd ${{ env.LIBROCKSDB_PATH }} &&
8180
sudo make install-shared &&
8281
sudo ldconfig &&
8382
popd

.github/workflows/dist.yml

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,18 @@ on:
55
# Only run when pushing to main/merging PRs.
66
push:
77
branches:
8-
- main
8+
# - main
99

1010
jobs:
1111
build_wheels:
1212
name: 'Build wheels'
13-
runs-on: ubuntu-latest
13+
runs-on: ${{ matrix.os }}
14+
env:
15+
LIBROCKSDB_PATH: /opt/rocksdb-${{ matrix.rocksdb_ver }}
16+
strategy:
17+
matrix:
18+
os: [ubuntu-latest]
19+
rocksdb_ver: ['v6.14.6']
1420

1521
steps:
1622
- uses: actions/checkout@v2
@@ -29,7 +35,6 @@ jobs:
2935
run: |
3036
python3 -m cibuildwheel --output-dir dist
3137
env:
32-
ROCKSDB_VERSION: 'v6.14.6'
3338
CIBW_MANYLINUX_X86_64_IMAGE: 'manylinux2014'
3439
CIBW_BUILD: 'cp3*'
3540
CIBW_SKIP: '*-manylinux_i686'
@@ -46,14 +51,15 @@ jobs:
4651
CIBW_BEFORE_BUILD: >
4752
yum install -y bzip2-devel lz4-devel snappy-devel zlib-devel
4853
python3-Cython &&
49-
pushd /opt &&
50-
test -d rocksdb || (
51-
git clone https://github.com/facebook/rocksdb &&
52-
cd rocksdb &&
53-
git reset --hard $ROCKSDB_VERSION &&
54-
CXXFLAGS='-flto -Os -s' PORTABLE=1 make shared_lib -j 4 &&
55-
make install-shared
54+
test -d ${{ env.LIBROCKSDB_PATH }} || (
55+
git clone https://github.com/facebook/rocksdb --depth 1
56+
--branch ${{ matrix.rocksdb_ver }} ${{ env.LIBROCKSDB_PATH }} &&
57+
cd ${{ env.LIBROCKSDB_PATH }} &&
58+
CXXFLAGS='-flto -Os -s' PORTABLE=1 make shared_lib -j 4
5659
) &&
60+
pushd ${{ env.LIBROCKSDB_PATH }} &&
61+
sudo make install-shared &&
62+
sudo ldconfig &&
5763
popd
5864
5965
- uses: actions/upload-artifact@v2

0 commit comments

Comments
 (0)