Skip to content

Commit 3937a45

Browse files
committed
Update build process
1 parent 89773ef commit 3937a45

File tree

13 files changed

+189
-107
lines changed

13 files changed

+189
-107
lines changed

.circleci/config.yml

Lines changed: 39 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,55 @@
1-
version: 2
1+
version: 2.1
2+
parameters:
3+
cmds:
4+
type: string
5+
default: "ssl-auto-recorder ssl-log-player"
6+
27
jobs:
3-
tools:
8+
test_go:
9+
resource_class: medium
410
docker:
5-
- image: cimg/go:1.18
11+
- image: cimg/go:1.20.2
612
steps:
713
- checkout
14+
- attach_workspace:
15+
at: .
816
- run: go get -v -t -d ./...
917
- run: go test -v -covermode=count -coverprofile=count.out ./...
1018
- run: go tool cover -html=count.out -o coverage.html
1119
- store_artifacts:
1220
path: coverage.html
1321
destination: coverage
1422

15-
docker-auto-recorder:
23+
build_docker:
24+
resource_class: small
1625
docker:
17-
- image: cimg/base:2021.04
26+
- image: cimg/base:2023.04
1827
steps:
1928
- checkout
2029
- setup_remote_docker:
21-
version: 20.10.6
30+
version: 20.10.18
2231
- run: |
23-
# remove 'ssl-auto-recorder/v'
24-
TAG=${CIRCLE_TAG:19}
25-
TAG=${TAG:-latest}
26-
docker build -f ssl-auto-recorder.Dockerfile -t robocupssl/ssl-auto-recorder:$TAG .
27-
docker login -u "${DOCKER_HUB_USERNAME}" -p "${DOCKER_HUB_PASSWORD}"
28-
docker push robocupssl/ssl-auto-recorder:$TAG
32+
for cmd in << pipeline.parameters.cmds >>; do
33+
docker build -f ./cmd/${cmd}/Dockerfile -t robocupssl/${cmd}:latest .
34+
done
2935
30-
docker-log-player:
36+
publish_docker:
37+
resource_class: small
3138
docker:
32-
- image: cimg/base:2021.04
39+
- image: cimg/base:2023.04
3340
steps:
3441
- checkout
3542
- setup_remote_docker:
36-
version: 20.10.6
43+
version: 20.10.18
3744
- run: |
38-
# remove 'ssl-log-player/v'
39-
TAG=${CIRCLE_TAG:16}
45+
# Parse version from tag (removing 'v' prefix)
46+
TAG=${CIRCLE_TAG:1}
4047
TAG=${TAG:-latest}
41-
docker build -f ssl-log-player.Dockerfile -t robocupssl/ssl-log-player:$TAG .
42-
docker login -u "${DOCKER_HUB_USERNAME}" -p "${DOCKER_HUB_PASSWORD}"
43-
docker push robocupssl/ssl-log-player:$TAG
48+
for cmd in << pipeline.parameters.cmds >>; do
49+
docker build -f ./cmd/${cmd}/Dockerfile -t robocupssl/${cmd}:${TAG} .
50+
docker login -u "${DOCKER_HUB_USERNAME}" -p "${DOCKER_HUB_PASSWORD}"
51+
docker push robocupssl/${cmd}:${TAG}
52+
done
4453
4554
release:
4655
docker:
@@ -51,31 +60,17 @@ jobs:
5160

5261
workflows:
5362
version: 2
54-
main:
63+
build:
64+
jobs:
65+
- test_go
66+
release:
5567
jobs:
56-
- tools:
57-
filters:
58-
tags:
59-
only: /.*/
6068
- release:
6169
context: github
62-
# Only run this job on git tag pushes
63-
filters:
64-
branches:
65-
ignore: /.*/
66-
tags:
67-
only: /^v.*/
68-
- docker-auto-recorder:
69-
context: docker hub
70-
filters:
71-
branches:
72-
ignore: /.*/
73-
tags:
74-
only: /^ssl-auto-recorder\/v.*/
75-
- docker-log-player:
70+
filters: { branches: { ignore: /.*/ }, tags: { only: /^v.*/ } }
71+
docker:
72+
jobs:
73+
- build_docker
74+
- publish_docker:
7675
context: docker hub
77-
filters:
78-
branches:
79-
ignore: /.*/
80-
tags:
81-
only: /^ssl-log-player\/v.*/
76+
filters: { branches: { only: master }, tags: { only: /^v.*/ } }

