File tree Expand file tree Collapse file tree 6 files changed +75
-7
lines changed Expand file tree Collapse file tree 6 files changed +75
-7
lines changed Original file line number Diff line number Diff line change @@ -22,25 +22,53 @@ stages:
22
22
- apk add bash curl tar
23
23
- source scripts/helpers.sh
24
24
- docker_login
25
- - ' image=$(echo $CI_JOB_NAME | cut -d : -f 2)'
25
+ - ' image=$(echo " $CI_JOB_NAME" | cut -d : -f 2)'
26
26
- ' [ -z "$NEED_PROJECT_DOWNLOAD" ] || download_project $image'
27
+
28
+ .single-image-build-base :
29
+ extends :
30
+ - .image-build-base
31
+ script :
32
+ - !reference [.image-build-base, script]
27
33
- build_image $image $CI_PIPELINE_ID
28
34
- push_image $image $CI_PIPELINE_ID
29
35
30
- container:mise :
36
+ .variant-image-build-base :
31
37
extends :
32
38
- .image-build-base
39
+ script :
40
+ - !reference [.image-build-base, script]
41
+ - build_image $image $CI_PIPELINE_ID "--build-arg VARIANT=$VARIANT"
42
+ - image_tag=$(get_image_tag $CI_PIPELINE_ID $VARIANT)
43
+ - retag_image $image $CI_PIPELINE_ID $image_tag
44
+ - push_image $image $image_tag
45
+
46
+ container:mise :
47
+ extends :
48
+ - .single-image-build-base
33
49
34
50
container:rust :
35
51
extends :
36
- - .image-build-base
52
+ - .single- image-build-base
37
53
needs :
38
54
- container:mise
39
55
40
56
container:aquila :
41
57
extends :
42
- - .image-build-base
58
+ - .single-image-build-base
59
+ needs :
60
+ - container:rust
61
+ variables :
62
+ NEED_PROJECT_DOWNLOAD : ' true'
63
+
64
+ container:draco :
65
+ extends :
66
+ - .variant-image-build-base
43
67
needs :
44
68
- container:rust
45
69
variables :
46
70
NEED_PROJECT_DOWNLOAD : ' true'
71
+ parallel :
72
+ matrix :
73
+ - VARIANT :
74
+ - rest
Original file line number Diff line number Diff line change 1
1
ARG RETICULUM_IMAGE_TAG=local
2
2
3
- FROM ghcr.io/code0-tech/reticulum/ci-builds/rust:$RETICULUM_IMAGE_TAG as builder
3
+ FROM ghcr.io/code0-tech/reticulum/ci-builds/rust:$RETICULUM_IMAGE_TAG AS builder
4
4
5
5
WORKDIR /aquila
6
6
COPY projects/aquila .
Original file line number Diff line number Diff line change
1
+ ARG RETICULUM_IMAGE_TAG=local
2
+
3
+ FROM ghcr.io/code0-tech/reticulum/ci-builds/rust:$RETICULUM_IMAGE_TAG AS builder
4
+ ARG VARIANT
5
+
6
+ WORKDIR /draco
7
+ COPY projects/draco .
8
+ WORKDIR /draco/adapters/$VARIANT
9
+ RUN cargo build --release
10
+
11
+ FROM alpine:3.21
12
+ ARG VARIANT
13
+
14
+ RUN apk --update add libc6-compat
15
+ COPY --from=builder /draco/target/release/$VARIANT /draco
16
+
17
+ CMD ["/draco" ]
Original file line number Diff line number Diff line change 4
4
5
5
source scripts/helpers.sh
6
6
7
- rm -rf projects
8
- mkdir projects
7
+ rm -rf projects/ *
8
+ mkdir -p projects
9
9
10
10
download_project aquila
11
+ download_project draco
11
12
download_project sagittarius
Original file line number Diff line number Diff line change @@ -16,6 +16,7 @@ function docker_login() {
16
16
function build_image() {
17
17
image=$1
18
18
reticulum_tag=$2
19
+ build_args=$3
19
20
20
21
echo " Building image for $image "
21
22
@@ -28,9 +29,29 @@ function build_image() {
28
29
-t " ghcr.io/code0-tech/reticulum/ci-builds/$image :$reticulum_tag " \
29
30
-f " container/$image /Dockerfile" \
30
31
--build-arg RETICULUM_IMAGE_TAG=$reticulum_tag \
32
+ $build_args \
31
33
.
32
34
}
33
35
34
36
function push_image() {
37
+ image=$1
38
+ reticulum_tag=$2
35
39
docker push " ghcr.io/code0-tech/reticulum/ci-builds/$image :$reticulum_tag "
36
40
}
41
+
42
+ function retag_image() {
43
+ image=$1
44
+ reticulum_tag=$2
45
+ variant_tag=$3
46
+ docker image tag " ghcr.io/code0-tech/reticulum/ci-builds/$image :$reticulum_tag " " ghcr.io/code0-tech/reticulum/ci-builds/$image :$variant_tag "
47
+ }
48
+
49
+ function get_image_tag() {
50
+ reticulum_tag=$1
51
+ reticulum_variant=$2
52
+ if [ -z " $reticulum_variant " ]; then
53
+ echo $reticulum_tag
54
+ else
55
+ echo $reticulum_tag -$reticulum_variant
56
+ fi
57
+ }
Original file line number Diff line number Diff line change
1
+ 8199374e88f72157b715ec717c8542e95db76b6b
You can’t perform that action at this time.
0 commit comments