refactor(build): update AboutLibraries generation process for rb (#5316)

This commit is contained in:
James Rich
2026-05-01 07:33:19 -05:00
committed by GitHub
parent b2b8b873f1
commit aa71400706
2 changed files with 7 additions and 25 deletions

View File

@@ -91,16 +91,13 @@ jobs:
run: ./gradlew graphUpdate
continue-on-error: true
- name: Update AboutLibraries metadata
run: ./gradlew :app:exportLibraryDefinitions
continue-on-error: true
- name: Create Pull Request if changes occurred
uses: peter-evans/create-pull-request@v8
with:
token: ${{ secrets.CROWDIN_GITHUB_TOKEN }}
commit-message: |
chore: Scheduled updates (Firmware, Hardware, Translations, Graphs, Licenses)
chore: Scheduled updates (Firmware, Hardware, Translations, Graphs)
Automated updates for:
- Firmware releases list
@@ -108,8 +105,7 @@ jobs:
- Crowdin source string uploads
- Crowdin translation downloads
- Module dependency graphs
- AboutLibraries license metadata
title: 'chore: Scheduled updates (Firmware, Hardware, Translations, Graphs, Licenses)'
title: 'chore: Scheduled updates (Firmware, Hardware, Translations, Graphs)'
body: |
This PR includes automated updates from the scheduled workflow:
@@ -118,7 +114,6 @@ jobs:
- Source strings were uploaded to Crowdin.
- Latest translations were downloaded from Crowdin (if available).
- Updated module dependency graphs in README.md files (if changed).
- Updated `aboutlibraries.json` license metadata (if dependencies changed).
Please review the changes.
branch: 'scheduled-updates'
@@ -127,7 +122,6 @@ jobs:
add-paths: |
app/src/main/assets/firmware_releases.json
app/src/main/assets/device_hardware.json
app/src/main/resources/aboutlibraries.json
fastlane/metadata/android/**
**/strings.xml
**/README.md

View File

@@ -55,30 +55,18 @@ class AboutLibrariesConventionPlugin : Plugin<Project> {
}
}
// Ensure aboutlibraries.json is always up-to-date during the build.
// This is required since AboutLibraries v11+ no longer auto-exports.
// For fdroid builds, skip re-export to preserve reproducible builds (RB) —
// the committed aboutlibraries.json is used as-is.
// Ensure aboutlibraries.json is generated before resource processing.
// The file is gitignored and must be generated fresh each build.
// offlineMode is already true when aboutLibraries.release is not passed,
// ensuring deterministic output for fdroid/reproducible builds.
// See: https://github.com/meshtastic/Meshtastic-Android/issues/3231
tasks
.matching {
it.name.startsWith("process") &&
(it.name.endsWith("Resources") || it.name.endsWith("JavaRes")) &&
!it.name.contains("Fdroid", ignoreCase = true)
(it.name.endsWith("Resources") || it.name.endsWith("JavaRes"))
}
.configureEach { dependsOn("exportLibraryDefinitions") }
// Gradle 9.5 strict task-dependency validation: fdroid variants read from
// src/main/resources/ (where exportLibraryDefinitions writes). Even though
// fdroid uses the committed file as-is, we must declare ordering to satisfy
// the implicit dependency checker.
tasks
.matching {
it.name.startsWith("process") &&
it.name.endsWith("JavaRes") &&
it.name.contains("Fdroid", ignoreCase = true)
}
.configureEach { mustRunAfter("exportLibraryDefinitions") }
}
}
}