From 6ec06c760aa2c4cea7854b7856378b863d9694bc Mon Sep 17 00:00:00 2001 From: "5684185+vsariola@users.noreply.github.com" <5684185+vsariola@users.noreply.github.com> Date: Mon, 28 Aug 2023 15:42:54 +0300 Subject: [PATCH] CI: add builds for linux and macos (closes #82) --- .github/workflows/binaries.yml | 48 +++++++++++++++++++++++++--------- README.md | 5 ++++ 2 files changed, 40 insertions(+), 13 deletions(-) diff --git a/.github/workflows/binaries.yml b/.github/workflows/binaries.yml index 11dc28f..ab5be99 100644 --- a/.github/workflows/binaries.yml +++ b/.github/workflows/binaries.yml @@ -17,35 +17,52 @@ jobs: matrix: config: - os: windows-latest - cmakeflags: -GNinja - maker: ninja asmnasm: C:\Users\runneradmin\nasm\nasm output: sointu-track.exe params: -ldflags -H=windowsgui cmd/sointu-track/main.go - os: windows-latest - cmakeflags: -GNinja - maker: ninja asmnasm: C:\Users\runneradmin\nasm\nasm output: sointu-compile.exe params: cmd/sointu-compile/main.go - os: windows-latest - cmakeflags: -GNinja - maker: ninja asmnasm: C:\Users\runneradmin\nasm\nasm output: sointu-track-native.exe params: -ldflags -H=windowsgui -tags=native cmd/sointu-track/main.go - os: windows-latest - cmakeflags: -GNinja - maker: ninja asmnasm: C:\Users\runneradmin\nasm\nasm output: sointu-vsti.dll params: -buildmode=c-shared -tags=plugin ./cmd/sointu-vsti/ - os: windows-latest - cmakeflags: -GNinja - maker: ninja asmnasm: C:\Users\runneradmin\nasm\nasm output: sointu-vsti-native.dll params: -buildmode=c-shared -tags="plugin,native" ./cmd/sointu-vsti/ + - os: ubuntu-latest + asmnasm: /home/runner/nasm/nasm + output: sointu-track + params: cmd/sointu-track/main.go + packages: libegl-dev libvulkan-dev libxkbcommon-x11-dev libwayland-dev libasound2-dev libx11-xcb-dev libxcursor-dev libxfixes-dev + - os: ubuntu-latest + asmnasm: /home/runner/nasm/nasm + output: sointu-compile + params: cmd/sointu-compile/main.go + packages: libegl-dev libvulkan-dev libxkbcommon-x11-dev libwayland-dev libasound2-dev libx11-xcb-dev libxcursor-dev libxfixes-dev + - os: ubuntu-latest + asmnasm: /home/runner/nasm/nasm + output: sointu-track-native + params: -tags=native cmd/sointu-track/main.go + packages: libegl-dev libvulkan-dev libxkbcommon-x11-dev libwayland-dev libasound2-dev libx11-xcb-dev libxcursor-dev libxfixes-dev + - os: macos-latest + asmnasm: /Users/runner/nasm/nasm + output: sointu-track + params: cmd/sointu-track/main.go + - os: macos-latest + asmnasm: /Users/runner/nasm/nasm + output: sointu-compile + params: cmd/sointu-compile/main.go + - os: macos-latest + asmnasm: /Users/runner/nasm/nasm + output: sointu-track-native + params: -tags=native cmd/sointu-track/main.go steps: - uses: benjlevesque/short-sha@v2.2 id: short-sha @@ -55,19 +72,24 @@ jobs: - uses: actions/setup-go@v2 - uses: actions/checkout@v2 - uses: ilammy/setup-nasm@v1.4.0 + - uses: awalsh128/cache-apt-pkgs-action@latest + with: + packages: ${{ matrix.config.packages }} + version: 1.0 + if: runner.os == 'Linux' - name: Build library env: ASM_NASM: ${{ matrix.config.asmnasm }} run: | mkdir build cd build - cmake ${{ matrix.config.cmakeflags }} .. - ${{ matrix.config.maker }} sointu + cmake -GNinja .. + ninja sointu - name: Build binary run: | go build -o ${{ matrix.config.output }} ${{ matrix.config.params }} - name: Upload binary uses: actions/upload-artifact@v3 with: - name: sointu-binaries-${{ steps.short-sha.outputs.sha }} + name: sointu-${{ runner.os }}-${{ steps.short-sha.outputs.sha }} path: ${{ matrix.config.output }} \ No newline at end of file diff --git a/README.md b/README.md index ac6fad4..5f25b17 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ # Sointu ![Tests](https://github.com/vsariola/sointu/workflows/Tests/badge.svg) +![Binaries](https://github.com/vsariola/sointu/workflows/Binaries/badge.svg) A cross-architecture and cross-platform modular software synthesizer for small intros, forked from [4klang](https://github.com/hzdgopher/4klang). Targetable @@ -8,6 +9,10 @@ Windows, Mac, Linux (and related) + browser. User manual will be in the [Wiki](https://github.com/vsariola/sointu/wiki). +Download prebuilt binaries from the [here](https://github.com/vsariola/sointu/actions) +(find workflow "Binaries" and scroll down for .zip files containing the +artifacts.) + Summary -------