first commit
Build Futon with Niadd patch / Build debug APK (push) Failing after 2m15s

This commit is contained in:
2026-08-09 21:28:29 +03:00
commit df0fb7be1e
4 changed files with 224 additions and 0 deletions
+155
View File
@@ -0,0 +1,155 @@
name: Build Futon with Niadd patch
on:
push:
branches:
- main
paths:
- ".gitea/workflows/build.yml"
- "patches/**"
workflow_dispatch:
env:
FUTON_REPOSITORY: "https://github.com/AppFuton/Futon.git"
FUTON_REF: "devel"
PARSERS_REPOSITORY: "https://github.com/Kotatsu-Redo/kotatsu-parsers-redo.git"
PARSERS_REF: "master"
jobs:
build:
name: Build debug APK
runs-on: ubuntu-latest
steps:
- name: Checkout CI repository
uses: https://github.com/actions/checkout@v4
- name: Set up JDK 17
uses: https://github.com/actions/setup-java@v4
with:
distribution: temurin
java-version: "17"
- name: Set up Android SDK
uses: https://github.com/android-actions/setup-android@v3
- name: Install Android SDK 36
shell: bash
run: |
set -euxo pipefail
sdkmanager "platform-tools" "platforms;android-36" "build-tools;36.0.0"
- name: Clone upstream repositories
shell: bash
run: |
set -euxo pipefail
rm -rf work
mkdir -p work
git clone \
--depth 1 \
--branch "${FUTON_REF}" \
"${FUTON_REPOSITORY}" \
work/Futon
git clone \
--depth 1 \
--branch "${PARSERS_REF}" \
"${PARSERS_REPOSITORY}" \
work/kotatsu-parsers-redo
git -C work/Futon rev-parse HEAD
git -C work/kotatsu-parsers-redo rev-parse HEAD
- name: Check and apply Niadd parser patch
shell: bash
run: |
set -euxo pipefail
PATCH_FILE="${PWD}/patches/ninemanga-niadd.patch"
git -C work/kotatsu-parsers-redo apply --check "${PATCH_FILE}"
git -C work/kotatsu-parsers-redo apply "${PATCH_FILE}"
grep -F '"ru.niadd.com"' \
work/kotatsu-parsers-redo/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/NineMangaParser.kt
grep -F '@MangaSourceParser("NINEMANGA_RU", "Niadd Русский", "ru")' \
work/kotatsu-parsers-redo/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/NineMangaParser.kt
- name: Connect Futon to patched local parsers
shell: bash
run: |
set -euxo pipefail
cat >> work/Futon/settings.gradle <<'EOF'
// Added by futon-niadd-gitea-ci.
// Replace the JitPack kotatsu-parsers-redo dependency with the
// patched source tree cloned next to Futon.
includeBuild('../kotatsu-parsers-redo') {
dependencySubstitution {
substitute module('com.github.clquwu:kotatsu-parsers-redo') using project(':')
}
}
EOF
tail -n 12 work/Futon/settings.gradle
- name: Build Futon debug APK
shell: bash
working-directory: work/Futon
env:
GRADLE_OPTS: "-Dorg.gradle.daemon=false -Dorg.gradle.jvmargs=-Xmx4g"
run: |
set -euxo pipefail
chmod +x gradlew
./gradlew \
--no-daemon \
--stacktrace \
:app:assembleDebug
- name: Prepare build artifacts
shell: bash
run: |
set -euxo pipefail
APK="work/Futon/app/build/outputs/apk/debug/app-debug.apk"
test -s "${APK}"
mkdir -p dist
cp "${APK}" dist/Futon-Niadd-debug.apk
FUTON_SHA="$(git -C work/Futon rev-parse HEAD)"
PARSERS_SHA="$(git -C work/kotatsu-parsers-redo rev-parse HEAD)"
{
echo "Futon repository: ${FUTON_REPOSITORY}"
echo "Futon ref: ${FUTON_REF}"
echo "Futon commit: ${FUTON_SHA}"
echo
echo "Parsers repository: ${PARSERS_REPOSITORY}"
echo "Parsers ref: ${PARSERS_REF}"
echo "Parsers commit: ${PARSERS_SHA}"
echo
java -version 2>&1
} > dist/build-info.txt
(
cd dist
sha256sum Futon-Niadd-debug.apk > SHA256SUMS
)
ls -lh dist
cat dist/SHA256SUMS
cat dist/build-info.txt
- name: Upload APK
uses: https://github.com/actions/upload-artifact@v3
with:
name: Futon-Niadd-debug
path: dist/
if-no-files-found: error
retention-days: 30
+4
View File
@@ -0,0 +1,4 @@
work/
dist/
.gradle/
*.apk
+26
View File
@@ -0,0 +1,26 @@
# Futon Niadd — Gitea Actions build
Этот репозиторий не хранит копии Futon и kotatsu-parsers-redo.
При каждом запуске Gitea Actions:
1. Клонируется `AppFuton/Futon`, ветка `devel`.
2. Клонируется `Kotatsu-Redo/kotatsu-parsers-redo`, ветка `master`.
3. На `NineMangaParser.kt` накладывается `patches/ninemanga-niadd.patch`.
4. Futon через Gradle composite build подключается к локальному пропатченному parser-проекту.
5. Собирается debug APK.
6. В артефакт `Futon-Niadd-debug` складываются:
- `Futon-Niadd-debug.apk`
- `SHA256SUMS`
- `build-info.txt`
## Что исправляет patch
Для русского источника сохранён внутренний ID `NINEMANGA_RU`, но:
- домен изменён с `ru.ninemanga.com` на `ru.niadd.com`;
- снят `@Broken`;
- отображаемое имя изменено на `Niadd Русский`;
- первая страница каталога использует `/category/`;
- следующие страницы используют `/category/index_N.html`;
- русские статусы разбираются без учёта регистра.
+39
View File
@@ -0,0 +1,39 @@
diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/NineMangaParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/NineMangaParser.kt
--- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/NineMangaParser.kt
+++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/NineMangaParser.kt
@@ -89,6 +89,14 @@
}
- } else {
- append("/category/index_")
- append(page.toString())
- }
+ } else if (domain.endsWith("niadd.com")) {
+ if (page == 1) {
+ append("/category/")
+ } else {
+ append("/category/index_")
+ append(page.toString())
+ append(".html")
+ }
+ } else {
+ append("/category/index_")
+ append(page.toString())
+ }
}
@@ -199,4 +199,4 @@
//ru
- status.contains("постоянный") -> MangaState.ONGOING
- status.contains("завершенный") -> MangaState.FINISHED
+ status.contains("постоянный", ignoreCase = true) -> MangaState.ONGOING
+ status.contains("завершенный", ignoreCase = true) -> MangaState.FINISHED
//de
@@ -265,7 +265,6 @@
- @Broken
- @MangaSourceParser("NINEMANGA_RU", "NineManga Русский", "ru")
+ @MangaSourceParser("NINEMANGA_RU", "Niadd Русский", "ru")
class Russian(context: MangaLoaderContext) : NineMangaParser(
context,
MangaParserSource.NINEMANGA_RU,
- "ru.ninemanga.com",
+ "ru.niadd.com",
)