Since goreleaser doesn't support monorepo without paying them (boo) this repo serves as an example for building and releasing multiplatform, multiarch binaries with changelogs within a monorepo.
Tags prefixed with a/ will build the a package, at the given version, and
same for those prefixed with b/. For example: a/v0.1.1 and b/0.2.3.
The main.version and main.commit tags will be populated with the proper
values using -ldflags.
Release notes are generated based on commits found that modified files within the package. This can obviously be adjusted if desired.
Add additional build targets by modifying the call to .github/tools/build in
the workflow definition.
This is just an example. You may need to modify it to fit your needs. It is not meant to be a one-size-fits-all solution, it is meant to give you a starting point.