Skip to content

Claude/improve mpris coverage sa brq #10

Claude/improve mpris coverage sa brq

Claude/improve mpris coverage sa brq #10

Workflow file for this run

name: CI
on:
push:
branches: [ main, master ]
pull_request:
# Run on all PRs regardless of target branch
jobs:
test:
name: Test
runs-on: ubuntu-latest
strategy:
matrix:
go-version: ['1.23', '1.24']
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
- name: Cache Go modules
uses: actions/cache@v4
with:
path: |
~/.cache/go-build
~/go/pkg/mod
key: ${{ runner.os }}-go-${{ matrix.go-version }}-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-${{ matrix.go-version }}-
- name: Download dependencies
run: go mod download
- name: Verify dependencies
run: go mod verify
- name: Run tests
run: go test -v -race -coverprofile=coverage.out -covermode=atomic ./...
- name: Check test coverage
run: |
go tool cover -func=coverage.out | tee coverage.txt
# Extract overall coverage percentage
COVERAGE=$(go tool cover -func=coverage.out | grep total | awk '{print $3}' | sed 's/%//')
echo "Total coverage: ${COVERAGE}%"
# Fail if coverage is below threshold (adjust as needed)
THRESHOLD=15.0
if (( $(echo "$COVERAGE < $THRESHOLD" | bc -l) )); then
echo "❌ Coverage ${COVERAGE}% is below threshold ${THRESHOLD}%"
exit 1
else
echo "✅ Coverage ${COVERAGE}% meets threshold ${THRESHOLD}%"
fi
- name: Upload coverage to Codecov
if: matrix.go-version == '1.24'
uses: codecov/codecov-action@v4
with:
files: ./coverage.out
flags: unittests
name: codecov-umbrella
fail_ci_if_error: false
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.24'
- name: Run golangci-lint
uses: golangci/golangci-lint-action@v7
with:
version: v2.5.0
args: --timeout=5m
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.24'
- name: Cache Go modules
uses: actions/cache@v4
with:
path: |
~/.cache/go-build
~/go/pkg/mod
key: ${{ runner.os }}-go-build-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-build-
- name: Build
run: go build -v ./...
format:
name: Format Check
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.24'
- name: Check formatting
run: |
if [ -n "$(gofmt -l .)" ]; then
echo "❌ The following files are not formatted:"
gofmt -l .
echo ""
echo "Run 'gofmt -w .' to fix formatting"
exit 1
else
echo "✅ All files are properly formatted"
fi
- name: Check go mod tidy
run: |
go mod tidy
if [ -n "$(git status --porcelain)" ]; then
echo "❌ go.mod or go.sum need to be tidied"
git diff
exit 1
else
echo "✅ go.mod and go.sum are tidy"
fi