Skip to content

Commit 661852b

Browse files
authored
Merge pull request #41 from gilzoide/feature/github-actions
Add GitHub actions for building native libraries
2 parents e9d2a33 + 29fb151 commit 661852b

File tree

2 files changed

+80
-5
lines changed

2 files changed

+80
-5
lines changed

.github/workflows/build.yml

+57
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
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+
matrix:
17+
include:
18+
- platform: windows
19+
target: docker-all-windows-llvm
20+
- platform: linux
21+
target: docker-all-linux
22+
- platform: android
23+
target: docker-all-android
24+
- platform: webgl
25+
target: docker-all-webgl
26+
steps:
27+
- uses: actions/checkout@v3
28+
- name: Cache Docker files
29+
uses: actions/cache@v4
30+
with:
31+
path: $DOCKER_CACHE
32+
key: ${{ matrix.platform }}
33+
- name: Build
34+
run: make -C Plugins ${{ matrix.target }} DOCKER_BUILD_ARGS="--cache-from type=gha --cache-to type=gha,mode=max"
35+
- name: Upload artifact
36+
uses: actions/upload-artifact@v4
37+
with:
38+
name: gilzoide-sqlite-net-${{ matrix.platform }}
39+
path: |
40+
Plugins/lib/${{ matrix.platform }}/**/*.bc
41+
Plugins/lib/${{ matrix.platform }}/**/*.dll
42+
Plugins/lib/${{ matrix.platform }}/**/*.dylib
43+
Plugins/lib/${{ matrix.platform }}/**/*.so
44+
45+
build_with_macos:
46+
name: macOS
47+
runs-on: macos-latest
48+
steps:
49+
- uses: actions/checkout@v3
50+
- name: Build
51+
run: make -C Plugins all-apple
52+
- name: Upload artifact
53+
uses: actions/upload-artifact@v4
54+
with:
55+
name: gilzoide-sqlite-net-macos
56+
path: |
57+
Plugins/lib/macos/*.dylib

Plugins/Makefile

+23-5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,14 @@
1-
EMCC ?= emcc
1+
# Android setup
22
ANDROID_NDK_ROOT ?=
3+
# WebGL/Emscripten setup
4+
EMCC ?= emcc
5+
# macOS code signing setup
36
CODESIGN ?= codesign
47
MACOS_CODESIGN_SIGNATURE ?=
8+
# Download GitHub Action releases
9+
GITHUB_CLI_BIN ?= gh
10+
GITHUB_REPO ?= gilzoide/unity-sqlite-net
11+
RUN_ID ?=
512

613
ifeq ($(DEBUG),1)
714
CFLAGS += -O0 -g -DDEBUG
@@ -130,16 +137,27 @@ all-windows-llvm-mingw: windows-mingw-x86_64 windows-mingw-x86 windows-mingw-arm
130137

131138
# Dockerized builds
132139
docker-all-android:
133-
docker build -f tools~/Dockerfile.build.android --platform=linux/amd64 -t gilzoide-sqlite-net-build-android:latest .
140+
docker build -f tools~/Dockerfile.build.android --platform=linux/amd64 -t gilzoide-sqlite-net-build-android:latest $(DOCKER_BUILD_ARGS) .
134141
docker run --rm -v "$(CURDIR)":/src -w /src --platform=linux/amd64 gilzoide-sqlite-net-build-android:latest make all-android
135142
docker-all-linux:
136-
docker build -f tools~/Dockerfile.build.linux --platform=linux/amd64 -t gilzoide-sqlite-net-build-linux:latest .
143+
docker build -f tools~/Dockerfile.build.linux --platform=linux/amd64 -t gilzoide-sqlite-net-build-linux:latest $(DOCKER_BUILD_ARGS) .
137144
docker run --rm -v "$(CURDIR)":/src -w /src --platform=linux/amd64 gilzoide-sqlite-net-build-linux:latest make all-linux
138145
docker-all-webgl:
139-
docker build -f tools~/Dockerfile.build.webgl -t gilzoide-sqlite-net-build-webgl:latest .
146+
docker build -f tools~/Dockerfile.build.webgl -t gilzoide-sqlite-net-build-webgl:latest $(DOCKER_BUILD_ARGS) .
140147
docker run --rm -v "$(CURDIR)":/src -w /src gilzoide-sqlite-net-build-webgl:latest make all-webgl
141148
docker-all-windows:
142-
docker build -f tools~/Dockerfile.build.windows -t gilzoide-sqlite-net-build-windows:latest .
149+
docker build -f tools~/Dockerfile.build.windows -t gilzoide-sqlite-net-build-windows:latest $(DOCKER_BUILD_ARGS) .
143150
docker run --rm -v "$(CURDIR)":/src -w /src gilzoide-sqlite-net-build-windows:latest make all-windows-mingw
144151
docker-all-windows-llvm:
145152
docker run --rm -v "$(CURDIR)":/src -w /src mstorsjo/llvm-mingw:latest make all-windows-llvm-mingw
153+
154+
# Download builds from GitHub Actions
155+
download-latest-build:
156+
$(eval TMPDIR := $(shell mktemp -d))
157+
$(GITHUB_CLI_BIN) run download $(RUN_ID) --repo $(GITHUB_REPO) -p gilzoide-sqlite-net-* -D $(TMPDIR)
158+
rsync -r $(TMPDIR)/gilzoide-sqlite-net-windows/* lib/windows/
159+
rsync -r $(TMPDIR)/gilzoide-sqlite-net-linux/* lib/linux/
160+
rsync -r $(TMPDIR)/gilzoide-sqlite-net-android/* lib/android/
161+
rsync -r $(TMPDIR)/gilzoide-sqlite-net-macos/* lib/macos/
162+
rsync -r $(TMPDIR)/gilzoide-sqlite-net-webgl/* lib/webgl/
163+
$(RM) -r $(TMPDIR)

0 commit comments

Comments
 (0)