From f6eded56f02aac484853e0e7d9475db4ceead717 Mon Sep 17 00:00:00 2001 From: RoyceDa Date: Thu, 26 Feb 2026 19:22:56 +0200 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=BE=D0=B4=D0=B4=D0=B5=D1=80=D0=B6?= =?UTF-8?q?=D0=BA=D0=B0=20android=20=D0=BF=D0=BB=D0=B0=D1=82=D1=84=D0=BE?= =?UTF-8?q?=D1=80=D0=BC=D1=8B=20=D0=B4=D0=BB=D1=8F=20=D0=BE=D0=B1=D0=BD?= =?UTF-8?q?=D0=BE=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/build.yaml | 61 +++++++++++++++++++ src/main/java/im/rosetta/Main.java | 2 +- .../java/im/rosetta/api/UpdatesResource.java | 14 ++++- 3 files changed, 75 insertions(+), 2 deletions(-) create mode 100644 .gitea/workflows/build.yaml diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml new file mode 100644 index 0000000..39d3b93 --- /dev/null +++ b/.gitea/workflows/build.yaml @@ -0,0 +1,61 @@ +name: Build rosetta-sdu +on: + push: + branches: + - main + workflow_dispatch: + +jobs: + build: + runs-on: java-builders + steps: + - name: Install Node.js + run: | + if command -v apt-get &> /dev/null; then + sudo apt-get update && sudo apt-get install -y nodejs npm + elif command -v brew &> /dev/null; then + brew install node + fi + + - name: Checkout code + uses: actions/checkout@v6 + + - name: Set up JDK 21 + uses: actions/setup-java@v4 + with: + java-version: '21' + distribution: 'temurin' + cache: maven + + - name: Build with Maven + run: mvn clean package + + - name: List build directory + run: ls -la build/ + + - name: Deploy to server via SSH + uses: appleboy/scp-action@v1 + with: + host: ${{ secrets.SDU_SSH_HOST }} + username: ${{ secrets.SDU_SSH_USER }} + password: ${{ secrets.SDU_SSH_PASSWORD }} + port: ${{ secrets.SDU_SSH_PORT }} + source: "build/*" + target: ${{ secrets.SDU_DEPLOY_PATH }} + strip_components: 1 + rm: false + debug: true + flatten: true + + - name: Restart Docker containers + uses: appleboy/ssh-action@v1.2.5 + with: + host: ${{ secrets.SDU_SSH_HOST }} + username: ${{ secrets.SDU_SSH_USER }} + password: ${{ secrets.SDU_SSH_PASSWORD }} + port: ${{ secrets.SDU_SSH_PORT }} + script: | + cd ${{ secrets.SDU_DEPLOY_PATH }} + docker-compose down + docker compose up -d --build + \ No newline at end of file diff --git a/src/main/java/im/rosetta/Main.java b/src/main/java/im/rosetta/Main.java index edf99a8..66338e8 100644 --- a/src/main/java/im/rosetta/Main.java +++ b/src/main/java/im/rosetta/Main.java @@ -44,7 +44,7 @@ public class Main { } // Значение по умолчанию. - return 8080; + return 7777; } private static void stopServer(HttpServer server) { diff --git a/src/main/java/im/rosetta/api/UpdatesResource.java b/src/main/java/im/rosetta/api/UpdatesResource.java index 425a9f3..e194a86 100644 --- a/src/main/java/im/rosetta/api/UpdatesResource.java +++ b/src/main/java/im/rosetta/api/UpdatesResource.java @@ -43,6 +43,18 @@ public class UpdatesResource { String normalizedApp = normalize(appVersion); String normalizedKernel = normalize(kernelVersion); + if(normalizedPlatform != null && normalizedPlatform.equals("android")) { + Optional latestKernel = findLatestKernel(normalizedPlatform, "universal"); + if (latestKernel.isPresent()) { + KernelFileInfo info = latestKernel.get(); + String lastKernelVersion = info.version(); + if(compareVersions(lastKernelVersion, normalizedKernel) > 0) { + return new UpdateResponse(null, normalizedPlatform, normalizedArch, true, null, + "/kernel/" + normalizedPlatform + "/universal/" + info.fileName()); + } + } + } + // Приводим платформу и архитектуру к нижнему регистру для сопоставления с // именами файлов. if (normalizedPlatform != null) { @@ -72,7 +84,7 @@ public class UpdatesResource { boolean kernelUpdateRequired = false; String kernelUrl = null; - // Проверяем требование к ядру, только если пакет обновления найден. + // Проверяем требование к ядру, только если пакет обновления найден или платформа android if (packSelection.updateFileName() != null && compareVersions(normalizedKernel, packSelection.minKernelRequired()) < 0) { kernelUpdateRequired = true;