Build & Release / Run Tests (push) Has been cancelled
Traceability Validation / Check Requirement Traces (push) Has been cancelled
Build & Release / Build Linux (push) Has been cancelled
Build & Release / Build Android (push) Has been cancelled
Publish Documentation / Build & publish docs to gitea-pages (push) Has been cancelled
🏗️ Build and Test JellyTau / Android Compile Check (push) Has been cancelled
Build & Release / Create Release (push) Has been cancelled
🏗️ Build and Test JellyTau / Run Tests (push) Has been cancelled
Adds Docker-based packaging for Linux desktop (deb/rpm), Arch
(.pkg.tar.zst via makepkg), and Windows. Windows cross-compiles from
Linux via the official Tauri path — the x86_64-pc-windows-msvc target
driven by cargo-xwin — and produces an NSIS installer (nsis via
tauri.conf.json targets, since the CLI rejects --bundles nsis on a Linux
host). Verified end to end: builds jellytau.exe + jellytau_x64-setup.exe.
Unifies everything on one registry builder image (Dockerfile.builder):
Android SDK/NDK, rpm/file, clang(+clang-cl)/lld/llvm/nsis, cargo-xwin and
the msvc target. Packaging tools sit in a trailing layer so tool changes
rebuild in ~1min instead of ~15. Desktop stages are thin FROM
${BUILDER_IMAGE} layers; Arch uses a separate archlinux image.
CLAUDE.md: CI must install no system toolchains — everything lives in the
image. Bumps version 0.0.18 -> 0.1.0 (Windows support + webview audio +
equalizer).
TRACES: UR-003, UR-005 | DR-004
38 lines
1.2 KiB
Docker
38 lines
1.2 KiB
Docker
# JellyTau Arch Linux package builder.
|
|
#
|
|
# Tauri has no pacman bundle target, so we build a real .pkg.tar.zst with makepkg
|
|
# from packaging/arch/PKGBUILD. makepkg refuses to run as root, so we create a
|
|
# non-root `builder` user with passwordless sudo (for `makepkg -s` pacman calls).
|
|
#
|
|
# docker build -f Dockerfile.arch -t jellytau-arch .
|
|
# docker run --rm -v "$PWD/dist:/out" jellytau-arch
|
|
FROM archlinux:latest
|
|
|
|
RUN pacman -Syu --noconfirm \
|
|
base-devel git sudo \
|
|
rust cargo nodejs \
|
|
webkit2gtk-4.1 mpv gtk3 libayatana-appindicator \
|
|
libsoup3 pkgconf openssl \
|
|
&& pacman -Scc --noconfirm
|
|
|
|
# Bun is not in the official repos; install the upstream binary.
|
|
RUN curl -fsSL https://bun.sh/install | bash && \
|
|
ln -s /root/.bun/bin/bun /usr/local/bin/bun
|
|
|
|
# Non-root build user with passwordless sudo for makepkg's dependency step.
|
|
RUN useradd -m builder && \
|
|
echo 'builder ALL=(ALL) NOPASSWD: ALL' > /etc/sudoers.d/builder && \
|
|
ln -sf /root/.bun/bin/bun /usr/local/bin/bun
|
|
|
|
WORKDIR /app
|
|
COPY . .
|
|
RUN chown -R builder:builder /app
|
|
|
|
USER builder
|
|
ENV OUTPUT_DIR=/out
|
|
RUN mkdir -p /out
|
|
VOLUME ["/out"]
|
|
|
|
# Default: build the package. Output lands in /out (mount it to collect the pkg).
|
|
CMD ["bash", "-c", "OUTPUT_DIR=/out scripts/build-arch.sh"]
|