Skip to content

Commit 6b4cebc

Browse files
committed
chore(test): refactor test and build script
1 parent 76bfcaa commit 6b4cebc

15 files changed

Lines changed: 231 additions & 42 deletions

.github/workflows/ci.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
jobs:
10+
build-and-test:
11+
runs-on: ubuntu-latest
12+
env:
13+
HARBOR_ROBOT_USERNAME: ${{ secrets.HARBOR_ROBOT_USERNAME }}
14+
HARBOR_ROBOT_PASSWORD: ${{ secrets.HARBOR_ROBOT_PASSWORD }}
15+
steps:
16+
- uses: actions/checkout@v4
17+
18+
- name: Set up Go
19+
uses: actions/setup-go@v5
20+
with:
21+
go-version: "1.24.6"
22+
23+
- name: Make build script executable
24+
run: chmod +x ./bin/build.sh
25+
26+
- name: Build and push Docker image
27+
run: |
28+
./bin/build.sh

Dockerfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
FROM gcr.io/distroless/static-debian12
22
ARG BIN_NAME
33
ADD ./bin/dist/${BIN_NAME} /
4+
COPY config/cert/server.crt ./config/cert/server.crt
5+
COPY config/cert/server.key ./config/cert/server.key
46
COPY ./config.yaml /
57
COPY ./config.test.yaml /
68

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ pre-commit:
4747
@echo "[SUCCESS] Pre-commit checks passed!"
4848
# remove docker images for the service cause latest is not updating automatically. force to always pulling
4949
@echo "Removing services image"
50-
@if docker images 10.1.20.130:5001/dropping/file-service:test | awk 'NR>1 {print $1}' | grep -q .; then docker rmi 10.1.20.130:5001/dropping/file-service:test; fi
50+
@if docker images docker-registry.anandadf.my.id/micros-template/file_service:test | awk 'NR>1 {print $1}' | grep -q .; then docker rmi docker-registry.anandadf.my.id/micros-template/file_service:test; fi
5151

5252
pre-commit-preparation:
5353
@cp ./bin/pre-commit ./.git/hooks/pre-commit

bin/build-precommit-test.sh

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
mkdir -p ./bin/dist
44

55
service_name="file_service"
6+
prefix_image="docker-registry.anandadf.my.id/micros-template/"
67

78
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "-s -w" -o "./bin/dist/$service_name" ./cmd
89
wait
@@ -16,7 +17,7 @@ upx --best --lzma ./bin/dist/$service_name
1617
wait
1718

1819

19-
echo "Building Docker image for 10.1.20.130:5001/dropping/file-service:test" >/dev/stderr
20-
docker build -t "10.1.20.130:5001/dropping/file-service:test" --build-arg BIN_NAME=$service_name -f Dockerfile .
20+
echo "Building Docker image for $prefix_image$service_name:test" >/dev/stderr
21+
docker build -t "$prefix_image$service_name:test" --build-arg BIN_NAME=$service_name -f Dockerfile .
2122

2223
rm -rf ./bin/dist

bin/build-test-image.sh

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,12 @@
33
mkdir -p ./bin/dist
44

55
service_name="file_service"
6+
prefix_image="docker-registry.anandadf.my.id/micros-template/"
67

78
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o "./bin/dist/$service_name" ./cmd
89
wait
910

10-
echo "Building Docker image for $CI_REGISTRY_IMAGE:test" >/dev/stderr
11-
docker build -t "$CI_REGISTRY_IMAGE:test" --build-arg BIN_NAME=$service_name -f Dockerfile .
11+
echo "Building Docker image for $prefix_image$service_name:test" >/dev/stderr
12+
docker build -t "$prefix_image$service_name:test" --build-arg BIN_NAME=$service_name -f Dockerfile .
1213

1314
rm -rf ./bin/dist

bin/build.sh

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
#!/bin/sh
22

3+
set -e
34
mkdir -p ./bin/dist
45

56
service_name="file_service"
7+
full_image_name="docker-registry.anandadf.my.id/micros-template/$service_name"
68

7-
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o "./bin/dist/$service_name" ./cmd
9+
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "-s -w" -o "./bin/dist/$service_name" ./cmd
810
wait
911

1012
if ! command -v upx >/dev/null 2>&1; then
@@ -19,18 +21,18 @@ VERSION=$(cat VERSION)
1921
echo "Building Docker image for $service_name:$VERSION" >/dev/stderr
2022
docker build -t "$service_name:$VERSION" --build-arg BIN_NAME=$service_name -f Dockerfile .
2123

