Skip to content

Commit 3279646

Browse files
committed
Enable ccache on CI on Linux and macOS
This change enables saving/loading ccache caches on Linux and macOS. DuckDB engine version is used as the cache key
1 parent ec50d5b commit 3279646

File tree

7 files changed

+394
-151
lines changed

7 files changed

+394
-151
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: 'Linux Build Docker'
2+
description: 'Linux build in Docker'
3+
inputs:
4+
docker_image:
5+
description: 'Docker image name'
6+
required: true
7+
default: ''
8+
9+
runs:
10+
using: "composite"
11+
steps:
12+
- name: Build
13+
shell: bash
14+
run: |
15+
docker run \
16+
-v.:/duckdb \
17+
-e GEN=ninja \
18+
-e CC='ccache gcc' \
19+
-e CXX='ccache g++' \
20+
-e CCACHE_DIR=/duckdb/ccache \
21+
-e JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk \
22+
${{ inputs.docker_image }} \
23+
bash -c "
24+
set -e
25+
cat /etc/os-release
26+
dnf install -y \
27+
ccache \
28+
gcc-toolset-12-gcc-c++ \
29+
java-1.8.0-openjdk-devel \
30+
ninja-build
31+
source /opt/rh/gcc-toolset-12/enable
32+
make -C /duckdb release
33+
"
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: 'Linux Build Musl Docker'
2+
description: 'Linux build with musl libc in Docker'
3+
inputs:
4+
docker_image:
5+
description: 'Docker image name'
6+
required: true
7+
default: ''
8+
9+
runs:
10+
using: "composite"
11+
steps:
12+
- name: Build
13+
shell: bash
14+
run: |
15+
docker run \
16+
-v.:/duckdb \
17+
-e GEN=ninja \
18+
-e CC='ccache gcc' \
19+
-e CXX='ccache g++' \
20+
-e CCACHE_DIR=/duckdb/ccache \
21+
-e JAVA_HOME=/usr/lib/jvm/java-8-openjdk \
22+
${{ inputs.docker_image }} \
23+
sh -c "
24+
set -e
25+
apk add \
26+
ccache \
27+
cmake \
28+
g++ \
29+
make \
30+
openjdk8-jdk \
31+
samurai
32+
make -C /duckdb release
33+
"
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
name: 'Linux Tests Docker'
2+
description: 'Linux test run in Docker'
3+
inputs:
4+
docker_image:
5+
description: 'Docker image name'
6+
required: true
7+
default: ''
8+
9+
runs:
10+
using: "composite"
11+
steps:
12+
- name: Tests Docker
13+
shell: bash
14+
run: |
15+
docker run \
16+
-v.:/duckdb \
17+
${{ inputs.docker_image }} \
18+
bash -c "
19+
set -e
20+
cat /etc/os-release
21+
dnf install -y \
22+
java-1.8.0-openjdk
23+
/usr/lib/jvm/jre-1.8.0-openjdk/bin/java -version
24+
cd /duckdb
25+
/usr/lib/jvm/jre-1.8.0-openjdk/bin/java \
26+
-cp ./build/release/duckdb_jdbc_tests.jar:./build/release/duckdb_jdbc.jar \
27+
org.duckdb.TestDuckDBJDBC
28+
rm ./test1.db
29+
"
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
name: 'Linux Tests Host'
2+
description: 'Linux test run in host OS'
3+
4+
runs:
5+
using: "composite"
6+
steps:
7+
- name: Tests Host
8+
shell: bash
9+
run: |
10+
cat /etc/os-release
11+
${JAVA_HOME_21_X64}/bin/java -version
12+
${JAVA_HOME_21_X64}/bin/java \
13+
-cp ./build/release/duckdb_jdbc_tests.jar:./build/release/duckdb_jdbc.jar \
14+
org.duckdb.TestDuckDBJDBC
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
name: 'Linux Tests Musl Docker'
2+
description: 'Linux test run with musl libc in Docker'
3+
inputs:
4+
docker_image:
5+
description: 'Docker image name'
6+
required: true
7+
default: ''
8+
9+
runs:
10+
using: "composite"
11+
steps:
12+
- name: Tests Musl Docker
13+
shell: bash
14+
run: |
15+
docker run \
16+
-v.:/duckdb \
17+
-e GEN=ninja \
18+
-e JAVA_HOME=/usr/lib/jvm/java-8-openjdk \
19+
${{ inputs.docker_image }} \
20+
sh -c "
21+
set -e
22+
apk add \
23+
cmake \
24+
g++ \
25+
make \
26+
openjdk8-jdk \
27+
samurai
28+
make -C /duckdb test || true
29+
"

0 commit comments

Comments
 (0)