A RuneTek3 client (377) that is deobfuscated, converted to Kotlin, and includes QoL improvements.
1stages:
2 - build
3 - publish
4
5variables:
6 GRADLE_OPTS: "-Dorg.gradle.daemon=false"
7 PACKAGE_NAME: "rs377-client"
8 JAR_NAME: "377.jar"
9 ZIP_NAME: "rs377-client.zip"
10
11build:
12 stage: build
13 image: eclipse-temurin:21-jdk-alpine
14 tags:
15 - docker
16 before_script:
17 - apk add --no-cache zip
18 - chmod +x gradlew
19 script:
20 - ./gradlew clean jar
21 - mkdir -p dist/config
22 - cp build/libs/${JAR_NAME} dist/
23 - cp config/EXAMPLE-client-config.yaml dist/config/client-config.yaml
24 - echo '#!/bin/sh' > dist/run.sh
25 - echo 'cd "$(dirname "$0")" && java -jar 377.jar' >> dist/run.sh
26 - chmod +x dist/run.sh
27 - printf '@echo off\r\ncd /d "%%~dp0"\r\njava -jar 377.jar\r\npause\r\n' > dist/run.bat
28 - cd dist && zip -r ../${ZIP_NAME} ${JAR_NAME} config/ run.sh run.bat
29 artifacts:
30 paths:
31 - ${ZIP_NAME}
32 expire_in: 90 days
33 cache:
34 key:
35 files:
36 - build.gradle
37 paths:
38 - .gradle/
39
40publish:
41 stage: publish
42 image: curlimages/curl:latest
43 tags:
44 - docker
45 needs:
46 - job: build
47 artifacts: true
48 rules:
49 - if: $CI_COMMIT_BRANCH == "master"
50 script:
51 - echo "Publishing ${PACKAGE_NAME} @ ${CI_COMMIT_SHORT_SHA}"
52 - |
53 curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" \
54 --upload-file "${ZIP_NAME}" \
55 "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${PACKAGE_NAME}/latest/rs377-client-${CI_COMMIT_SHORT_SHA}.zip"