FROM alpine:3.24 AS runner
RUN echo "@testing https://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories
RUN --mount=type=cache,target=/var/cache/apk apk update
RUN --mount=type=cache,target=/var/cache/apk apk add gitea-runner@testing nodejs docker shadow
RUN usermod -u 555 gitea-runner
RUN groupmod -g 103 docker
RUN addgroup gitea-runner docker
USER gitea-runner
WORKDIR /var/lib/gitea-runner
CMD ["/usr/bin/gitea-runner", "daemon", "--config", "/etc/gitea-runner/config.yaml"]

FROM debian:stable-slim AS debian
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
    --mount=type=cache,target=/var/lib/apt,sharing=locked \
    apt update &&\
    apt install -y nodejs unzip git
RUN useradd gitea-runner -d /var/lib/gitea-runner -u 555 -r
USER gitea-runner
WORKDIR /var/lib/gitea-runner

FROM archlinux:latest AS archlinux

COPY mirrorlist /etc/pacman.d/mirrolist
RUN pacman-key --init
#RUN pacman-key --refresh-keys

RUN curl --retry 3 -OJ https://gitea.woggioni.net/api/packages/woggioni/arch/repository.key

RUN pacman-key --add repository.key
RUN pacman-key --lsign-key 0D28BF66FDB45D18D8EBEE5D4C91DADCD00B3F77
RUN --mount=type=bind,source=pacman-gitea-repository.conf,target=pacman-gitea-repository.conf cat pacman-gitea-repository.conf  >> /etc/pacman.conf

RUN rm repository.key
RUN --mount=type=cache,target=/var/cache/pacman pacman -Syu --noconfirm
RUN --mount=type=cache,target=/var/cache/pacman pacman -S --noconfirm --needed \
    nodejs \
    git \
    aarch64-unknown-linux-musl-gcc x86_64-unknown-linux-musl-gcc \
    arm-unknown-linux-musleabihf-gcc \
    arm-unknown-linux-musleabi-gcc \
    x86_64-unknown-linux-musl-gcc \
    x86_64-w64-mingw32-gcc \
    aarch64-unknown-linux-musl-gcc x86_64-unknown-linux-musl-zlib \
    arm-unknown-linux-musleabihf-zlib \
    arm-unknown-linux-musleabi-zlib \
    x86_64-unknown-linux-musl-zlib \
    x86_64-w64-mingw32-zlib \
    upx
RUN ln -s /opt/x-tools/aarch64-unknown-linux-musl/bin/aarch64-unknown-linux-musl-gcc /usr/local/bin/aarch64-linux-musl-gcc 
RUN ln -s /opt/x-tools/x86_64-unknown-linux-musl/bin/x86_64-unknown-linux-musl-gcc /usr/local/bin/x86_64-linux-musl-gcc
RUN ln -s /opt/x-tools/arm-unknown-linux-musleabihf/bin/arm-unknown-linux-musleabihf-gcc /usr/local/bin/arm-linux-musleabihf-gcc
RUN ln -s /opt/x-tools/arm-unknown-linux-musleabihf/bin/arm-unknown-linux-musleabi-gcc /usr/local/bin/arm-linux-musleabi-gcc
RUN ln -s /opt/x-tools/x86_64-w64-mingw32/bin/x86_64-w64-mingw32-gcc /usr/local/bin/x86_64-pc-windows-gnu-gcc
RUN useradd gitea-runner -u 555 -s /bin/bash -m -d /var/lib/gitea-runner

FROM alpine:3.24 AS pnpm
RUN --mount=type=cache,target=/var/cache/apk apk update
RUN --mount=type=cache,target=/var/cache/apk apk add nodejs shadow git pnpm
RUN adduser -S -u 555 -h /var/lib/gitea-runner gitea-runner
USER gitea-runner
WORKDIR /var/lib/gitea-runner
