Skip to content

Commit

Permalink
Add automatic native library builds using GitHub Actions
Browse files Browse the repository at this point in the history
  • Loading branch information
gilzoide committed Jan 13, 2025
1 parent e9d2a33 commit 39752ad
Show file tree
Hide file tree
Showing 2 changed files with 59 additions and 4 deletions.
55 changes: 55 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
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
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 SCons files
uses: actions/cache@v4
with:
path: $DOCKER_CACHE
- name: Build
run: make -C Plugins ${{ matrix.target }} DOCKER_BUILD_ARGS="--cache-to type=local,dest=$DOCKER_CACHE --cache-from type=local,src=$DOCKER_CACHE"
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: ${{ 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: macos
path: |
Plugins/lib/macos/**.dylib
8 changes: 4 additions & 4 deletions Plugins/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -130,16 +130,16 @@ 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

0 comments on commit 39752ad

Please sign in to comment.