diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml new file mode 100644 index 0000000..21576cb --- /dev/null +++ b/.github/workflows/go.yml @@ -0,0 +1,34 @@ +name: Go Build and Format + +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + go: + name: Go ${{ matrix.task }} + runs-on: ubuntu-latest + strategy: + matrix: + task: [fmt, build] + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-go@v4 + with: + go-version: "^1.20" + - name: Install dependencies + run: go mod tidy + - name: Run go fmt + if: matrix.task == 'fmt' + run: | + if [ -n "$(go fmt ./...)" ]; then + echo "Go files must be formatted with gofmt. Please run 'go fmt ./...' locally." + exit 1 + fi + - name: Run go build + if: matrix.task == 'build' + run: go build ./...