VERSION 0.7 appimage: FROM --platform=linux/amd64 +base-rust RUN apt-get update && \ apt-get -y install wget pipx binutils coreutils desktop-file-utils fakeroot fuse libgdk-pixbuf2.0-dev patchelf python3-pip python3-setuptools squashfs-tools strace util-linux zsync && \ pipx ensurepath && \ pipx install appimage-builder COPY +upend-cli/bin AppDir/usr/bin/upend COPY --dir +webui/dist AppDir/usr/share/upend/webui COPY assets/upend.png AppDir/usr/share/icons/upend.png COPY build/AppImageBuilder.yml . RUN sed -e "s/latest/$(./AppDir/usr/bin/upend --version | cut -d ' ' -f 2)/" -i AppImageBuilder.yml RUN pipx run appimage-builder SAVE ARTIFACT UpEnd* AS LOCAL dist/ docker: FROM debian:bookworm RUN apt-get update && \ apt-get -y install libssl3 ffmpeg wget && \ wget https://github.com/bbc/audiowaveform/releases/download/1.8.1/audiowaveform_1.8.1-1-12_amd64.deb && \ apt -y install ./audiowaveform_1.8.1-1-12_amd64.deb && \ rm -v audiowaveform_1.8.1-1-12_amd64.deb && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* COPY +upend-cli/bin /usr/bin/upend COPY --dir +webui/dist /usr/share/upend/webui ENTRYPOINT ["/usr/bin/upend"] CMD ["serve", "/vault", "--bind", "0.0.0.0:8093"] EXPOSE 8093 ENV UPEND_NO_DESKTOP=true ARG tag=trunk SAVE IMAGE --push upend/upend:$tag upend-cli: FROM +base-rust RUN cargo fetch RUN cargo build --release SAVE ARTIFACT target/release/upend-cli bin webui: FROM +base-node COPY +jslib/jslib tools/upend_js COPY +wasmlib/pkg tools/upend_wasm/pkg WORKDIR webui RUN pnpm install --frozen-lockfile RUN pnpm build SAVE ARTIFACT dist wasmlib: FROM --platform=linux/amd64 +base-rust RUN cargo install wasm-pack wasm-bindgen-cli && rustup target add wasm32-unknown-unknown WORKDIR tools/upend_wasm RUN cargo fetch RUN wasm-pack build --target web SAVE ARTIFACT pkg jslib: FROM +base-node COPY +wasmlib/pkg /upend/tools/upend_wasm/pkg WORKDIR tools/upend_js RUN pnpm install --frozen-lockfile RUN pnpm build SAVE ARTIFACT . jslib webext: FROM +base-node WORKDIR webext RUN pnpm install --frozen-lockfile RUN pnpm build lint: WAIT BUILD +lint-backend BUILD +lint-frontend BUILD +lint-jslib END lint-backend: FROM +base-rust RUN rustup component add clippy RUN cargo fetch RUN cargo clippy --workspace lint-frontend: FROM +base-node COPY +wasmlib/pkg tools/upend_wasm/pkg WORKDIR webui RUN pnpm install --frozen-lockfile RUN pnpm check && pnpm lint lint-jslib: FROM +base-node COPY +wasmlib/pkg tools/upend_wasm/pkg WORKDIR tools/upend_js RUN pnpm install --frozen-lockfile RUN pnpm lint test: WAIT BUILD +test-backend END test-backend: FROM +base-rust RUN curl -LsSf https://get.nexte.st/latest/linux | tar zxf - -C /usr/local/cargo/bin RUN cargo fetch RUN cargo nextest run --workspace appimage-signed: FROM alpine RUN apk add gpg gpg-agent RUN --secret GPG_SIGN_KEY echo "$GPG_SIGN_KEY" | gpg --import COPY +appimage/*.AppImage . RUN gpg --clear-sign *.AppImage SAVE ARTIFACT *.asc deploy-appimage-nightly: FROM +appimage-signed RUN apk add openssh-client RUN --secret SSH_CONFIG --secret SSH_UPLOAD_KEY --secret SSH_KNOWN_HOSTS \ mkdir -p $HOME/.ssh && \ echo "$SSH_CONFIG" > $HOME/.ssh/config && \ echo "$SSH_UPLOAD_KEY" > $HOME/.ssh/id_rsa && \ echo "$SSH_KNOWN_HOSTS" > $HOME/.ssh/known_hosts && \ chmod 600 $HOME/.ssh/* RUN scp -v *.AppImage *.asc mainsite:releases/nightly base-rust: FROM rust:bookworm WORKDIR /upend COPY --dir base cli db Cargo.toml Cargo.lock . COPY --dir tools/upend_wasm tools/upend_wasm base-node: FROM node:lts RUN npm install -g pnpm WORKDIR /upend COPY --dir webui webext . COPY --dir tools/upend_js tools/upend_js