name: Binaries on: push: branches: - master - dev pull_request: branches: - master - dev jobs: binaries: runs-on: ${{ matrix.config.os }} strategy: matrix: config: - os: windows-latest asmnasm: C:\Users\runneradmin\nasm\nasm output: sointu-track.exe params: -ldflags -H=windowsgui cmd/sointu-track/main.go - os: windows-latest asmnasm: C:\Users\runneradmin\nasm\nasm output: sointu-compile.exe params: cmd/sointu-compile/main.go - os: windows-latest 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 asmnasm: C:\Users\runneradmin\nasm\nasm output: sointu-vsti.dll params: -buildmode=c-shared -tags=plugin ./cmd/sointu-vsti/ - os: windows-latest 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 with: length: 7 - uses: lukka/get-cmake@v3.18.3 - 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 -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-${{ runner.os }}-${{ steps.short-sha.outputs.sha }} path: ${{ matrix.config.output }}