22-
registry_image="$CI_REGISTRY_IMAGE:$VERSION"
23-
echo "$CI_JOB_TOKEN" | docker login -u gitlab-ci-token --password-stdin "$CI_REGISTRY"
24+
registry_image="$full_image_name:$VERSION"
25+
echo "${HARBOR_ROBOT_PASSWORD}" | docker login https://docker-registry.anandadf.my.id -u "${HARBOR_ROBOT_USERNAME}" --password-stdin
2426

2527
echo "Tagging image as $registry_image" >/dev/stderr
2628
docker tag "$service_name:$VERSION" "$registry_image"
2729
docker push "$registry_image"
2830

29-
echo "Tagging image as $registry_image" >/dev/stderr
30-
docker tag "$service_name:$VERSION" "$CI_REGISTRY_IMAGE:latest"
31-
docker push "$CI_REGISTRY_IMAGE:latest"
31+
echo "Tagging image as $full_image_name:latest" >/dev/stderr
32+
docker tag "$service_name:$VERSION" "$full_image_name:latest"
33+
docker push "$full_image_name:latest"
3234

3335
echo "Removing local image and tagged image" >/dev/stderr
3436
docker rmi "$service_name:$VERSION"
3537
docker rmi "$registry_image"
36-
docker rmi "$CI_REGISTRY_IMAGE:latest"
38+
docker rmi "$full_image_name:latest"

bin/clean-test-image.sh

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
#!/bin/sh
22

3+
prefix_image="docker-registry.anandadf.my.id/micros-template/"
4+
service_name="file_service"
5+
36
echo "Removing test in local" >/dev/stderr
4-
docker rmi "$CI_REGISTRY_IMAGE:test"
7+
docker rmi "$prefix_image$service_name:test"

config.test.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@ server:
2020
allow_credential: true
2121

2222
container:
23-
nats_version: "2.11.6"
24-
gateway_version: "1.28.0-alpine-slim"
25-
file_service_version: "test"
26-
minio_version: "RELEASE.2025-05-24T17-08-30Z-cpuv1"
23+
nats_image: "nats:2.11.6"
24+
gateway_image: "nginx:1.28.0-alpine-slim"
25+
file_service_image: "docker-registry.anandadf.my.id/micros-template/file_service:test"
26+
minio_image: "minio/minio:RELEASE.2025-05-24T17-08-30Z-cpuv1"
2727

2828
script:
2929
nginx: "../mocks/gateway/nginx.conf"

config/cert/server.crt

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIDjTCCAnWgAwIBAgIUA5bU0htIMU2+EDwQ/A4SHnI81x0wDQYJKoZIhvcNAQEL
3+
BQAwVjELMAkGA1UEBhMCSUQxEjAQBgNVBAgMCVdlc3QgSmF2YTEQMA4GA1UEBwwH
4+
QmFuZHVuZzEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMB4XDTI1
5+
MDgxOTAxMTUyN1oXDTM1MDgxNzAxMTUyN1owVjELMAkGA1UEBhMCSUQxEjAQBgNV
6+
BAgMCVdlc3QgSmF2YTEQMA4GA1UEBwwHQmFuZHVuZzEhMB8GA1UECgwYSW50ZXJu
7+
ZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
8+
AQEAyf6JzIxQx0HqZEbWbGlzdtY1p6yT73fEbrcOqbGj621fe6TU8PBICnqtUvAU
9+
QSt/gg7kITQP9Ont3ibMZ3F2cvC+PQ+rTnisZWg/UevpGxj1iTqjarbt42htWpln
10+
13POFJ+UHplHbCIH7W39mvou/z5u/4g3gs5LVk9pfYvXegdMKGR6Om2tVP++r80f
11+
AIZTXBIi1KNSjTCcLJdKMKbD/N9CJs5vVUl0zp2RYlN29TSTqHBmc2DChAlw97ct
12+
vLlpc2QnbPj9JWunhfFswIuriFUWEMdGmzARbXSMG5yZthJ89VmU+l8SlHqmlAQq
13+
FYubVRashxM8E9inI7RFho0VqwIDAQABo1MwUTAdBgNVHQ4EFgQUioStMaRTAG59
14+
Ulla22N4MF47KqYwHwYDVR0jBBgwFoAUioStMaRTAG59Ulla22N4MF47KqYwDwYD
15+
VR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAeeI8ZCOZbqYZfC4Rmonl
16+
oj82WynYO3mry0K91YmP8rGTJzhpkb7FwL/NM9wFFl9XsxWzuodOGADLOZi1Gbp2
17+
z9lboyzt5dBJF37tEzewOrxavsBJaRiiH+oR3nRzs3p0XpElPkTzb5jnm55HdCbb
18+
SvvG6R0MxJ9CdXVJSJSuRcPdv07CdNPKY3t0QVxlUCA9QD3o6wS8hazXCizMwu/o
19+
G1xxWYGmy0O7dj4mGGDYD78a/aUYLRQ32WTNpUJJsU4f+hG19i9UbMgXGzwabr+/
20+
uPazl4i6SeahW4L1gzZdNTo1Q3oiDQKuSRk9yu9LCLz2pWQ4hx+/YzNmd/BbH6Kt
21+
Hw==
22+
-----END CERTIFICATE-----

