From 63ef35bfe939a03b3018747c6be9285be437e818 Mon Sep 17 00:00:00 2001 From: James Hewitt Date: Thu, 31 Aug 2023 10:54:13 +0100 Subject: [PATCH] Add code coverage to CI Signed-off-by: James Hewitt --- .github/workflows/coverage.yml | 42 ++++++++++++++++++++++++++++++++++ .gitignore | 2 ++ Makefile | 24 +++++++++++++++++++ README.md | 1 + 4 files changed, 69 insertions(+) create mode 100644 .github/workflows/coverage.yml create mode 100644 .gitignore create mode 100644 Makefile diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml new file mode 100644 index 0000000..669a5c2 --- /dev/null +++ b/.github/workflows/coverage.yml @@ -0,0 +1,42 @@ +name: build + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +on: + push: + branches: + - 'main' + - 'release/*' + tags: + - 'v*' + pull_request: + +jobs: + test: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + go: + - 1.20.x + - 1.21.x + steps: + - + name: Checkout + uses: actions/checkout@v3 + - + name: Set up Go + uses: actions/setup-go@v3 + with: + go-version: ${{ matrix.go }} + - + name: Test + run: | + make coverage + - + name: Codecov + uses: codecov/codecov-action@v3 + with: + directory: ./ diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..dc07e6b --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +# Cover profiles +*.out diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..c62f05a --- /dev/null +++ b/Makefile @@ -0,0 +1,24 @@ +# Project packages. +PACKAGES=$(shell go list ./...) + +# Flags passed to `go test` +TESTFLAGS ?= + +.PHONY: all build test coverage +.DEFAULT: all + +all: build + +build: ## no binaries to build, so just check compilation suceeds + go build ./... + +test: ## run tests + go test ${TESTFLAGS} ./... + +coverage: ## generate coverprofiles from the unit tests + rm -f coverage.txt + go test ${TESTFLAGS} -cover -coverprofile=cover.out ./... + +.PHONY: help +help: + @awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m\033[0m\n"} /^[a-zA-Z_\/%-]+:.*?##/ { printf " \033[36m%-27s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST) diff --git a/README.md b/README.md index fead4f8..626bfd3 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,7 @@ Go library to handle references to container images. [![Build Status](https://github.com/distribution/reference/workflows/CI/badge.svg?branch=main&event=push)](https://github.com/distribution/reference/actions?query=workflow%3ACI) [![GoDoc](https://img.shields.io/badge/go.dev-reference-007d9c?logo=go&logoColor=white&style=flat-square)](https://pkg.go.dev/github.com/distribution/reference) [![License: Apache-2.0](https://img.shields.io/badge/License-Apache--2.0-blue.svg)](LICENSE) +[![codecov](https://codecov.io/gh/distribution/reference/branch/main/graph/badge.svg)](https://codecov.io/gh/distribution/reference) [![FOSSA Status](https://app.fossa.com/api/projects/custom%2B162%2Fgithub.com%2Fdistribution%2Freference.svg?type=shield)](https://app.fossa.com/projects/custom%2B162%2Fgithub.com%2Fdistribution%2Freference?ref=badge_shield) This repository contains a library for handling refrences to container images held in container registries. Please see [godoc](https://pkg.go.dev/github.com/distribution/reference) for details.