ci: build musl only for arm64 and reuse toolchain cache [CI]
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline failed

This commit is contained in:
justme committed 2026-10-21 12:41:58 +08:00
1 parent 490b008a57
commit a6f9759238
22 files changed
+62 -73

No files matched your search

+3 -3
View File
@@ -1,4 +1,5 @@
FROM mcr.microsoft.com/dotnet/runtime-deps:10.0-alpine
ARG RUNTIME_BASE=mcr.microsoft.com/dotnet/runtime-deps:10.0
FROM ${RUNTIME_BASE}
ARG APP_VERSION=unknown
LABEL org.opencontainers.image.title="MoShiro Agent" \
@@ -6,8 +7,7 @@ LABEL org.opencontainers.image.title="MoShiro Agent" \
org.opencontainers.image.licenses="Apache-2.0" \
org.opencontainers.image.version="$APP_VERSION"
COPY --chown=1654:1654 app/moshiro-agent /usr/local/bin/moshiro-agent
COPY --chown=1654:1654 app/fleet-enroll /usr/local/bin/fleet-enroll
COPY --chown=1654:1654 app/ /usr/local/bin/
COPY --chown=1654:1654 config/ /etc/moshiro/
COPY --chown=1654:1654 --chmod=0755 entrypoint.sh /usr/local/bin/moshiro-entrypoint
@@ -4,7 +4,7 @@ FROM --platform=linux/amd64 ${NATIVEAOT_BUILDER_IMAGE} AS toolchain
FROM toolchain AS restore
WORKDIR /src/backend
COPY restore/backend/ ./
ARG NODE_RID=linux-musl-x64
ARG NODE_RID=linux-musl-arm64
ARG STATIC_MSQUIC=true
ENV NUGET_PACKAGES=/root/.nuget/packages
# Layer hits skip restore. A dependency change still reuses downloaded packages.
@@ -28,7 +28,6 @@ RUN printf '%s\n' \
" <PackageReference Include=\"Vezel.Zig.Toolsets.linux-x64\" Version=\"$ZIG_TOOLSET_VERSION\" GeneratePathProperty=\"true\" />" \
' </ItemGroup>' \
'</Project>' > Warmup.csproj \
&& dotnet restore Warmup.csproj -p:RuntimeFrameworkVersion=10.0.12 -p:PublishAot=true -p:UseAotAnywhere=true -r linux-musl-x64 \
&& dotnet restore Warmup.csproj -p:RuntimeFrameworkVersion=10.0.12 -p:PublishAot=true -p:UseAotAnywhere=true -r linux-musl-arm64 \
&& dotnet restore Warmup.csproj -p:RuntimeFrameworkVersion=10.0.12 -p:PublishAot=true -p:UseAotAnywhere=true -r linux-x64 \
&& dotnet restore Warmup.csproj -p:RuntimeFrameworkVersion=10.0.12 -p:PublishAot=true -p:UseAotAnywhere=true -r linux-arm64 \
+2 -2
View File
@@ -84,7 +84,7 @@ load_config() {
. "$CONF"
case "$CHANNEL" in release|dev) ;; *) die "invalid channel" ;; esac
case "$POLICY" in auto|manual) ;; *) die "invalid policy" ;; esac
case "$RID" in linux-musl-arm64|linux-musl-x64) ;; *) die "unsupported architecture" ;; esac
case "$RID" in linux-musl-arm64) ;; *) die "unsupported architecture" ;; esac
case "$FEED" in https://*) ;; *) die "feed must use HTTPS" ;; esac
case "$FEED" in *[!A-Za-z0-9:/._-]*) die "invalid feed URL" ;; esac
case "$INTERVAL" in ''|*[!0-9]*) die "invalid interval" ;; esac
@@ -270,7 +270,7 @@ install() {
load_config
restoring=true
fi
case "$(uname -m)" in aarch64|arm64) detected_rid=linux-musl-arm64 ;; x86_64) detected_rid=linux-musl-x64 ;; *) die "only ARM64 and x86_64 are supported" ;; esac
case "$(uname -m)" in aarch64|arm64) detected_rid=linux-musl-arm64 ;; *) die "only ARM64 is supported" ;; esac
if [ "$restoring" = true ]; then
[ "$RID" = "$detected_rid" ] || die "saved updater configuration belongs to a different architecture"
fi