FROM --platform=linux/amd64 alpine

ARG JAVA_VERSION=17
ARG GRADLE_VERSION=8.8
ARG MAVEN_VERSION=3.9.7
ARG ANT_VERSION=1.10.14
ARG COVER_CLI_URL=https://release.diffblue.com/cli/latest
ARG BUILD_DATE="unknown"
ARG VCS_REF="unknown"
ARG BUILD_VERSION="unknown"

LABEL org.opencontainers.image.authors="Diffblue Limited <it@diffblue.com>"
LABEL org.opencontainers.image.created=${BUILD_DATE}
LABEL org.opencontainers.image.url="https://www.diffblue.com/products"
LABEL org.opencontainers.image.documentation="https://docs.diffblue.com/features/cover-cli"
LABEL org.opencontainers.image.version="${BUILD_VERSION}_jdk${JAVA_VERSION}"
LABEL org.opencontainers.image.revision=${VCS_REF}
LABEL org.opencontainers.image.vendor="Diffblue Limited"
LABEL org.opencontainers.image.title="Diffblue Cover CLI"
LABEL org.opencontainers.image.description="Diffblue Cover automatically generates unit tests for Java code"

RUN wget -O /etc/apk/keys/amazoncorretto.rsa.pub https://apk.corretto.aws/amazoncorretto.rsa.pub
RUN SHA_SUM="6cfdf08be09f32ca298e2d5bd4a359ee2b275765c09b56d514624bf831eafb91" && \
    echo "${SHA_SUM}  /etc/apk/keys/amazoncorretto.rsa.pub" | sha256sum -c -
RUN echo "https://apk.corretto.aws" >> /etc/apk/repositories
RUN apk add --no-cache bash findutils curl unzip git amazon-corretto-${JAVA_VERSION}
ENV JAVA_HOME=/usr/lib/jvm/default-jvm
ENV PATH=$PATH:/usr/lib/jvm/default-jvm/bin

RUN curl ${COVER_CLI_URL} --silent --output cover.zip \
    && unzip cover.zip -d /opt/cover/ \
    && rm cover.zip

RUN curl --remote-name https://downloads.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip --silent \
    && unzip gradle-${GRADLE_VERSION}-bin.zip -d /opt \
    && rm gradle-${GRADLE_VERSION}-bin.zip

RUN curl --remote-name https://archive.apache.org/dist/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz --silent \
    && tar xf apache-maven-${MAVEN_VERSION}-bin.tar.gz -C /opt/ \
    && rm apache-maven-${MAVEN_VERSION}-bin.tar.gz

RUN curl --remote-name https://archive.apache.org/dist/ant/binaries/apache-ant-${ANT_VERSION}-bin.tar.gz --silent \
    && tar xf apache-ant-${ANT_VERSION}-bin.tar.gz -C /opt/ \
    && rm apache-ant-${ANT_VERSION}-bin.tar.gz


ENV PATH="${PATH}:/opt/cover:/opt/gradle-${GRADLE_VERSION}/bin:/opt/apache-maven-${MAVEN_VERSION}/bin:/opt/apache-ant-${ANT_VERSION}/bin"

WORKDIR /work

ENTRYPOINT bash
