paperless_app icon indicating copy to clipboard operation
paperless_app copied to clipboard

Automate Relase Process

Open bauerj opened this issue 4 years ago • 2 comments

Currently, the release process is a manual task. Ideally, release and testing would be automated so that the effort could be directed to improving the app. This will be especially important when we have an iOS version, since that doubles the workload.

I think the following steps need to be done:

  • [x] Set up a Paperless test server with some documents for use while testing the app (Maybe something that resets after use so people don't mess around with it)
  • [x] Make Github Actions compile APKs
    • [x] Add a new action
    • [ ] Securely store signing key
    • [x] Store the artifacts
  • [ ] Automatically generate changelog
  • [ ] Add APKs to a new Github Release
  • [ ] Upload APKs to Google Play
  • [ ] Integration Testing (basically a robot using the app in an emulator)
  • [ ] Automate taking screenshots of the app while testing (for Github/F-Droid)

bauerj avatar Feb 11 '22 17:02 bauerj

Anyone looking to help with this can freely use our demo server:

https://paperless-demo.quinncasey.com/ Username: paperless Password: paperless

The demo resets itself daily.

qcasey avatar Feb 11 '22 21:02 qcasey

Regarding automatic signed releases, I found this blog post that's pretty concise. We just need to change a few things in build.gradle and you'll need to add a blob to the project's secrets:

https://noxasch.tech/blog/automate-your-flutter-release-with-github-action-while-keeping-your-secret-safe/#step-1-configure-your-buildgradle

In the Flutter Build workflow, there can be a conditional step that checks for a new tag before doing the changelog and github / Google Play release.

Integration Testing sounds like another beast entirely but I'm interested :laughing:

qcasey avatar Feb 11 '22 21:02 qcasey