name: Go on: push: branches: [ master ] pull_request: branches: [ master ] jobs: build: name: Build runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [ubuntu-latest, windows-2022] env: GOARCH: amd64 steps: - name: Set up Go 1.17 uses: actions/setup-go@v2 with: go-version: 1.17 id: go - id: go-cache-paths run: | echo "::set-output name=go-build::$(go env GOCACHE)" echo "::set-output name=go-mod::$(go env GOMODCACHE)" - if: startsWith(matrix.os,'ubuntu') name: Install Dependencies run: | sudo apt-get --allow-releaseinfo-change update sudo apt-get install -y libglfw3-dev libfreetype6-dev - name: Go Build Cache uses: actions/cache@v2 with: path: ${{ steps.go-cache-paths.outputs.go-build }} key: ${{ runner.os }}-go-build-${{ hashFiles('**/go.sum') }} - name: Go Mod Cache uses: actions/cache@v2 with: path: ${{ steps.go-cache-paths.outputs.go-mod }} key: ${{ runner.os }}-go-mod-${{ hashFiles('**/go.sum') }} - name: Checkout uses: actions/checkout@v2 - name: Get dependencies run: go get -v -t -d ./... - name: Build run: go build -v ./... - name: Test run: go test -v ./... - name: Vet run: go vet ./... - name: Release Build run: go build -ldflags '-s -w -H=windowsgui' - name: Upload Release uses: ColinPitrat/update-release@v1.0.1 id: update-release with: token: ${{ secrets.GITHUB_TOKEN }} files: bin/* tag: release