name: CI on: push: branches: [ "main" ] pull_request: branches: [ "main" ] jobs: lint: name: Lint runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version: '1.23' cache: false - name: golangci-lint uses: golangci/golangci-lint-action@v6 with: version: latest test: name: Test runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version: '1.23' - name: Test run: go test -v -race -cover ./... build: name: Build runs-on: ubuntu-latest needs: [test] steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version: '1.23' - name: Build run: go build -v ./cmd/app docker-build: name: Docker Build runs-on: ubuntu-latest needs: [build] steps: - uses: actions/checkout@v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Build uses: docker/build-push-action@v5 with: context: . push: false tags: app:latest cache-from: type=gha cache-to: type=gha,mode=max