[SKIP CI] improve tasks, support AndroidManifest override (#5695)

* improve tasks, support AndroidManifest override

* remove unnecessary arguments
This commit is contained in:
Aria Moradi 2021-02-08 06:08:45 -08:00 committed by GitHub
parent c05656265b
commit d14bfcb1ad
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 15 additions and 29 deletions

View File

@ -35,18 +35,10 @@ jobs:
mkdir -p ~/.gradle mkdir -p ~/.gradle
cp .github/runner-files/ci-gradle.properties ~/.gradle/gradle.properties cp .github/runner-files/ci-gradle.properties ~/.gradle/gradle.properties
- name: Build multi-source library - name: Generate sources from the multi-source library
uses: eskatos/gradle-command-action@v1 uses: eskatos/gradle-command-action@v1
with: with:
arguments: :multisrc:assembleDebug arguments: :multisrc:multisrcGenerators
wrapper-cache-enabled: true
dependencies-cache-enabled: true
configuration-cache-enabled: true
- name: Run multi-source generators
uses: eskatos/gradle-command-action@v1
with:
arguments: :multisrc:runAllGenerators
wrapper-cache-enabled: true wrapper-cache-enabled: true
dependencies-cache-enabled: true dependencies-cache-enabled: true
configuration-cache-enabled: true configuration-cache-enabled: true

View File

@ -46,22 +46,10 @@ jobs:
mkdir -p ~/.gradle mkdir -p ~/.gradle
cp .github/runner-files/ci-gradle.properties ~/.gradle/gradle.properties cp .github/runner-files/ci-gradle.properties ~/.gradle/gradle.properties
- name: Build multi-source library - name: Generate sources from the multi-source library
uses: eskatos/gradle-command-action@v1 uses: eskatos/gradle-command-action@v1
with: with:
build-root-directory: master arguments: :multisrc:multisrcGenerators
wrapper-directory: master
arguments: :multisrc:assembleDebug
wrapper-cache-enabled: true
dependencies-cache-enabled: true
configuration-cache-enabled: true
- name: Run multi-source generators
uses: eskatos/gradle-command-action@v1
with:
build-root-directory: master
wrapper-directory: master
arguments: :multisrc:runAllGenerators
wrapper-cache-enabled: true wrapper-cache-enabled: true
dependencies-cache-enabled: true dependencies-cache-enabled: true
configuration-cache-enabled: true configuration-cache-enabled: true

View File

@ -21,7 +21,7 @@ repositories {
apply("$rootDir/common-dependencies.gradle") apply("$rootDir/common-dependencies.gradle")
tasks { tasks {
val runAllGenerators by registering { val multisrcGenerators by registering {
doLast { doLast {
val isWindows = System.getProperty("os.name").toString().toLowerCase().contains("win") val isWindows = System.getProperty("os.name").toString().toLowerCase().contains("win")
val classPath = (configurations.debugCompileOnly.get().asFileTree.toList() + val classPath = (configurations.debugCompileOnly.get().asFileTree.toList() +
@ -46,5 +46,6 @@ tasks {
throw Exception("Java process failed with exit code: $exitCode") throw Exception("Java process failed with exit code: $exitCode")
} }
} }
dependsOn("assembleDebug")
} }
} }

View File

@ -68,12 +68,16 @@ interface ThemeSourceGenerator {
""".trimIndent()) """.trimIndent())
} }
private fun writeAndroidManifest(androidManifestFile: File) { private fun writeAndroidManifest(androidManifestFile: File, manifestOverridesPath: String, source: ThemeSourceData, projectRootPath: String) {
androidManifestFile.writeText(""" val androidManifestOverride = File("$manifestOverridesPath/${source.pkgName}")
if (androidManifestOverride.exists())
androidManifestOverride.copyRecursively(File(projectRootPath))
else
androidManifestFile.writeText("""
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- THIS FILE IS AUTO-GENERATED; DO NOT EDIT --> <!-- THIS FILE IS AUTO-GENERATED; DO NOT EDIT -->
<manifest package="eu.kanade.tachiyomi.extension" /> <manifest package="eu.kanade.tachiyomi.extension" />
""".trimIndent()) """.trimIndent())
} }
private fun createGradleProject(source: ThemeSourceData, themePkg: String, themeClass: String, baseVersionCode: Int, userDir: String) { private fun createGradleProject(source: ThemeSourceData, themePkg: String, themeClass: String, baseVersionCode: Int, userDir: String) {
@ -82,6 +86,7 @@ interface ThemeSourceGenerator {
val overridesPath = "$userDir/multisrc/overrides" // userDir = tachiyomi-extensions project root path val overridesPath = "$userDir/multisrc/overrides" // userDir = tachiyomi-extensions project root path
val resOverridesPath = "$overridesPath/res/$themePkg" val resOverridesPath = "$overridesPath/res/$themePkg"
val srcOverridesPath = "$overridesPath/src/$themePkg" val srcOverridesPath = "$overridesPath/src/$themePkg"
val manifestOverridesPath = "$overridesPath/manifest/$themePkg"
val projectGradleFile = File("$projectRootPath/build.gradle") val projectGradleFile = File("$projectRootPath/build.gradle")
val projectAndroidManifestFile = File("$projectRootPath/AndroidManifest.xml") val projectAndroidManifestFile = File("$projectRootPath/AndroidManifest.xml")
@ -93,7 +98,7 @@ interface ThemeSourceGenerator {
cleanDirectory(projectRootFile) cleanDirectory(projectRootFile)
writeGradle(projectGradleFile, source, baseVersionCode) writeGradle(projectGradleFile, source, baseVersionCode)
writeAndroidManifest(projectAndroidManifestFile) writeAndroidManifest(projectAndroidManifestFile, manifestOverridesPath, source, projectRootPath)
writeSourceFiles(projectSrcPath, srcOverridesPath, source, themePkg, themeClass) writeSourceFiles(projectSrcPath, srcOverridesPath, source, themePkg, themeClass)
copyThemeClasses(userDir, themePkg, projectRootPath) copyThemeClasses(userDir, themePkg, projectRootPath)