# syntax=docker/dockerfile:1

FROM golang:1.19 as build
RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
RUN apt update && apt install yarn -y
ADD --link . /build
WORKDIR /build
RUN \
    --mount=type=secret,id=github_token \
    --mount=type=cache,target=/root/.cache/go-build \
    git config --global url."https://$(cat /run/secrets/github_token)@github.com/".insteadOf "https://github.com/" \
    && make build

FROM joelnb/dumb-init-alpine:3 as runtime
ENV GIN_MODE=release
WORKDIR /runtime
COPY --link --from=build /build/bin/aitestsuit /runtime/bin/aitestsuit
COPY --link --from=build /build/ui/dist/ /runtime/ui/dist/
CMD ["/runtime/bin/aitestsuit"]
