Skip to content

Commit 2f186dc

Browse files
committed
Add docker build to circleci config
1 parent 5951b63 commit 2f186dc

File tree

1 file changed

+89
-68
lines changed

1 file changed

+89
-68
lines changed

.circleci/config.yml

Lines changed: 89 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -2,86 +2,107 @@ version: 2
22
jobs:
33
frontend:
44
docker:
5-
- image: circleci/node:10.8.0
5+
- image: circleci/node:10.8.0
66
steps:
7-
- checkout
8-
- run:
9-
name: "Install dependencies"
10-
command: yarn install
11-
- run:
12-
name: "Build"
13-
command: yarn run build
14-
- persist_to_workspace:
15-
root: .
16-
paths:
17-
- dist/*
7+
- checkout
8+
- run:
9+
name: "Install dependencies"
10+
command: yarn install
11+
- run:
12+
name: "Build"
13+
command: yarn run build
14+
- persist_to_workspace:
15+
root: .
16+
paths:
17+
- dist/*
1818

1919
backend:
2020
docker:
21-
- image: circleci/golang:1.14
21+
- image: circleci/golang:1.16
2222
working_directory: /go/src/github.com/RoboCup-SSL/ssl-status-board
2323
steps:
24-
- checkout
25-
- attach_workspace:
26-
at: .
27-
- run: go get -v -t -d ./...
28-
- run: go test -v -covermode=count -coverprofile=count.out ./...
29-
- run: go tool cover -html=count.out -o coverage.html
30-
- run:
31-
working_directory: cmd/ssl-status-board
32-
command: |
33-
go get -v github.com/gobuffalo/packr/packr
34-
GOOS=linux GOARCH=amd64 packr build -o ../../release/ssl-status-board_linux_amd64
35-
GOOS=linux GOARCH=arm packr build -o ../../release/ssl-status-board_linux_arm
36-
GOOS=darwin GOARCH=amd64 packr build -o ../../release/ssl-status-board_darwin_amd64
37-
GOOS=windows GOARCH=amd64 packr build -o ../../release/ssl-status-board_windows_amd64.exe
38-
- persist_to_workspace:
39-
root: .
40-
paths:
41-
- release/*
42-
- store_artifacts:
43-
path: coverage.html
44-
destination: coverage
24+
- checkout
25+
- attach_workspace:
26+
at: .
27+
- run: go get -v -t -d ./...
28+
- run: go test -v -covermode=count -coverprofile=count.out ./...
29+
- run: go tool cover -html=count.out -o coverage.html
30+
- run:
31+
working_directory: cmd/ssl-status-board
32+
command: |
33+
go get -v github.com/gobuffalo/packr/packr
34+
GOOS=linux GOARCH=amd64 packr build -o ../../release/ssl-status-board_linux_amd64
35+
GOOS=linux GOARCH=arm packr build -o ../../release/ssl-status-board_linux_arm
36+
GOOS=darwin GOARCH=amd64 packr build -o ../../release/ssl-status-board_darwin_amd64
37+
GOOS=windows GOARCH=amd64 packr build -o ../../release/ssl-status-board_windows_amd64.exe
38+
- persist_to_workspace:
39+
root: .
40+
paths:
41+
- release/*
42+
- store_artifacts:
43+
path: coverage.html
44+
destination: coverage
4545

4646
publish-github-release:
4747
docker:
48-
- image: circleci/golang:1.14
48+
- image: circleci/golang:1.16
4949
steps:
50-
- attach_workspace:
51-
at: .
52-
- run:
53-
name: "Prepare artifacts"
54-
working_directory: release
55-
command: |
56-
mv ssl-status-board_linux_amd64 ssl-status-board_${CIRCLE_TAG}_linux_amd64
57-
mv ssl-status-board_linux_arm ssl-status-board_${CIRCLE_TAG}_linux_arm
58-
mv ssl-status-board_darwin_amd64 ssl-status-board_${CIRCLE_TAG}_darwin_amd64
59-
mv ssl-status-board_windows_amd64.exe ssl-status-board_${CIRCLE_TAG}_windows_amd64.exe
60-
- run:
61-
name: "Publish Release on GitHub"
62-
command: |
63-
go get github.com/tcnksm/ghr
64-
ghr -t ${GITHUB_TOKEN} -u ${CIRCLE_PROJECT_USERNAME} -r ${CIRCLE_PROJECT_REPONAME} -c ${CIRCLE_SHA1} -delete ${CIRCLE_TAG} ./release/
50+
- attach_workspace:
51+
at: .
52+
- run:
53+
name: "Prepare artifacts"
54+
working_directory: release
55+
command: |
56+
mv ssl-status-board_linux_amd64 ssl-status-board_${CIRCLE_TAG}_linux_amd64
57+
mv ssl-status-board_linux_arm ssl-status-board_${CIRCLE_TAG}_linux_arm
58+
mv ssl-status-board_darwin_amd64 ssl-status-board_${CIRCLE_TAG}_darwin_amd64
59+
mv ssl-status-board_windows_amd64.exe ssl-status-board_${CIRCLE_TAG}_windows_amd64.exe
60+
- run:
61+
name: "Publish Release on GitHub"
62+
command: |
63+
go get github.com/tcnksm/ghr
64+
ghr -t ${GITHUB_TOKEN} -u ${CIRCLE_PROJECT_USERNAME} -r ${CIRCLE_PROJECT_REPONAME} -c ${CIRCLE_SHA1} -delete ${CIRCLE_TAG} ./release/
65+
66+
docker:
67+
docker:
68+
- image: cimg/base:2021.04
69+
steps:
70+
- checkout
71+
- setup_remote_docker:
72+
version: 20.10.6
73+
- run: |
74+
TAG=${CIRCLE_TAG:1}
75+
TAG=${TAG:-latest}
76+
docker build -t robocupssl/ssl-status-board:$TAG .
77+
docker login -u "${DOCKER_HUB_USERNAME}" -p "${DOCKER_HUB_PASSWORD}"
78+
docker push robocupssl/ssl-status-board:$TAG
6579
6680
workflows:
6781
version: 2
6882
main:
6983
jobs:
70-
- frontend:
71-
filters:
72-
tags:
73-
only: /.*/
74-
- backend:
75-
requires:
76-
- frontend
77-
filters:
78-
tags:
79-
only: /.*/
80-
- publish-github-release:
81-
requires:
82-
- backend
83-
filters:
84-
branches:
85-
ignore: /.*/
86-
tags:
87-
only: /^v.*/
84+
- frontend:
85+
filters:
86+
tags:
87+
only: /.*/
88+
- backend:
89+
requires:
90+
- frontend
91+
filters:
92+
tags:
93+
only: /.*/
94+
- publish-github-release:
95+
requires:
96+
- backend
97+
filters:
98+
branches:
99+
ignore: /.*/
100+
tags:
101+
only: /^v.*/
102+
- docker:
103+
context: docker hub
104+
filters:
105+
branches:
106+
only: master
107+
tags:
108+
only: /^v.*/

0 commit comments

Comments
 (0)