I am the developer of Noice. The source repository of Noice contains all of the app’s descriptive assets in Fastlane Supply compliant directory structure. After maintaining Noice for a year, I noticed a problem where many people (F-Droid users mostly [thanks guys btw]) contributed translations to the application including the descriptive assets and there was no easy way to validate the correctness of these assets over a pull request. I could run Fastlane Supply with
validate_only flag which uploads everything to Google Play but doesn’t publish anything (kind of like a dry run). Since running this requires a Google Play Service Account Key which
can should not be exposed to build jobs on PRs, I could only run it locally by manually checking out a PR and stuff.
Of course, there’s nothing wrong in running one check locally before merging such Pull Requests but it misses the whole point of having a CI flow in-place that provides instant feedback to contributors.
To address the problem, I recently wrote a simple validation logic in Golang that validates Fastlane Supply metadata against constraints enforced by the Google Play Store listings. I also published it as a GitHub action and a Docker image ready to be consumed. There hasn’t been much activity since I integrated it into the Noice’s source repository but it did help in mitigating issues in one problematic Pull Request.
I noticed that many apps on F-Droid use Fastlane supply metadata format so I just wanted to let other developers know about this. I hope this proves to be useful to others as well.