name: CI on: push: branches: [main, develop] pull_request: branches: [main, develop] jobs: test: name: Test runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, windows-latest, macos-latest] go-version: ['1.22'] steps: - uses: actions/checkout@v4 - name: Set up Go uses: actions/setup-go@v5 with: go-version: ${{ matrix.go-version }} - name: Download dependencies run: go mod download - name: Run tests run: go test -race -coverprofile=coverage.out -covermode=atomic ./... - name: Upload coverage if: matrix.os == 'ubuntu-latest' uses: codecov/codecov-action@v3 with: file: coverage.out lint: name: Lint runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up Go uses: actions/setup-go@v5 with: go-version: '1.22' - name: golangci-lint uses: golangci/golangci-lint-action@v3 with: version: latest build: name: Build runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, windows-latest, macos-latest] go-version: ['1.22'] steps: - uses: actions/checkout@v4 - name: Set up Go uses: actions/setup-go@v5 with: go-version: ${{ matrix.go-version }} - name: Build run: go build -v ./cmd/devpack/