Add a new generic container registry client via a new `container` package. Use this to create a command line utility as well as a new upload target for container registries. The code uses the github.com/containers/* project and packages to interact with container registires that is also used by skopeo, podman et al. One if the dependencies is `proglottis/gpgme` that is using cgo to bind libgpgme, so we have to add the corresponding devel package to the BuildRequires as well as installing it on CI. Checks will follow later via an integration test.
57 lines
1 KiB
Text
57 lines
1 KiB
Text
# Makefile for releasing.
|
|
#
|
|
# The release is controlled from version.go. The version found there is
|
|
# used to tag the git repo, we're not building any artifects so there is nothing
|
|
# to upload to github.
|
|
#
|
|
# * Up the version in version.go
|
|
# * Run: make -f Makefile.release release
|
|
# * will *commit* your change with 'Release $VERSION'
|
|
# * push to github
|
|
#
|
|
|
|
define GO
|
|
//+build ignore
|
|
|
|
package main
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/miekg/pkcs11"
|
|
)
|
|
|
|
func main() {
|
|
fmt.Println(pkcs11.Release.String())
|
|
}
|
|
endef
|
|
|
|
$(file > version_release.go,$(GO))
|
|
VERSION:=$(shell go run -tags release version_release.go)
|
|
TAG="v$(VERSION)"
|
|
|
|
all:
|
|
rm -f version_release.go
|
|
@echo Use the \'release\' target to start a release $(VERSION)
|
|
|
|
.PHONY: run
|
|
run:
|
|
rm -f version_release.go
|
|
@echo $(VERSION)
|
|
|
|
.PHONY: release
|
|
release: commit push
|
|
@echo Released $(VERSION)
|
|
|
|
.PHONY: commit
|
|
commit:
|
|
rm -f version_release.go
|
|
@echo Committing release $(VERSION)
|
|
git commit -am"Release $(VERSION)"
|
|
git tag $(TAG)
|
|
|
|
.PHONY: push
|
|
push:
|
|
@echo Pushing release $(VERSION) to master
|
|
git push --tags
|
|
git push
|