Skip to content

Commit c44d165

Browse files
authored
Merge pull request #9 from code0-tech/7-setup-draco-build
Setup draco build
2 parents d747cf8 + 46d1c79 commit c44d165

File tree

6 files changed

+75
-7
lines changed

6 files changed

+75
-7
lines changed

.gitlab-ci.yml

Lines changed: 32 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,25 +22,53 @@ stages:
2222
- apk add bash curl tar
2323
- source scripts/helpers.sh
2424
- docker_login
25-
- 'image=$(echo $CI_JOB_NAME | cut -d : -f 2)'
25+
- 'image=$(echo "$CI_JOB_NAME" | cut -d : -f 2)'
2626
- '[ -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]
2733
- build_image $image $CI_PIPELINE_ID
2834
- push_image $image $CI_PIPELINE_ID
2935

30-
container:mise:
36+
.variant-image-build-base:
3137
extends:
3238
- .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
3349

3450
container:rust:
3551
extends:
36-
- .image-build-base
52+
- .single-image-build-base
3753
needs:
3854
- container:mise
3955

4056
container:aquila:
4157
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
4367
needs:
4468
- container:rust
4569
variables:
4670
NEED_PROJECT_DOWNLOAD: 'true'
71+
parallel:
72+
matrix:
73+
- VARIANT:
74+
- rest

container/aquila/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
ARG RETICULUM_IMAGE_TAG=local
22

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
44

55
WORKDIR /aquila
66
COPY projects/aquila .

container/draco/Dockerfile

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
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"]

scripts/download_projects

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ set -e
44

55
source scripts/helpers.sh
66

7-
rm -rf projects
8-
mkdir projects
7+
rm -rf projects/*
8+
mkdir -p projects
99

1010
download_project aquila
11+
download_project draco
1112
download_project sagittarius

scripts/helpers.sh

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ function docker_login() {
1616
function build_image() {
1717
image=$1
1818
reticulum_tag=$2
19+
build_args=$3
1920

2021
echo "Building image for $image"
2122

@@ -28,9 +29,29 @@ function build_image() {
2829
-t "ghcr.io/code0-tech/reticulum/ci-builds/$image:$reticulum_tag" \
2930
-f "container/$image/Dockerfile" \
3031
--build-arg RETICULUM_IMAGE_TAG=$reticulum_tag \
32+
$build_args \
3133
.
3234
}
3335

3436
function push_image() {
37+
image=$1
38+
reticulum_tag=$2
3539
docker push "ghcr.io/code0-tech/reticulum/ci-builds/$image:$reticulum_tag"
3640
}
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+
}

versions/draco

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
8199374e88f72157b715ec717c8542e95db76b6b

0 commit comments

Comments
 (0)