name: Go CI on: push: branches: - '**' paths: - 'core/**' - '.github/workflows/go-ci.yml' pull_request: branches: [master, main] paths: - 'core/**' - '.github/workflows/go-ci.yml' concurrency: group: go-ci-${{ github.ref }} cancel-in-progress: true jobs: lint-and-test: runs-on: ubuntu-latest defaults: run: working-directory: core steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Go uses: actions/setup-go@v5 with: go-version-file: ./core/go.mod - name: Format check run: | if [ "$(gofmt -s -l . | wc -l)" -gt 0 ]; then echo "The following files are not formatted:" gofmt -s -l . exit 1 fi - name: Run golangci-lint uses: golangci/golangci-lint-action@v6 with: version: latest working-directory: core - name: Test run: go test -v ./... - name: Build dms run: go build -v ./cmd/dms - name: Build dms (distropkg) run: go build -v -tags distro_binary ./cmd/dms - name: Build dankinstall run: go build -v ./cmd/dankinstall