diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml new file mode 100644 index 0000000..2953562 --- /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 + - 1.21 + 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: ./ \ No newline at end of file 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..3e2c090 --- /dev/null +++ b/Makefile @@ -0,0 +1,24 @@ +# Project packages. +PACKAGES=$(shell go list ./... | grep -v /vendor/) + +# 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 ${PACKAGES} + +test: ## run tests + go test ${TESTFLAGS} ${PACKAGES} + +coverage: ## generate coverprofiles from the unit tests + rm -f coverage.txt + go test ${TESTFLAGS} -cover -coverprofile=cover.out ${PACKAGES} + +.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.