.dockerignore

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
/.git
2-
/*.Dockerfile
3-
/.idea
4-
/.vscode
1+
*
2+
!cmd
3+
!internal
4+
!pkg
5+
!go.mod
6+
!go.sum

.editorconfig

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ root = true
77
end_of_line = lf
88
insert_final_newline = true
99
indent_style = space
10+
indent_size = 2
11+
12+
[*.proto]
1013
indent_size = 4
1114

12-
[*.go]
15+
[Makefile]
1316
indent_style = tab
14-
15-
[*.{vue,yml,yaml,json}]
16-
indent_size = 2

.github/release.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
changelog:
2+
categories:
3+
- title: 🏕 Features
4+
labels:
5+
- '*'
6+
exclude:
7+
labels:
8+
- dependencies
9+
- title: 👒 Dependencies
10+
labels:
11+
- dependencies

.github/renovate.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"extends": [
3+
"config:base",
4+
"schedule:monthly"
5+
],
6+
"labels": [
7+
"dependencies"
8+
]
9+
}

.gitignore

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,32 @@
1+
.DS_Store
2+
3+
# Editor directories and files
4+
.idea
5+
.vscode
6+
*.suo
7+
*.ntvs*
8+
*.njsproj
9+
*.sln
10+
*.sw*
11+
12+
# local env files
13+
.env.local
14+
.env.*.local
15+
16+
# Log files
17+
npm-debug.log*
18+
yarn-debug.log*
19+
yarn-error.log*
20+
21+
# app-specific ignores
22+
/*.json.stream
23+
24+
# Local installations
25+
/.local
26+
27+
# Local log files
128
*.log
229
*.log.gz
3-
.idea
30+
31+
# distribution folder
432
dist/

Makefile

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,20 @@
1-
.PHONY=all ssl-auto-recorder-docker ssl-log-player-docker
1+
.PHONY: all docker docker-ssl-auto-recorder docker-ssl-log-player test install proto
22

3-
all: ssl-auto-recorder-docker ssl-log-player-docker
3+
all: install docker
44

5-
ssl-auto-recorder-docker:
6-
docker build -f ssl-auto-recorder.Dockerfile -t ssl-auto-recorder:latest .
5+
docker: docker-ssl-auto-recorder docker-ssl-log-player
76

8-
ssl-log-player-docker:
9-
docker build -f ssl-log-player.Dockerfile -t ssl-log-player:latest .
7+
docker-ssl-auto-recorder:
8+
docker build -f ./cmd/ssl-auto-recorder/Dockerfile -t ssl-auto-recorder:latest .
9+
10+
docker-ssl-log-player:
11+
docker build -f ./cmd/ssl-log-player/Dockerfile -t ssl-log-player:latest .
12+
13+
test:
14+
go test ./...
15+
16+
install:
17+
go install -v ./...
18+
19+
proto:
20+
tools/generateProto.sh

cmd/ssl-auto-recorder/Dockerfile

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
FROM golang:1.20-alpine AS build_go
2+
WORKDIR work
3+
COPY . .
4+
RUN go install ./cmd/ssl-auto-recorder
5+
6+
# Start fresh from a smaller image
7+
FROM alpine:3
8+
COPY --from=build_go /go/bin/ssl-auto-recorder /app/ssl-auto-recorder
9+
WORKDIR /data
10+
RUN chown 1000: /data
11+
USER 1000
12+
ENTRYPOINT ["/app/ssl-auto-recorder"]
13+
CMD []

cmd/ssl-log-player/Dockerfile

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
FROM golang:1.20-alpine AS build_go
2+
WORKDIR work
3+
COPY . .
4+
RUN go install ./cmd/ssl-log-player
5+
6+
# Start fresh from a smaller image
7+
FROM alpine:3
8+
COPY --from=build_go /go/bin/ssl-log-player /app/ssl-log-player
9+
WORKDIR /data
10+
RUN chown 1000: /data
11+
USER 1000
12+
ENTRYPOINT ["/app/ssl-log-player"]
13+
CMD []

generateProto.sh

Lines changed: 0 additions & 12 deletions
This file was deleted.

0 commit comments

Comments
 (0)