diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 434bc8464d36294c1fcf61bac7fc986dfc0c4fd7..52d164a668f43054909942b730f365e460efd7d0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,13 +2,14 @@ image: golang:alpine variables: CONTAINER_IMAGE: "mosogepsch-notification-server:$CI_COMMIT_REF_NAME" + MOSOGEPSCH_HOST: "root@mosogep-ng.sch.bme.hu" stages: - build - docker - deploy -backend build: +noti backend build: image: golang:alpine stage: build before_script: @@ -24,6 +25,20 @@ backend build: - notifications/**/* - .gitlab-ci.yml +backend build: + image: gradle:7.1 + stage: build + script: + - cd backend + - ./gradlew shadowJar + artifacts: + paths: + - backend/build/libs/mosogepsch-backend.jar + only: + changes: + - backend/**/* + - .gitlab-ci.yml + android-debug: variables: GRADLE_USER_HOME: /cache/gradle/android/mosogepsch @@ -78,7 +93,7 @@ dockerhub: - echo "{\"auths\":{\"https://index.docker.io/v1/\":{\"username\":\"$DOCKERHUB_USER\",\"password\":\"$DOCKERHUB_PASSWORD\"}}}" > /kaniko/.docker/config.json - /kaniko/executor --force --context $CI_PROJECT_DIR/notifications --dockerfile $CI_PROJECT_DIR/notifications/Dockerfile --destination blintmester/$CONTAINER_IMAGE needs: - - backend build + - noti backend build only: changes: - notifications/**/* @@ -104,3 +119,25 @@ k8s: - .gitlab-ci.yml refs: - main + +deploy backend: + stage: deploy + image: kroniak/ssh-client + before_script: + - eval $(ssh-agent -s) + - echo "$SSH" | tr -d '\r' | ssh-add - + - mkdir -p ~/.ssh + - chmod 700 ~/.ssh + - 'echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config' + needs: + - backend build + script: + - scp backend/mosogepch-backend.service $MOSOGEPSCH_HOST:/etc/systemd/system/ + - scp backend/build/libs/mosogepsch-backend.jar $MOSOGEPSCH_HOST:/opt/mosogepsch/ + - ssh $MOSOGEPSCH_HOST systemctl restart mosogepsch-backend.service + only: + changes: + - backend/**/* + - .gitlab-ci.yml + refs: + - main \ No newline at end of file diff --git a/backend/build.gradle.kts b/backend/build.gradle.kts index 0c8856e5236af34a2b0bd626887399eb136e2ebd..9e6f4026dbf3d143026208d61ca30adf94f75436 100644 --- a/backend/build.gradle.kts +++ b/backend/build.gradle.kts @@ -6,8 +6,19 @@ plugins { application kotlin("jvm") version "1.6.10" id("org.jetbrains.kotlin.plugin.serialization") version "1.6.10" + id("com.github.johnrengelman.shadow") version "7.1.2" } +tasks { + shadowJar { + archiveBaseName.set("mosogepsch-backend") + archiveClassifier.set("") + archiveVersion.set("") + } +} + + + group = "space.rethelyi" version = "0.0.1" application { diff --git a/backend/mosogepsch-backend.service b/backend/mosogepsch-backend.service new file mode 100644 index 0000000000000000000000000000000000000000..9e1fbd0808c5bd75b575038e3ea75e4774e1bbca --- /dev/null +++ b/backend/mosogepsch-backend.service @@ -0,0 +1,12 @@ +[Unit] +Description=MosogepSCH backend + +[Service] +Type=simple +User=mosogepsch +Group=mosogepsch +ExecStart=java -jar /opt/mosogepsch/mosogepsch-backend.jar +Restart=on-failure + +[Install] +WantedBy=multi-user.target