# load base image from actual version
ARG VERSION=latest
FROM ghcr.io/iisgiua/giuaschool-test:$VERSION

# parameters for actual version, new version and new build
ARG VERSION
ARG NEWVERSION
ARG NEWBUILD

# base directory
WORKDIR /var/www/giuaschool

# update files needed for testing
COPY --chown=www-data:www-data public/install/ ./public/install/
COPY --chown=www-data:www-data src/Command/ ./src/Command/
COPY --chown=www-data:www-data src/DataFixtures/ ./src/DataFixtures/
COPY --chown=www-data:www-data src/Install/ ./src/Install/
COPY --chown=www-data:www-data tests/ ./tests/

# set test environment
RUN \
  if [ "$VERSION" = "$NEWVERSION" ] ; then DIR="update-v$NEWVERSION" ; FILE="giuaschool-update-v$NEWVERSION" ; ZIP="${NEWVERSION%-*}-build" ; else DIR="v$NEWVERSION" ; FILE="giuaschool-release-v$NEWVERSION" ; ZIP="${NEWVERSION%-*}" ; fi && \
  cd src/Install && \
  wget https://github.com/iisgiua/giuaschool/releases/download/$DIR/$FILE.zip && \
  mv "$FILE.zip" "v$ZIP.zip" && \
  cd ../../ && \
  cp tests/docker/*.feature tests/features/ && \
  rm -r var/cache/* var/sessions/* tests/temp/* && \
  mkdir -p var/cache/prod && \
  mkdir -p var/sessions/prod && \
  mkdir -p tests/temp/download && \
  chmod 777 tests/temp/download && \
  chown -R www-data:www-data src/* public/* tests/* var/* && \
  echo "UPDATE gs_configurazione SET valore='$VERSION' WHERE parametro='versione';" > .gs-updating && \
  service mariadb start && \
  mysql -uroot -proot giuaschool < .gs-updating && \
  echo "token='test'" > .gs-updating && \
  echo "version='${NEWVERSION%-*}'" >> .gs-updating && \
  echo "build='$NEWBUILD'" >> .gs-updating

# open https port
EXPOSE 443

# default entrypoint
ENTRYPOINT ["tests/docker/test-update.sh"]
CMD []
