Skip to content

Commit 39752ad

Browse files
committed
Add automatic native library builds using GitHub Actions
1 parent e9d2a33 commit 39752ad

File tree

2 files changed

+59
-4
lines changed

2 files changed

+59
-4
lines changed

.github/workflows/build.yml

+55
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
name: Build native libraries
2+
on: [push, pull_request]
3+
defaults:
4+
run:
5+
shell: bash
6+
7+
env:
8+
DOCKER_CACHE: ${{ github.workspace }}/.docker-cache
9+
10+
jobs:
11+
build_with_docker:
12+
name: ${{ matrix.platform }}
13+
runs-on: ubuntu-latest
14+
strategy:
15+
fail-fast: false
16+
include:
17+
- platform: windows
18+
target: docker-all-windows-llvm
19+
- platform: linux
20+
target: docker-all-linux
21+
- platform: android
22+
target: docker-all-android
23+
- platform: webgl
24+
target: docker-all-webgl
25+
steps:
26+
- uses: actions/checkout@v3
27+
- name: Cache SCons files
28+
uses: actions/cache@v4
29+
with:
30+
path: $DOCKER_CACHE
31+
- name: Build
32+
run: make -C Plugins ${{ matrix.target }} DOCKER_BUILD_ARGS="--cache-to type=local,dest=$DOCKER_CACHE --cache-from type=local,src=$DOCKER_CACHE"
33+
- name: Upload artifact
34+
uses: actions/upload-artifact@v4
35+
with:
36+
name: ${{ matrix.platform }}
37+
path: |
38+
Plugins/lib/${{ matrix.platform }}/**.bc
39+
Plugins/lib/${{ matrix.platform }}/**.dll
40+
Plugins/lib/${{ matrix.platform }}/**.dylib
41+
Plugins/lib/${{ matrix.platform }}/**.so
42+
43+
build_with_macos:
44+
name: macOS
45+
runs-on: macos-latest
46+
steps:
47+
- uses: actions/checkout@v3
48+
- name: Build
49+
run: make -C Plugins all-apple
50+
- name: Upload artifact
51+
uses: actions/upload-artifact@v4
52+
with:
53+
name: macos
54+
path: |
55+
Plugins/lib/macos/**.dylib

Plugins/Makefile

+4-4
Original file line numberDiff line numberDiff line change
@@ -130,16 +130,16 @@ all-windows-llvm-mingw: windows-mingw-x86_64 windows-mingw-x86 windows-mingw-arm
130130

131131
# Dockerized builds
132132
docker-all-android:
133-
docker build -f tools~/Dockerfile.build.android --platform=linux/amd64 -t gilzoide-sqlite-net-build-android:latest .
133+
docker build -f tools~/Dockerfile.build.android --platform=linux/amd64 -t gilzoide-sqlite-net-build-android:latest $(DOCKER_BUILD_ARGS) .
134134
docker run --rm -v "$(CURDIR)":/src -w /src --platform=linux/amd64 gilzoide-sqlite-net-build-android:latest make all-android
135135
docker-all-linux:
136-
docker build -f tools~/Dockerfile.build.linux --platform=linux/amd64 -t gilzoide-sqlite-net-build-linux:latest .
136+
docker build -f tools~/Dockerfile.build.linux --platform=linux/amd64 -t gilzoide-sqlite-net-build-linux:latest $(DOCKER_BUILD_ARGS) .
137137
docker run --rm -v "$(CURDIR)":/src -w /src --platform=linux/amd64 gilzoide-sqlite-net-build-linux:latest make all-linux
138138
docker-all-webgl:
139-
docker build -f tools~/Dockerfile.build.webgl -t gilzoide-sqlite-net-build-webgl:latest .
139+
docker build -f tools~/Dockerfile.build.webgl -t gilzoide-sqlite-net-build-webgl:latest $(DOCKER_BUILD_ARGS) .
140140
docker run --rm -v "$(CURDIR)":/src -w /src gilzoide-sqlite-net-build-webgl:latest make all-webgl
141141
docker-all-windows:
142-
docker build -f tools~/Dockerfile.build.windows -t gilzoide-sqlite-net-build-windows:latest .
142+
docker build -f tools~/Dockerfile.build.windows -t gilzoide-sqlite-net-build-windows:latest $(DOCKER_BUILD_ARGS) .
143143
docker run --rm -v "$(CURDIR)":/src -w /src gilzoide-sqlite-net-build-windows:latest make all-windows-mingw
144144
docker-all-windows-llvm:
145145
docker run --rm -v "$(CURDIR)":/src -w /src mstorsjo/llvm-mingw:latest make all-windows-llvm-mingw

0 commit comments

Comments
 (0)