go-judge/.github/workflows/build.yml
2020-07-23 22:56:57 -07:00

104 lines
3.1 KiB
YAML

name: Build
on:
push:
branches: [master]
jobs:
build:
name: Build-Linux
strategy:
matrix:
GOARCH: [amd64]
runs-on: ubuntu-latest
steps:
- name: Set up Go 1.14
uses: actions/setup-go@v2
with:
go-version: 1.14
- uses: actions/checkout@v2
- run: git fetch --prune --unshallow --tags
- name: Download dependencies
run: go mod download
- name: Build on Linux
env:
GOOS: linux
GOARCH: ${{ matrix.GOARCH }}
run: |
go generate ./cmd/executorserver
go build -o executorserver ./cmd/executorserver
- name: Build shared objects
env:
GOOS: linux
GOARCH: ${{ matrix.GOARCH }}
run: |
go build -o cinit ./cmd/cinit
go build -buildmode=c-shared -o executorserver.so ./cmd/ffi
- name: Upload executorserver
uses: actions/upload-artifact@master
with:
name: ExecutorServer-${{ matrix.GOARCH }}
path: executorserver
- name: Upload cinit
uses: actions/upload-artifact@master
with:
name: cinit-${{ matrix.GOARCH }}
path: cinit
- name: Upload executorserver.so
uses: actions/upload-artifact@master
with:
name: ExecutorServer-${{ matrix.GOARCH }}.so
path: executorserver.so
build-windows:
name: Build-Windows
runs-on: windows-latest
steps:
- name: Set up Go 1.14
uses: actions/setup-go@v2
with:
go-version: 1.14
- uses: actions/checkout@v2
- run: git fetch --prune --unshallow --tags
- name: Download dependencies
run: go mod download
- name: Build on Windows
run: |
go generate ./cmd/executorserver
go build -o executorserver.exe ./cmd/executorserver
go build -buildmode=c-shared -o executorserver.dll ./cmd/ffi
- name: Upload executorserver.exe on Windows
uses: actions/upload-artifact@master
with:
name: ExecutorServer.exe
path: executorserver.exe
- name: Upload executorserver.dll on Windows
uses: actions/upload-artifact@master
with:
name: ExecutorServer.dll
path: executorserver.dll
build-macos:
name: Build macOS
runs-on: macos-latest
steps:
- name: Set up Go 1.14
uses: actions/setup-go@v2
with:
go-version: 1.14
- uses: actions/checkout@v2
- run: git fetch --prune --unshallow --tags
- name: Download dependencies
run: go mod download
- name: Build on MacOS
run: |
go generate ./cmd/executorserver
go build -o executorserver ./cmd/executorserver
go build -buildmode=c-shared -o executorserver.dylib ./cmd/ffi
- name: Upload executorserver
uses: actions/upload-artifact@master
with:
name: ExecutorServer-MacOS
path: executorserver
- name: Upload executorserver.so
uses: actions/upload-artifact@master
with:
name: ExecutorServer.dylib
path: executorserver.dylib