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