Build binary and container in CircleCI

Cache go modules
This commit is contained in:
stefanprodan
2019-06-21 12:55:27 +03:00
parent b5f73d66ec
commit 0147aea69b
2 changed files with 95 additions and 35 deletions
+79 -35
View File
@@ -1,5 +1,44 @@
version: 2.1
jobs:
build-binary:
docker:
- image: circleci/golang:1.12
working_directory: /build
steps:
- checkout
- restore_cache:
keys:
- go-mod-{{ checksum "go.sum" }}
- run: |
CGO_ENABLED=0 GOOS=linux go build \
-ldflags "-s -w -X github.com/weaveworks/flagger/pkg/version.REVISION=${CIRCLE_SHA1}" \
-a -installsuffix cgo -o flagger ./cmd/flagger/*
./flagger -version
- save_cache:
key: go-mod-{{ checksum "go.sum" }}
paths:
- "/go/pkg/mod/"
- persist_to_workspace:
root: workspace
paths:
- flagger
build-container:
docker:
- image: circleci/golang:1.12
working_directory: /build
steps:
- checkout
- setup_remote_docker:
docker_layer_caching: true
- attach_workspace:
at: /tmp/workspace
- run: |
cp /tmp/workspace/flagger .
chmod +x flagger
docker build -t weaveworks/flagger:${CIRCLE_SHA1} . -f ./test/Dockerfile.ci
e2e-istio-testing:
machine: true
steps:
@@ -49,38 +88,43 @@ workflows:
version: 2
build-and-test:
jobs:
- e2e-istio-testing:
filters:
branches:
ignore:
- /gh-pages.*/
- /docs-.*/
- /release-.*/
- e2e-smi-istio-testing:
filters:
branches:
ignore:
- /gh-pages.*/
- /docs-.*/
- /release-.*/
- e2e-supergloo-testing:
filters:
branches:
ignore:
- /gh-pages.*/
- /docs-.*/
- /release-.*/
- e2e-nginx-testing:
filters:
branches:
ignore:
- /gh-pages.*/
- /docs-.*/
- /release-.*/
- e2e-gloo-testing:
filters:
branches:
ignore:
- /gh-pages.*/
- /docs-.*/
- /release-.*/
- buid-binary
- build-container
requires:
- build-binary
# - e2e-istio-testing:
# filters:
# branches:
# ignore:
# - /gh-pages.*/
# - /docs-.*/
# - /release-.*/
# - e2e-smi-istio-testing:
# filters:
# branches:
# ignore:
# - /gh-pages.*/
# - /docs-.*/
# - /release-.*/
# - e2e-supergloo-testing:
# filters:
# branches:
# ignore:
# - /gh-pages.*/
# - /docs-.*/
# - /release-.*/
# - e2e-nginx-testing:
# filters:
# branches:
# ignore:
# - /gh-pages.*/
# - /docs-.*/
# - /release-.*/
# - e2e-gloo-testing:
# filters:
# branches:
# ignore:
# - /gh-pages.*/
# - /docs-.*/
# - /release-.*/
+16
View File
@@ -0,0 +1,16 @@
FROM alpine:3.9
RUN addgroup -S flagger \
&& adduser -S -g flagger flagger \
&& apk --no-cache add ca-certificates
WORKDIR /home/flagger
COPY ./flagger .
RUN chown -R flagger:flagger ./
USER flagger
ENTRYPOINT ["./flagger"]