Compare commits

...

24 Commits
main ... v1.2.5

Author SHA1 Message Date
Nolan Brubaker
703f96dcff Use Xenial workers
trusty workers have older versions of software that we can't upgrade
ourselves.

Signed-off-by: Nolan Brubaker <brubakern@vmware.com>
2019-09-03 18:43:57 -04:00
Nolan Brubaker
215d4cd1b6 Add -- separator to push
Signed-off-by: Nolan Brubaker <brubakern@vmware.com>
2019-09-03 18:11:37 -04:00
Nolan Brubaker
4aeead626b Use gcloud docker, no helpers
Signed-off-by: Nolan Brubaker <brubakern@vmware.com>
2019-09-03 18:02:52 -04:00
Nolan Brubaker
878247fb36 Use gcloud's external cred helper
Signed-off-by: Nolan Brubaker <brubakern@vmware.com>
2019-09-03 17:44:45 -04:00
Nolan Brubaker
ee761952bb Print lines of deploy script
Signed-off-by: Nolan Brubaker <brubakern@vmware.com>
2019-09-03 17:33:50 -04:00
Nolan Brubaker
026afd4d6d Really add my project's key file
Signed-off-by: Nolan Brubaker <brubakern@vmware.com>
2019-09-03 17:14:29 -04:00
Nolan Brubaker
03e4e78dce Make a docker directory and config
Signed-off-by: Nolan Brubaker <brubakern@vmware.com>
2019-09-03 16:58:27 -04:00
Nolan Brubaker
24ab715247 Add travis diagnostic info
Signed-off-by: Nolan Brubaker <brubakern@vmware.com>
2019-09-03 16:45:49 -04:00
Nolan Brubaker
415a6322cb Don't use gcloud docker
Signed-off-by: Nolan Brubaker <brubakern@vmware.com>
2019-09-03 16:43:25 -04:00
Nolan Brubaker
04a6208b0c Use gcloud docker to push
Signed-off-by: Nolan Brubaker <brubakern@vmware.com>
2019-09-03 16:34:56 -04:00
Nolan Brubaker
9bb547562a Accept docker configuration change
Signed-off-by: Nolan Brubaker <brubakern@vmware.com>
2019-09-03 16:05:26 -04:00
Nolan Brubaker
576bc9e0c3 Remove test/verify dependencies for container build
Signed-off-by: Nolan Brubaker <brubakern@vmware.com>
2019-09-03 15:57:13 -04:00
Nolan Brubaker
49fce11121 Use beta gcloud tools
Signed-off-by: Nolan Brubaker <brubakern@vmware.com>
2019-09-03 15:56:36 -04:00
Nolan Brubaker
78c2775a04 Add docker cred helper
Signed-off-by: Nolan Brubaker <brubakern@vmware.com>
2019-09-03 15:46:14 -04:00
Nolan Brubaker
11ac3dd3f9 Add encrypted file for my fork for real
Signed-off-by: Nolan Brubaker <brubakern@vmware.com>
2019-09-03 15:36:38 -04:00
Nolan Brubaker
179e42f200 Use bash explicitly
Signed-off-by: Nolan Brubaker <brubakern@vmware.com>
2019-09-03 15:12:45 -04:00
Nolan Brubaker
7e5df27a07 Add info to build on my fork
Signed-off-by: Nolan Brubaker <brubakern@vmware.com>
2019-09-03 15:04:10 -04:00
Nolan Brubaker
07edee471b Review feedback
Signed-off-by: Nolan Brubaker <brubakern@vmware.com>
2019-08-29 18:12:25 -04:00
Nolan Brubaker
63ae23458c Rearrange logic so that there's only one make call
Signed-off-by: Nolan Brubaker <brubakern@vmware.com>
2019-08-29 15:05:46 -04:00
Nolan Brubaker
54a5dee1e3 Remove unused env section
Signed-off-by: Nolan Brubaker <brubakern@vmware.com>
2019-08-29 14:59:21 -04:00
Nolan Brubaker
1d16a36bfb Add encrypted GCR creds
Signed-off-by: Nolan Brubaker <brubakern@vmware.com>
2019-08-29 14:59:00 -04:00
Nolan Brubaker
32c99d9e3b Add travis integration to deployment
* ensure $BRANCH is always the same value (borrowed from Sonobuoy)
* get gcloud SDK installed (borrowed from Sonobuoy)
* use deploy step to run GCR push script (borrowed from Sonobuoy)
* use gcloud's docker to do the image building/pushing
* placeholders for secure values
* rename $LATEST to $HIGHEST to more accurately reflect what it is

Signed-off-by: Nolan Brubaker <brubakern@vmware.com>
2019-08-28 19:11:25 -04:00
Nolan Brubaker
6e3209e6e3 Explain the latest tag logic
Signed-off-by: Nolan Brubaker <brubakern@vmware.com>
2019-08-27 15:57:43 -04:00
Nolan Brubaker
eccaa81af5 Add script for pushing container images via Travis
Signed-off-by: Nolan Brubaker <brubakern@vmware.com>
2019-08-23 13:04:52 -04:00
5 changed files with 91 additions and 9 deletions

View File