config/cert/server.key

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
-----BEGIN PRIVATE KEY-----
2+
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDJ/onMjFDHQepk
3+
RtZsaXN21jWnrJPvd8Rutw6psaPrbV97pNTw8EgKeq1S8BRBK3+CDuQhNA/06e3e
4+
JsxncXZy8L49D6tOeKxlaD9R6+kbGPWJOqNqtu3jaG1amWfXc84Un5QemUdsIgft
5+
bf2a+i7/Pm7/iDeCzktWT2l9i9d6B0woZHo6ba1U/76vzR8AhlNcEiLUo1KNMJws
6+
l0owpsP830Imzm9VSXTOnZFiU3b1NJOocGZzYMKECXD3ty28uWlzZCds+P0la6eF
7+
8WzAi6uIVRYQx0abMBFtdIwbnJm2Enz1WZT6XxKUeqaUBCoVi5tVFqyHEzwT2Kcj
8+
tEWGjRWrAgMBAAECggEAMz381CS2a04H+adUxwzbS0bdNqubndC6xsFumVLkvBkz
9+
c0jl8jdqdyoW5SbdZIj14FcJvXiZIa7kdopOKWHJxC/ZeuEKOq53QYR4J76alJK4
10+
2zbCdRRx9dIsh6LKCoiou2eeKkMFMOPTMgLIprOYD41VmEKEnozZ5MvhfYVnxN84
11+
mPLvDI6u3f6Q3Xi+ty8R2VHEg26OXhlADV7WthlokpmJCcIKYr19iGmv4YIkMScj
12+
TEmMv/MEkFzV/H6rYqnQsd61fPPXnF1ECsiiTOZJh9yCVcbVMM6xe6gkBttaG87P
13+
DC6mtc5149dWWJiIhaj5you+HnEXH+4p79Y8RijD0QKBgQDr8a2tPUWxT/SeSzh5
14+
iEdQGVEgGSOc+0v9pz/Bz98mq6u7Trutl07AhKkBT/LToWN4eCT61Q89C67yi6RO
15+
Hn8F7WopFRM2ST2FzmqPwKPOwfYpNuusKlXyIuDfjtPPSLjbnZ6AKCpaXv7cWsju
16+
TnaVryBoF+cL9d78DXHUwAvIGwKBgQDbKhZSjTOC06XJWtzgKwk4HcAsjt/RtRlN
17+
IABe81oOC8sAtQ6S82uLZqF6aVRwjjlj4E/Wy+R64MzFzWb8syibMSxgyca9t9m2
18+
o2IrIPTMPijAfCCeJkvqu4EOEsuX/QnDS6XhQPYbruqpHHJVY6otBU5bX98Wx4DP
19+
qjti8xjhsQKBgQCjDENR6XrE2pUX4rFnQubNEoG+ZcD3la1g33guziDOj2nAqdsG
20+
Tf6NCd/k2UPcPbYIpTYg5KWAMRe34worNeXfyb5IH5lENX6/ffKj3qMUmXMr7hkU
21+
w7ja+IFf3ErA/udIVPcYZylFhEopKs+Z5z0JmZkSdhojaMisc/oK5J//qwKBgQDT
22+
ymQv+kvhDW6Umr3/0xbhp75iUN9x5DRDF73EBB7um+7dDBq9X4Z5+//oL4luC8Li
23+
BY6h3/83z62TKN9xLCD9eBOOpO7tv5EgsdrYGsz14su21z0eF5wdhn08gGVGxzx8
24+
AcqXVxN9xRb3vYmvgtSdFReXrZoEhV6xT6x7/rf4wQKBgF6r3FsKi5Cnr+qzqftO
25+
4KNUiPQ0+zNysZWoYgdjECv1J9gfxX4Cg+T+IQsm2T9+kL6U+c1sYjKPA9WvXUdg
26+
/+a5/mJxtSPbtiUVWJcSU/baEdn/kA+VaDRbRLjNfuESoLw9ULQIkZ1WJFh95p+1
27+
qfYm9plpSEqPdR/QMyD/MKY0
28+
-----END PRIVATE KEY-----

0 commit comments

Comments
 (0)