image: gradle:jdk11 stages: - build - test - deploy variables: GRADLE_OPTS: "-Dorg.gradle.daemon=false" before_script: - apt-get -y update - 'which zip || ( apt-get -y install zip )' - 'which git || ( apt-get -y install git )' - export GRADLE_USER_HOME=`pwd`/.gradle - chmod +x gradlew - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )' - eval $(ssh-agent -s) - echo "$SSH_PRIVATE_KEY" | base64 -d | ssh-add - > /dev/null - mkdir -p ~/.ssh - chmod 700 ~/.ssh - echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config - git submodule sync - mv modules modules_cache || true - git submodule update --init --recursive --force - cp -a modules_cache/* modules/ || true build: stage: build script: - gradle assemble after_script: - mkdir -p artifacts/modules - cd LaunchServer/build/libs/ - zip -r -9 ../../../artifacts/libraries.zip * -x "LaunchServer.jar" -x "LaunchServer-clean.jar" - cp LaunchServer.jar ../../../artifacts/LaunchServer.jar - cd ../../../ServerWrapper/build/libs - cp ServerWrapper.jar ../../../artifacts/ServerWrapper.jar - cd ../../../LauncherAuthlib/build/libs - cp LauncherAuthlib.jar ../../../artifacts/LauncherAuthlib.jar - cd ../../../ - cp modules/*_module/build/libs/*.jar artifacts/modules - cp modules/*_swmodule/build/libs/*.jar artifacts/modules - cp modules/*_lmodule/build/libs/*.jar artifacts/modules cache: key: "$CI_COMMIT_REF_NAME" paths: - .gradle - LaunchServer/build - Launcher/build - LauncherCore/build - LauncherAPI/build - LauncherAuthlib/build - modules/*_*module/build artifacts: expire_in: 6 week paths: - artifacts test: stage: test script: - gradle check cache: key: "$CI_COMMIT_REF_NAME" policy: pull paths: - .gradle - LaunchServer/build - Launcher/build - LauncherCore/build - LauncherAPI/build - LauncherAuthlib/build - modules/*_*module/build deploy-demo: stage: deploy only: [dev] script: - gradle build - eval $(ssh $SSH_USER@$SSH_HOST 'cd $SSH_DIR && cat deploy.sh') cache: key: "$CI_COMMIT_REF_NAME" policy: pull paths: - .gradle - LaunchServer/build - Launcher/build - LauncherCore/build - LauncherAPI/build - LauncherAuthlib/build - modules/*_*module/build