@@ -1,3 +1,4 @@
dist: xenial
language: go
go:
@@ -8,4 +9,20 @@ sudo: required
services:
- docker
script: hack/ci-check.sh
script:
- export BRANCH=$(if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then echo $TRAVIS_BRANCH; else echo $TRAVIS_PULL_REQUEST_BRANCH; fi)
- echo "TRAVIS_BRANCH=$TRAVIS_BRANCH, PR=$TRAVIS_PULL_REQUEST, BRANCH=$BRANCH"
- hack/ci-check.sh
# gcloud sdk is needed to upload docker images
before_deploy:
- if [ ! -d ${HOME}/google-cloud-sdk ]; then curl https://sdk.cloud.google.com | bash
/dev/stdin --disable-prompts; fi
deploy:
- provider: script
skip_cleanup: true
script: hack/gcr-push.sh
on:
repo: nrb/velero
all_branches: true

View File

@@ -21,7 +21,7 @@ BIN ?= velero
PKG := github.com/heptio/velero
# Where to push the docker image.
REGISTRY ?= gcr.io/heptio-images
REGISTRY ?= gcr.io/nolanb-vmware
# Which architecture to build - see $(ALL_ARCH) for options.
# if the 'local' rule is being run, detect the ARCH from 'go env'
@@ -140,10 +140,10 @@ build-fsfreeze:
push-fsfreeze: BIN = fsfreeze-pause
push-fsfreeze:
@docker push $(IMAGE):$(VERSION)
@gcloud docker -- push $(IMAGE):$(VERSION)
ifeq ($(TAG_LATEST), true)
docker tag $(IMAGE):$(VERSION) $(IMAGE):latest
docker push $(IMAGE):latest
gcloud docker -- tag $(IMAGE):$(VERSION) $(IMAGE):latest
gcloud docker -- push $(IMAGE):latest
endif
@docker images -q $(REGISTRY)/fsfreeze-pause:$(VERSION) > .container-$(DOTFILE_IMAGE)
@@ -152,7 +152,7 @@ all-containers:
$(MAKE) container BIN=velero-restic-restore-helper
$(MAKE) build-fsfreeze
container: verify test .container-$(DOTFILE_IMAGE) container-name
container: .container-$(DOTFILE_IMAGE) container-name
.container-$(DOTFILE_IMAGE): _output/bin/$(GOOS)/$(GOARCH)/$(BIN) $(DOCKERFILE)
@cp $(DOCKERFILE) _output/.dockerfile-$(BIN)-$(GOOS)-$(GOARCH)
@docker build --pull -t $(IMAGE):$(VERSION) -f _output/.dockerfile-$(BIN)-$(GOOS)-$(GOARCH) _output
@@ -169,10 +169,10 @@ all-push:
push: .push-$(DOTFILE_IMAGE) push-name
.push-$(DOTFILE_IMAGE): .container-$(DOTFILE_IMAGE)
@docker push $(IMAGE):$(VERSION)
@gcloud docker -- push $(IMAGE):$(VERSION)
ifeq ($(TAG_LATEST), true)
docker tag $(IMAGE):$(VERSION) $(IMAGE):latest
docker push $(IMAGE):latest
gcloud docker -- tag $(IMAGE):$(VERSION) $(IMAGE):latest
gcloud docker -- push $(IMAGE):latest
endif
@docker images -q $(IMAGE):$(VERSION) > $@

65
hack/gcr-push.sh Executable file
View File

@@ -0,0 +1,65 @@
#!/bin/bash
set +x
if [[ -z "$TRAVIS" ]]; then
echo "This script is intended to be run only on Travis." >&2
exit 1
fi
# Return value is written into HIGHEST
HIGHEST=""
function highest_release() {
# Loop through the tags since pre-release versions come before the actual versions.
# Iterate til we find the first non-pre-release
# This is not necessarily the most recently made tag; instead, we want it to be the highest semantic version.
# The most recent tag could potentially be a lower semantic version, made as a point release for a previous series.
# As an example, if v1.3.0 exists and we create v1.2.2, v1.3.0 should still be `latest`.
# `git describe --tags $(git rev-list --tags --max-count=1)` would return the most recently made tag.
for t in $(git tag -l --sort=-v:refname);
do
# If the tag has alpha, beta or rc in it, it's not "latest"
if [[ "$t" == *"beta"* || "$t" == *"alpha"* || "$t" == *"rc"* ]]; then
continue
fi
HIGHEST="$t"
break
done
}
if [ "$BRANCH" == "master" ]; then
VERSION="$BRANCH"
elif [ ! -z "$TRAVIS_TAG" ]; then
VERSION="$TRAVIS_TAG"
else
# If we're not on master and we're not building a tag, exit early.
exit 0
fi
# Calculate the latest release
highest_release
# Assume we're not tagging `latest` by default.
TAG_LATEST=false
if [[ "$TRAVIS_TAG" == "$HIGHEST" ]]; then
TAG_LATEST=true
fi
openssl aes-256-cbc -K $encrypted_f58ab4413c21_key -iv $encrypted_f58ab4413c21_iv -in nolanb-vmware-55ce4993acec.json.enc -out nolanb-vmware-55ce4993acec.json -d
gcloud auth activate-service-account --key-file nolanb-vmware-55ce4993acec.json
#openssl aes-256-cbc -K $encrypted_f58ab4413c21_key -iv $encrypted_f58ab4413c21_iv -in heptio-images-fac92d2303ac.json.enc -out heptio-images-fac92d2303ac.json -d
#gcloud auth activate-service-account --key-file heptio-images-fac92d2303ac.json
unset GIT_HTTP_USER_AGENT
echo "DIAGNOSTICS"
ls -al .
ls -al /home/travis/.docker
cat /home/travis/.docker/config.json
docker --version
gcloud --version
echo "END DIAGNOSTICS"
echo "Building and pushing container images."
VERSION="$VERSION" TAG_LATEST="$TAG_LATEST" make all-containers all-push

Binary file not shown.

Binary file not shown.