Flutter › CI/CD Pipelines for Flutter Apps

How can a CI/CD pipeline automate the entire release process for a Flutter app, including automatically bumping the version number and generating meaningful release notes based on recent commits?

Advanced

Answer

A fully mature, mature CI/CD release pipeline can go well beyond simply building and testing an app, by also automatically incrementing the app's version number according to a defined versioning strategy, generating a changelog or release notes by parsing recent commit messages or merged pull request titles, creating a corresponding tagged release within the source code repository, and finally uploading the properly signed build directly to the app store's release track, meaning a team can trigger an entire structured release process with a single button press or a single git tag push, rather than manually performing each of these individual steps by hand.
# Automated release workflow triggered by a version tag
on:
  push:
    tags:
      - 'v*'
Real-world example A mature engineering team triggers their entire release process, including version bumping, changelog generation, and app store upload, simply by pushing a new git tag, reducing what used to be a multi hour manual release process down to a fully automated pipeline requiring no manual intervention at all.

Common follow-ups: What versioning strategy, such as semantic versioning, is most commonly used for structuring these automated version bumps?;What manual approval steps, if any, should still remain in an otherwise fully automated release pipeline?