Skip to content

Commit

Permalink
add artifact build make
Browse files Browse the repository at this point in the history
  • Loading branch information
umputun committed Jul 22, 2020
1 parent 3638b79 commit 9005980
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 0 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,4 @@

# Dependency directories (remove the comment below to include it)
# vendor/
bin/
31 changes: 31 additions & 0 deletions Dockerfile.artifacts
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
FROM umputun/baseimage:buildgo-latest as build

WORKDIR /build
ADD . /build

RUN \
version=$(/script/git-rev.sh); \
echo "version=$version" && \
export GOFLAGS="-mod=vendor" && \
echo "linux-amd64" && GOOS=linux GOARCH=amd64 go build -o cronn.linux-amd64 -ldflags "-X main.revision=${version} -s -w" ./app && \
echo "linux-386" && GOOS=linux GOARCH=386 go build -o cronn.linux-386 -ldflags "-X main.revision=${version} -s -w" ./app && \
echo "linux-arm" && GOOS=linux GOARCH=arm go build -o cronn.linux-arm -ldflags "-X main.revision=${version} -s -w" ./app && \
echo "linux-arm64" && GOOS=linux GOARCH=arm64 go build -o cronn.linux-arm64 -ldflags "-X main.revision=${version} -s -w" ./app && \
echo "windows-amd64" && GOOS=windows GOARCH=amd64 go build -o cronn.windows-amd64.exe -ldflags "-X main.revision=${version} -s -w" ./app && \
echo "darwin-amd64" && GOOS=darwin GOARCH=amd64 go build -o cronn.darwin-amd64 -ldflags "-X main.revision=${version} -s -w" ./app && \
echo "freebsd-amd64" && GOOS=freebsd GOARCH=amd64 go build -o cronn.freebsd-amd64 -ldflags "-X main.revision=${version} -s -w" ./app

RUN \
apk add --no-cache --update zip && \
tar cvzf cronn.linux-amd64.tar.gz cronn.linux-amd64 LICENSE README.md && \
tar cvzf cronn.linux-386.tar.gz cronn.linux-386 LICENSE README.md && \
tar cvzf cronn.linux-arm.tar.gz cronn.linux-arm LICENSE README.md && \
tar cvzf cronn.linux-arm64.tar.gz cronn.linux-arm64 LICENSE README.md && \
tar cvzf cronn.darwin-amd64.tar.gz cronn.darwin-amd64 LICENSE README.md && \
tar cvzf cronn.freebsd-amd64.tar.gz cronn.freebsd-amd64 LICENSE README.md && \
zip cronn.windows-amd64.zip cronn.windows-amd64.exe LICENSE README.md

FROM alpine
COPY --from=build /build/cronn.* /artifacts/
RUN ls -la /artifacts/*
CMD ["sleep", "100"]
20 changes: 20 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
docker:
docker build -t umputun/cronn .

bin:
docker build -f Dockerfile.artifacts -t cronn.bin .
- @docker rm -f cronn.bin 2>/dev/null || exit 0
- @mkdir -p bin
docker run -d --name=cronn.bin cronn.bin
docker cp cronn.bin:/artifacts/cronn.linux-amd64.tar.gz bin/cronn.linux-amd64.tar.gz
docker cp cronn.bin:/artifacts/cronn.linux-386.tar.gz bin/cronn.linux-386.tar.gz
docker cp cronn.bin:/artifacts/cronn.linux-arm64.tar.gz bin/cronn.linux-arm64.tar.gz
docker cp cronn.bin:/artifacts/cronn.darwin-amd64.tar.gz bin/cronn.darwin-amd64.tar.gz
docker cp cronn.bin:/artifacts/cronn.freebsd-amd64.tar.gz bin/cronn.freebsd-amd64.tar.gz
docker cp cronn.bin:/artifacts/cronn.windows-amd64.zip bin/cronn.windows-amd64.zip
docker rm -f cronn.bin

race_test:
cd app && go test -race -mod=vendor -timeout=60s -count 1 ./...

.PHONY: bin docker

0 comments on commit 9005980

Please sign in to comment.