name: Build and Test Go Project on: [push, pull_request] permissions: contents: read jobs: build: strategy: fail-fast: false matrix: os: [ubuntu-latest, windows-latest, macos-latest] runs-on: ${{ matrix.os }} steps: - name: Force git to use LF # This step is required on Windows to work around go mod tidy -diff issues caused by CRLF line endings. # TODO: replace with a checkout option when https://github.com/actions/checkout/issues/226 is implemented if: runner.os == 'Windows' run: | git config --global core.autocrlf false git config --global core.eol lf - name: Check out code uses: actions/checkout@v7 - name: Build UI uses: ./.github/actions/build-ui - name: Set up Go uses: actions/setup-go@v6 with: go-version-file: "go.mod" - name: Tidy dependencies run: go mod tidy -diff - name: Run unit tests shell: bash run: script/test - name: Build run: go build -v ./cmd/github-mcp-server