feat(ci): add static binary builds
parent
fde56af414
commit
6246108f33
|
@ -0,0 +1,42 @@
|
||||||
|
matrix:
|
||||||
|
PLATFORM:
|
||||||
|
- 'linux/amd64'
|
||||||
|
|
||||||
|
platform: ${PLATFORM}
|
||||||
|
|
||||||
|
when:
|
||||||
|
branch: [main, dev]
|
||||||
|
event: [push, tag]
|
||||||
|
|
||||||
|
steps:
|
||||||
|
build:
|
||||||
|
image: 'git.rustybever.be/chewing_bever/rieter-builder:1.79-alpine3.19'
|
||||||
|
commands:
|
||||||
|
- cargo build --verbose --release
|
||||||
|
- '[ "$(readelf -d target/release/rieterd | grep NEEDED | wc -l)" = 0 ]'
|
||||||
|
|
||||||
|
publish-dev:
|
||||||
|
image: 'git.rustybever.be/chewing_bever/rieter-builder:1.79-alpine3.19'
|
||||||
|
commands:
|
||||||
|
- apk add --no-cache minio-client
|
||||||
|
- mcli alias set rb 'https://s3.rustybever.be' "$MINIO_ACCESS_KEY" "$MINIO_SECRET_KEY"
|
||||||
|
- mcli cp target/release/rieterd "rb/rieter/commits/$CI_COMMIT_SHA/rieterd-$(echo '${PLATFORM}' | sed 's:/:-:g')"
|
||||||
|
secrets:
|
||||||
|
- minio_access_key
|
||||||
|
- minio_secret_key
|
||||||
|
when:
|
||||||
|
branch: dev
|
||||||
|
event: push
|
||||||
|
|
||||||
|
publish-rel:
|
||||||
|
image: 'curlimages/curl'
|
||||||
|
commands:
|
||||||
|
- >
|
||||||
|
curl -s --fail
|
||||||
|
--user "Chewing_Bever:$GITEA_PASSWORD"
|
||||||
|
--upload-file target/release/rieterd
|
||||||
|
https://git.rustybever.be/api/packages/Chewing_Bever/generic/rieter/"${CI_COMMIT_TAG}"/rieterd-"$(echo '${PLATFORM}' | sed 's:/:-:g')"
|
||||||
|
secrets:
|
||||||
|
- gitea_password
|
||||||
|
when:
|
||||||
|
event: tag
|
|
@ -2,7 +2,7 @@ platform: 'linux/amd64'
|
||||||
|
|
||||||
when:
|
when:
|
||||||
branch:
|
branch:
|
||||||
exclude: [main]
|
exclude: [dev, main]
|
||||||
event: push
|
event: push
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
platform: 'linux/amd64'
|
platform: 'linux/amd64'
|
||||||
|
|
||||||
when:
|
when:
|
||||||
branch: dev
|
branch: [main, dev]
|
||||||
event: push
|
event: [push, tag]
|
||||||
|
|
||||||
depends_on:
|
depends_on:
|
||||||
- build
|
- build-rel
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
dev:
|
dev:
|
||||||
|
@ -19,4 +19,9 @@ steps:
|
||||||
tags:
|
tags:
|
||||||
- 'dev'
|
- 'dev'
|
||||||
platforms: [ 'linux/amd64' ]
|
platforms: [ 'linux/amd64' ]
|
||||||
|
build_args_from_env:
|
||||||
|
- 'CI_COMMIT_SHA'
|
||||||
mtu: 1300
|
mtu: 1300
|
||||||
|
when:
|
||||||
|
branch: dev
|
||||||
|
event: push
|
||||||
|
|
37
Dockerfile
37
Dockerfile
|
@ -1,16 +1,16 @@
|
||||||
FROM rust:1.70-alpine3.18 AS builder
|
FROM git.rustybever.be/chewing_bever/rieter-builder:1.79-alpine3.19 AS builder
|
||||||
|
|
||||||
|
ARG TARGETPLATFORM
|
||||||
|
ARG CI_COMMIT_SHA
|
||||||
ARG DI_VER=1.2.5
|
ARG DI_VER=1.2.5
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
RUN apk add --no-cache \
|
RUN apk add --no-cache \
|
||||||
build-base \
|
|
||||||
curl \
|
curl \
|
||||||
make \
|
make \
|
||||||
unzip \
|
unzip \
|
||||||
pkgconf \
|
pkgconf
|
||||||
libarchive libarchive-dev
|
|
||||||
|
|
||||||
# Build dumb-init
|
# Build dumb-init
|
||||||
RUN curl -Lo - "https://github.com/Yelp/dumb-init/archive/refs/tags/v${DI_VER}.tar.gz" | tar -xzf - && \
|
RUN curl -Lo - "https://github.com/Yelp/dumb-init/archive/refs/tags/v${DI_VER}.tar.gz" | tar -xzf - && \
|
||||||
|
@ -21,33 +21,16 @@ RUN curl -Lo - "https://github.com/Yelp/dumb-init/archive/refs/tags/v${DI_VER}.t
|
||||||
|
|
||||||
COPY . .
|
COPY . .
|
||||||
|
|
||||||
# ENV LIBARCHIVE_STATIC=1 \
|
RUN curl \
|
||||||
# LIBARCHIVE_LIB_DIR=/usr/lib \
|
--fail \
|
||||||
# LIBARCHIVE_INCLUDE_DIR=/usr/include \
|
-o rieterd \
|
||||||
# LIBARCHIVE_LDFLAGS='-lssl -lcrypto -L/lib -lz -lbz2 -llzma -lexpat -lzstd -llz4'
|
"https://s3.rustybever.be/rieter/commits/${CI_COMMIT_SHA}/rieterd-$(echo "${TARGETPLATFORM}" | sed 's:/:-:g')"
|
||||||
# LIBARCHIVE_LDFLAGS='-L/usr/lib -lz -lbz2 -llzma -lexpat -lzstd -llz4 -lsqlite3'
|
|
||||||
|
|
||||||
# https://users.rust-lang.org/t/sigsegv-with-program-linked-against-openssl-in-an-alpine-container/52172
|
|
||||||
ENV RUSTFLAGS='-C target-feature=-crt-static'
|
|
||||||
|
|
||||||
RUN cargo build --release && \
|
|
||||||
du -h target/release/rieterd && \
|
|
||||||
readelf -d target/release/rieterd && \
|
|
||||||
chmod +x target/release/rieterd
|
|
||||||
|
|
||||||
|
|
||||||
FROM alpine:3.18
|
FROM alpine:3.19
|
||||||
|
|
||||||
RUN apk add --no-cache \
|
|
||||||
libgcc \
|
|
||||||
libarchive \
|
|
||||||
openssl
|
|
||||||
|
|
||||||
COPY --from=builder /app/dumb-init /bin/dumb-init
|
COPY --from=builder /app/dumb-init /bin/dumb-init
|
||||||
COPY --from=builder /app/target/release/rieterd /bin/rieterd
|
COPY --from=builder /app/rieterd /bin/rieterd
|
||||||
|
|
||||||
ENV RIETER_PKG_DIR=/data/pkgs \
|
|
||||||
RIETER_DATA_DIR=/data
|
|
||||||
|
|
||||||
WORKDIR /data
|
WORKDIR /data
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue