Skip to content

Commit 4fe934e

Browse files
authored
ci: centralized job for rocksdb libaries cache (#21657)
1 parent cc1eab1 commit 4fe934e

6 files changed

Lines changed: 75 additions & 45 deletions

File tree

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#!/usr/bin/env bash
2+
set -Eeuo pipefail
3+
4+
sudo apt update && sudo apt-get install -y libsnappy-dev zlib1g-dev libbz2-dev liblz4-dev libzstd-dev build-essential

.github/scripts/install-rocksdb.sh

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,6 @@ if [ -z "$ROCKSDB_VERSION" ]; then
66
exit 1
77
fi
88

9-
# Update and install dependencies
10-
sudo apt update && sudo apt-get install -y libsnappy-dev zlib1g-dev libbz2-dev liblz4-dev libzstd-dev build-essential
11-
129
# Clone RocksDB repository
1310
git clone https://github.com/facebook/rocksdb.git /home/runner/rocksdb
1411
cd /home/runner/rocksdb || exit 1

.github/workflows/build.yml

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -38,18 +38,12 @@ jobs:
3838
/usr/local/lib/librocksdb.*
3939
/usr/local/include/rocksdb
4040
key: ${{ runner.os }}-rocksdb-${{ env.ROCKSDB_VERSION }}-${{ matrix.go-arch }}
41+
- name: Install rocksdb deps
42+
if: matrix.go-arch == 'amd64'
43+
run: ./.github/scripts/install-rocksdb-deps.sh
4144
- name: Install rocksdb
4245
if: matrix.go-arch == 'amd64' && steps.cache-rocksdb.outputs.cache-hit != 'true'
43-
id: install_rocksdb
4446
run: ./.github/scripts/install-rocksdb.sh
45-
- name: Saves rocksdb libraries cache
46-
if: matrix.go-arch == 'amd64' && steps.install_rocksdb.outcome == 'success'
47-
uses: actions/cache/save@v4
48-
with:
49-
path: |
50-
/usr/local/lib/librocksdb.*
51-
/usr/local/include/rocksdb
52-
key: ${{ runner.os }}-rocksdb-${{ env.ROCKSDB_VERSION }}-${{ matrix.go-arch }}
5347
###################
5448
#### Build App ####
5549
###################
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
name: Cache rocksdb libraries
2+
on:
3+
push:
4+
paths:
5+
- build.mk
6+
schedule:
7+
- cron: "*/15 * * * *" # Every 15 minutes
8+
workflow_dispatch:
9+
10+
permissions:
11+
contents: read
12+
13+
jobs:
14+
15+
check-cache-rocksdb:
16+
name: Check existing cache
17+
runs-on: ubuntu-latest
18+
outputs:
19+
cache-hit: ${{ steps.cache-rocksdb.outputs.cache-hit }}
20+
21+
steps:
22+
- uses: actions/checkout@v4
23+
24+
- name: Get rocksdb version
25+
run: ./.github/scripts/get-rocksdb-version.sh
26+
27+
- name: Fix permissions for cache
28+
run: sudo chown $(whoami) /usr/local/lib /usr/local/include
29+
30+
- name: Restore rocksdb libraries cache
31+
id: cache-rocksdb
32+
uses: actions/cache/restore@v4
33+
with:
34+
path: |
35+
/usr/local/lib/librocksdb.*
36+
/usr/local/include/rocksdb
37+
key: ${{ runner.os }}-rocksdb-${{ env.ROCKSDB_VERSION }}-amd64
38+
39+
40+
save-cache-rocksdb:
41+
name: Build rocksdb libraries and save cache
42+
runs-on: ubuntu-latest
43+
needs: check-cache-rocksdb
44+
if: needs.check-cache-rocksdb.outputs.cache-hit != 'true'
45+
steps:
46+
- uses: actions/checkout@v4
47+
48+
- name: Get rocksdb version
49+
run: ./.github/scripts/get-rocksdb-version.sh
50+
51+
- name: Install rocksdb deps
52+
run: ./.github/scripts/install-rocksdb-deps.sh
53+
- name: Install rocksdb
54+
run: ./.github/scripts/install-rocksdb.sh
55+
56+
- name: Saves rocksdb libraries cache
57+
uses: actions/cache/save@v4
58+
with:
59+
path: |
60+
/usr/local/lib/librocksdb.*
61+
/usr/local/include/rocksdb
62+
key: ${{ runner.os }}-rocksdb-${{ env.ROCKSDB_VERSION }}-amd64

.github/workflows/lint.yml

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,18 +39,11 @@ jobs:
3939
/usr/local/lib/librocksdb.*
4040
/usr/local/include/rocksdb
4141
key: ${{ runner.os }}-rocksdb-${{ env.ROCKSDB_VERSION }}-amd64
42+
- name: Install rocksdb deps
43+
run: ./.github/scripts/install-rocksdb-deps.sh
4244
- name: Install rocksdb
43-
if: env.GIT_DIFF && steps.cache-rocksdb.outputs.cache-hit != 'true'
44-
id: install_rocksdb
45+
if: steps.cache-rocksdb.outputs.cache-hit != 'true'
4546
run: ./.github/scripts/install-rocksdb.sh
46-
- name: Saves rocksdb libraries cache
47-
if: steps.install_rocksdb.outcome == 'success'
48-
uses: actions/cache/save@v4
49-
with:
50-
path: |
51-
/usr/local/lib/librocksdb.*
52-
/usr/local/include/rocksdb
53-
key: ${{ runner.os }}-rocksdb-${{ env.ROCKSDB_VERSION }}-amd64
5447
- name: run linting (long)
5548
if: env.GIT_DIFF
5649
id: lint_long

.github/workflows/test.yml

Lines changed: 3 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -801,20 +801,10 @@ jobs:
801801
/usr/local/include/rocksdb
802802
key: ${{ runner.os }}-rocksdb-${{ env.ROCKSDB_VERSION }}-amd64
803803
- name: Install rocksdb deps
804-
run: |
805-
sudo apt-get update && sudo apt-get install -y libsnappy-dev zlib1g-dev libbz2-dev liblz4-dev libzstd-dev
804+
run: ./.github/scripts/install-rocksdb-deps.sh
806805
- name: Install rocksdb
807806
if: steps.cache-rocksdb.outputs.cache-hit != 'true'
808-
id: install_rocksdb
809807
run: ./.github/scripts/install-rocksdb.sh
810-
- name: Saves rocksdb libraries cache
811-
if: steps.install_rocksdb.outcome == 'success'
812-
uses: actions/cache/save@v4
813-
with:
814-
path: |
815-
/usr/local/lib/librocksdb.*
816-
/usr/local/include/rocksdb
817-
key: ${{ runner.os }}-rocksdb-${{ env.ROCKSDB_VERSION }}-amd64
818808
- name: tests
819809
if: env.GIT_DIFF
820810
run: |
@@ -861,20 +851,10 @@ jobs:
861851
/usr/local/include/rocksdb
862852
key: ${{ runner.os }}-rocksdb-${{ env.ROCKSDB_VERSION }}-amd64
863853
- name: Install rocksdb deps
864-
run: |
865-
sudo apt-get update && sudo apt-get install -y libsnappy-dev zlib1g-dev libbz2-dev liblz4-dev libzstd-dev
854+
run: ./.github/scripts/install-rocksdb-deps.sh
866855
- name: Install rocksdb
867-
if: env.GIT_DIFF && steps.cache-rocksdb.outputs.cache-hit != 'true'
868-
id: install_rocksdb
856+
if: steps.cache-rocksdb.outputs.cache-hit != 'true'
869857
run: ./.github/scripts/install-rocksdb.sh
870-
- name: Saves rocksdb libraries cache
871-
if: steps.install_rocksdb.outcome == 'success'
872-
uses: actions/cache/save@v4
873-
with:
874-
path: |
875-
/usr/local/lib/librocksdb.*
876-
/usr/local/include/rocksdb
877-
key: ${{ runner.os }}-rocksdb-${{ env.ROCKSDB_VERSION }}-amd64
878858
- name: test & coverage report creation
879859
if: env.GIT_DIFF
880860
run: |

0 commit comments

Comments
 (0)