mirror of
https://github.com/containrrr/watchtower.git
synced 2026-01-24 01:36:09 +01:00
redo ci
This commit is contained in:
parent
d44c6e7ddc
commit
6b1dfcedc1
6 changed files with 204 additions and 58 deletions
54
dockerfile/build/Dockerfile
Normal file
54
dockerfile/build/Dockerfile
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
FROM golang:1.7.4
|
||||
MAINTAINER Fabrizio Steiner <stffabi@users.noreply.github.com>
|
||||
|
||||
ARG BUILD_DATE
|
||||
ARG VCS_REF
|
||||
ARG VERSION
|
||||
|
||||
LABEL org.label-schema.build-date=$BUILD_DATE \
|
||||
org.label-schema.vcs-ref=$VCS_REF \
|
||||
org.label-schema.vcs-url="https://github.com/stffabi/docker-gobuilder" \
|
||||
org.label-schema.version="$VERSION" \
|
||||
org.label-schema.schema-version="1.0"
|
||||
|
||||
ARG glide=0.12.3
|
||||
ARG goreleaser=0.59.0
|
||||
ARG docker=17.05.0-ce
|
||||
|
||||
# Install glide binary
|
||||
RUN curl --silent --show-error --fail --location \
|
||||
--header "Accept: application/tar+gzip, application/x-gzip, application/octet-stream" -o - \
|
||||
"https://github.com/Masterminds/glide/releases/download/v${glide}/glide-v${glide}-linux-amd64.tar.gz" \
|
||||
| tar --no-same-owner -xz linux-amd64/glide -O > /usr/bin/glide \
|
||||
&& chmod 0755 /usr/bin/glide \
|
||||
&& /usr/bin/glide -v
|
||||
|
||||
# Install goreleaser binary
|
||||
RUN curl --silent --show-error --fail --location \
|
||||
--header "Accept: application/tar+gzip, application/x-gzip, application/octet-stream" -o - \
|
||||
"https://github.com/goreleaser/goreleaser/releases/download/v${goreleaser}/goreleaser_Linux_x86_64.tar.gz" \
|
||||
| tar --no-same-owner -C /usr/bin/ -xz goreleaser \
|
||||
&& chmod 0755 /usr/bin/goreleaser \
|
||||
&& /usr/bin/goreleaser -v
|
||||
|
||||
# Install docker binary
|
||||
RUN mkdir -p /tmp \
|
||||
&& curl --silent --show-error --fail --location \
|
||||
--header "Accept: application/tar+gzip, application/x-gzip, application/octet-stream" -o - \
|
||||
"https://get.docker.com/builds/Linux/x86_64/docker-${docker}.tgz" \
|
||||
| tar -xz -C /tmp \
|
||||
&& mv /tmp/docker/* /usr/bin \
|
||||
&& rm -rf /tmp \
|
||||
&& chmod 0755 /usr/bin/docker \
|
||||
&& chmod 0755 /usr/bin/docker* \
|
||||
&& /usr/bin/docker -v
|
||||
|
||||
VOLUME /src
|
||||
WORKDIR /src
|
||||
|
||||
COPY build_environment.sh /
|
||||
COPY build.sh /
|
||||
|
||||
RUN chmod 0755 /*.sh
|
||||
|
||||
ENTRYPOINT ["/build.sh"]
|
||||
28
dockerfile/build/build.sh
Normal file
28
dockerfile/build/build.sh
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
#!/bin/bash -e
|
||||
|
||||
if [ -z "$1" ]
|
||||
then
|
||||
echo "No argument supplied, please either supply 'release' for a release build or 'ci' for ci build."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
source /build_environment.sh
|
||||
|
||||
# Grab the last segment from the package name
|
||||
name=${pkgName##*/}
|
||||
|
||||
echo "Running Tests $pkgName..."
|
||||
(
|
||||
go test -v $(glide novendor) || exit 1
|
||||
)
|
||||
|
||||
if [ "$1" == "release" ]
|
||||
then
|
||||
echo "Release Building $pkgName..."
|
||||
CGO_ENABLED=${CGO_ENABLED:-0} \
|
||||
goreleaser
|
||||
else
|
||||
echo "Snapshot Building $pkgName..."
|
||||
CGO_ENABLED=${CGO_ENABLED:-0} \
|
||||
goreleaser --snapshot --skip-publish
|
||||
fi
|
||||
40
dockerfile/build/build_environment.sh
Normal file
40
dockerfile/build/build_environment.sh
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
#!/bin/bash
|
||||
|
||||
files=$(ls -1 /src | wc -l)
|
||||
if [ "$files" == "0" ];
|
||||
then
|
||||
echo "Error: Must mount Go source code into /src directory"
|
||||
exit 990
|
||||
fi
|
||||
|
||||
# Grab Go package name
|
||||
pkgName="$(go list -e -f '{{.ImportComment}}' 2>/dev/null || true)"
|
||||
|
||||
if [ -z "$pkgName" ];
|
||||
then
|
||||
echo "Error: Must add canonical import path to root package"
|
||||
exit 992
|
||||
fi
|
||||
|
||||
# Grab just first path listed in GOPATH
|
||||
goPath="${GOPATH%%:*}"
|
||||
|
||||
# Construct Go package path
|
||||
pkgPath="$goPath/src/$pkgName"
|
||||
|
||||
# Set-up src directory tree in GOPATH
|
||||
mkdir -p "$(dirname "$pkgPath")"
|
||||
|
||||
# Link source dir into GOPATH
|
||||
ln -sf /src "$pkgPath"
|
||||
cd "$pkgPath"
|
||||
|
||||
echo "Restoring dependencies..."
|
||||
if [ -e glide.yaml ];
|
||||
then
|
||||
# Install dependencies with glide...
|
||||
glide install
|
||||
else
|
||||
# Get all package dependencies
|
||||
go get -t -d -v ./...
|
||||
fi
|
||||
Loading…
Add table
Add a link
Reference in a new issue