Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 57 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: Build native libraries
on: [push, pull_request]
defaults:
run:
shell: bash

env:
DOCKER_CACHE: ${{ github.workspace }}/.docker-cache

jobs:
build_with_docker:
name: ${{ matrix.platform }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- platform: windows
target: docker-all-windows-llvm
- platform: linux
target: docker-all-linux
- platform: android
target: docker-all-android
- platform: webgl
target: docker-all-webgl
steps:
- uses: actions/checkout@v3
- name: Cache Docker files
uses: actions/cache@v4
with:
path: $DOCKER_CACHE
key: ${{ matrix.platform }}
- name: Build
run: make -C Plugins ${{ matrix.target }} DOCKER_BUILD_ARGS="--cache-from type=gha --cache-to type=gha,mode=max"
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: gilzoide-sqlite-net-${{ matrix.platform }}
path: |
Plugins/lib/${{ matrix.platform }}/**/*.bc
Plugins/lib/${{ matrix.platform }}/**/*.dll
Plugins/lib/${{ matrix.platform }}/**/*.dylib
Plugins/lib/${{ matrix.platform }}/**/*.so

build_with_macos:
name: macOS
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- name: Build
run: make -C Plugins all-apple
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: gilzoide-sqlite-net-macos
path: |
Plugins/lib/macos/*.dylib
28 changes: 23 additions & 5 deletions Plugins/Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,14 @@
EMCC ?= emcc
# Android setup
ANDROID_NDK_ROOT ?=
# WebGL/Emscripten setup
EMCC ?= emcc
# macOS code signing setup
CODESIGN ?= codesign
MACOS_CODESIGN_SIGNATURE ?=
# Download GitHub Action releases
GITHUB_CLI_BIN ?= gh
GITHUB_REPO ?= gilzoide/unity-sqlite-net
RUN_ID ?=

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

# Dockerized builds
docker-all-android:
docker build -f tools~/Dockerfile.build.android --platform=linux/amd64 -t gilzoide-sqlite-net-build-android:latest .
docker build -f tools~/Dockerfile.build.android --platform=linux/amd64 -t gilzoide-sqlite-net-build-android:latest $(DOCKER_BUILD_ARGS) .
docker run --rm -v "$(CURDIR)":/src -w /src --platform=linux/amd64 gilzoide-sqlite-net-build-android:latest make all-android
docker-all-linux:
docker build -f tools~/Dockerfile.build.linux --platform=linux/amd64 -t gilzoide-sqlite-net-build-linux:latest .
docker build -f tools~/Dockerfile.build.linux --platform=linux/amd64 -t gilzoide-sqlite-net-build-linux:latest $(DOCKER_BUILD_ARGS) .
docker run --rm -v "$(CURDIR)":/src -w /src --platform=linux/amd64 gilzoide-sqlite-net-build-linux:latest make all-linux
docker-all-webgl:
docker build -f tools~/Dockerfile.build.webgl -t gilzoide-sqlite-net-build-webgl:latest .
docker build -f tools~/Dockerfile.build.webgl -t gilzoide-sqlite-net-build-webgl:latest $(DOCKER_BUILD_ARGS) .
docker run --rm -v "$(CURDIR)":/src -w /src gilzoide-sqlite-net-build-webgl:latest make all-webgl
docker-all-windows:
docker build -f tools~/Dockerfile.build.windows -t gilzoide-sqlite-net-build-windows:latest .
docker build -f tools~/Dockerfile.build.windows -t gilzoide-sqlite-net-build-windows:latest $(DOCKER_BUILD_ARGS) .
docker run --rm -v "$(CURDIR)":/src -w /src gilzoide-sqlite-net-build-windows:latest make all-windows-mingw
docker-all-windows-llvm:
docker run --rm -v "$(CURDIR)":/src -w /src mstorsjo/llvm-mingw:latest make all-windows-llvm-mingw

# Download builds from GitHub Actions
download-latest-build:
$(eval TMPDIR := $(shell mktemp -d))
$(GITHUB_CLI_BIN) run download $(RUN_ID) --repo $(GITHUB_REPO) -p gilzoide-sqlite-net-* -D $(TMPDIR)
rsync -r $(TMPDIR)/gilzoide-sqlite-net-windows/* lib/windows/
rsync -r $(TMPDIR)/gilzoide-sqlite-net-linux/* lib/linux/
rsync -r $(TMPDIR)/gilzoide-sqlite-net-android/* lib/android/
rsync -r $(TMPDIR)/gilzoide-sqlite-net-macos/* lib/macos/
rsync -r $(TMPDIR)/gilzoide-sqlite-net-webgl/* lib/webgl/
$(RM) -r $(TMPDIR)
Loading