name: Build on: push: pull_request: jobs: build: name: Build (${{ matrix.os_name }}) env: GO_VERSION: 1.22 GOOS: ${{ matrix.os_name }} GOARCH: ${{ matrix.arch }} runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: include: - os: ubuntu-latest os_name: linux arch: amd64 - os: windows-latest os_name: windows arch: amd64 # TODO macos needs universal binary! # - os: macos-latest # os_name: macos steps: - uses: actions/checkout@v4 - name: Set up Go ${{ env.GO_VERSION }} uses: actions/setup-go@v5 with: go-version: ${{ env.GO_VERSION }} - name: Install dependencies run: go mod download - name: Lint Codebase uses: golangci/golangci-lint-action@v6 with: args: --timeout=10m version: latest - name: Test run: go test -v - name: Build run: go build -v - name: Upload artifact uses: actions/upload-artifact@v4 with: name: rogueserver-${{ matrix.os_name }}-${{ matrix.arch }}-${{ github.sha }} path: | rogueserver* !rogueserver.go