Merge branch 'master' into master

This commit is contained in:
Simon Aronsson 2019-04-14 22:10:11 +02:00 committed by GitHub
commit d98dd97a4b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 92 additions and 29 deletions

View file

@ -37,10 +37,10 @@ workflows:
- testing - testing
- linting - linting
filters: filters:
tags:
ignore: /^v[0-9]+(\.[0-9]+)*$/
branches: branches:
only: /.*/ only: /.*/
tags:
ignore: /^v[0-9]+(\.[0-9]+)*$/
- publishing: - publishing:
requires: requires:
- testing - testing
@ -115,26 +115,81 @@ jobs:
name: Execute goreleaser name: Execute goreleaser
command: CGO_ENABLED=${CGO_ENABLED:-0} ../goreleaser --debug command: CGO_ENABLED=${CGO_ENABLED:-0} ../goreleaser --debug
- run: - run:
name: Docker Manifest name: Enable experimental docker features
command: | command: |
mkdir -p ~/.docker/ && \ mkdir -p ~/.docker/ && \
echo '{"experimental": "enabled"}' > ~/.docker/config.json && \ echo '{"experimental": "enabled"}' > ~/.docker/config.json
docker manifest create containrrr/watchtower:${CIRCLE_TAG} containrrr/watchtower:amd64-${CIRCLE_TAG} containrrr/watchtower:i386-${CIRCLE_TAG} containrrr/watchtower:armhf-${CIRCLE_TAG} containrrr/watchtower:arm64v8-${CIRCLE_TAG} && \ - run:
docker manifest annotate containrrr/watchtower:${CIRCLE_TAG} containrrr/watchtower:i386-${CIRCLE_TAG} --os linux --arch 386 && \ name: Create manifest for version
docker manifest annotate containrrr/watchtower:${CIRCLE_TAG} containrrr/watchtower:armhf-${CIRCLE_TAG} --os linux --arch arm && \ command: |
docker manifest annotate containrrr/watchtower:${CIRCLE_TAG} containrrr/watchtower:arm64v8-${CIRCLE_TAG} --os linux --arch arm64 --variant v8 && \ docker manifest create \
docker tag containrrr/watchtower:amd64-${CIRCLE_TAG} containrrr/watchtower:amd64-latest && \ containrrr/watchtower:${CIRCLE_TAG} \
docker tag containrrr/watchtower:i386-${CIRCLE_TAG} containrrr/watchtower:i386-latest && \ containrrr/watchtower:amd64-${CIRCLE_TAG} \
docker tag containrrr/watchtower:armhf-${CIRCLE_TAG} containrrr/watchtower:armhf-latest && \ containrrr/watchtower:i386-${CIRCLE_TAG} \
docker tag containrrr/watchtower:arm64v8-${CIRCLE_TAG} containrrr/watchtower:arm64v8-latest && \ containrrr/watchtower:armhf-${CIRCLE_TAG} \
docker push containrrr/watchtower:amd64-latest && \ containrrr/watchtower:arm64v8-${CIRCLE_TAG}
docker push containrrr/watchtower:i386-latest && \ - run:
docker push containrrr/watchtower:armhf-latest && \ name: Annotate i386 version
docker push containrrr/watchtower:arm64v8-latest && \ command: |
docker manifest create containrrr/watchtower:latest containrrr/watchtower:amd64-latest containrrr/watchtower:i386-latest containrrr/watchtower:armhf-latest containrrr/watchtower:arm64v8-latest && \ docker manifest annotate \
docker manifest annotate containrrr/watchtower:latest containrrr/watchtower:i386-latest --os linux --arch 386 && \ containrrr/watchtower:${CIRCLE_TAG} \
docker manifest annotate containrrr/watchtower:latest containrrr/watchtower:armhf-latest --os linux --arch arm && \ containrrr/watchtower:i386-${CIRCLE_TAG} \
docker manifest annotate containrrr/watchtower:latest containrrr/watchtower:arm64v8-latest --os linux --arch arm64 --variant v8 && \ --os linux \
--arch 386
- run:
name: Annotate ARM version
command: |
docker manifest annotate \
containrrr/watchtower:${CIRCLE_TAG} \
containrrr/watchtower:armhf-${CIRCLE_TAG} \
--os linux \
--arch arm
- run:
name: Annotate ARM64 version
command: |
docker manifest annotate \
containrrr/watchtower:${CIRCLE_TAG} \
containrrr/watchtower:arm64v8-${CIRCLE_TAG} \
--os linux \
--arch arm64 \
--variant v8
- run:
name: Create manifest for latest
command: |
docker manifest create \
containrrr/watchtower:latest \
containrrr/watchtower:amd64-latest \
containrrr/watchtower:i386-latest \
containrrr/watchtower:armhf-latest \
containrrr/watchtower:arm64v8-latest
- run:
name: Annotate i386 latest
command: |
docker manifest annotate \
containrrr/watchtower:latest \
containrrr/watchtower:i386-latest \
--os linux \
--arch 386
- run:
name: Annotate ARM latest
command: |
docker manifest annotate \
containrrr/watchtower:latest \
containrrr/watchtower:armhf-latest \
--os linux \
--arch arm
- run:
name: Annotate ARM64 latest
command: |
docker manifest annotate \
containrrr/watchtower:latest \
containrrr/watchtower:arm64v8-latest \
--os linux \
--arch arm64 \
--variant v8
- run:
name: Push manifests to Dockerhub
command: |
docker manifest push containrrr/watchtower:${CIRCLE_TAG} && \ docker manifest push containrrr/watchtower:${CIRCLE_TAG} && \
docker manifest push containrrr/watchtower:latest docker manifest push containrrr/watchtower:latest
- run: - run:

View file

@ -1,14 +1,19 @@
## Prerequisites ## Prerequisites
To contribute code changes to this project you will need the following development kits. To contribute code changes to this project you will need the following development kits.
* Go. [Download and install](https://golang.org/doc/install) the Go programming language * [Go](https://golang.org/doc/install)
* [docker](https://docs.docker.com/engine/installation/) * [Docker](https://docs.docker.com/engine/installation/)
As watchtower utilizes go modules for vendor locking, you'll need atleast Go 1.11.
You can check your current version of the go language as follows:
```bash
~ $ go version
go version go1.12.1 darwin/amd64
```
## Checking out the code ## Checking out the code
When cloning watchtower to your development environment you should place your forked repo within the [standard go code structure](https://golang.org/doc/code.html#Organization). Do not place your code in the go source path.
```bash ```bash
cd $GOPATH/src
mkdir <yourfork>
cd <yourfork>
git clone git@github.com:<yourfork>/watchtower.git git clone git@github.com:<yourfork>/watchtower.git
cd watchtower cd watchtower
``` ```
@ -16,9 +21,8 @@ cd watchtower
## Building and testing ## Building and testing
watchtower is a go application and is built with go commands. The following commands assume that you are at the root level of your repo. watchtower is a go application and is built with go commands. The following commands assume that you are at the root level of your repo.
```bash ```bash
go get -u github.com/Masterminds/glide # installs glide for vendoring
glide install # retrieves package dependencies
go build # compiles and packages an executable binary, watchtower go build # compiles and packages an executable binary, watchtower
go test # runs tests go test ./... -v # runs tests with verbose output
./watchtower # runs the application (outside of a container) ./watchtower # runs the application (outside of a container)
``` ```
If you dont have it enabled, you'll either have to prefix each command with `GO111MODULE=on` or run `export GO111MODULE=on` before running the commands. [You can read more about modules here.](https://github.com/golang/go/wiki/Modules)

View file

@ -32,6 +32,7 @@ dockers:
dockerfile: Dockerfile dockerfile: Dockerfile
image_templates: image_templates:
- containrrr/watchtower:amd64-{{ .Version }} - containrrr/watchtower:amd64-{{ .Version }}
- containrrr/watchtower:amd64-latest
binaries: binaries:
- watchtower - watchtower
- -
@ -41,6 +42,7 @@ dockers:
dockerfile: Dockerfile dockerfile: Dockerfile
image_templates: image_templates:
- containrrr/watchtower:i386-{{ .Version }} - containrrr/watchtower:i386-{{ .Version }}
- containrrr/watchtower:i386-latest
binaries: binaries:
- watchtower - watchtower
- -
@ -50,6 +52,7 @@ dockers:
dockerfile: Dockerfile dockerfile: Dockerfile
image_templates: image_templates:
- containrrr/watchtower:armhf-{{ .Version }} - containrrr/watchtower:armhf-{{ .Version }}
- containrrr/watchtower:armhf-latest
binaries: binaries:
- watchtower - watchtower
- -
@ -59,5 +62,6 @@ dockers:
dockerfile: Dockerfile dockerfile: Dockerfile
image_templates: image_templates:
- containrrr/watchtower:arm64v8-{{ .Version }} - containrrr/watchtower:arm64v8-{{ .Version }}
- containrrr/watchtower:arm64v8-latest
binaries: binaries:
- watchtower - watchtower