develop notion of a "build profile"
Features and requirements change from version-to-version and from architecture-to-architecture. Examples:
- Prior to 3.9, we needed to pull certain packages "from the future" in order to get things working... It is concievable that we may need to do this again at some point.
- In order to support
aarch64architecture, we'll need to use
grubbootloader instead of
syslinux, and we'll need to use a different instance type and AMI for the "build instance".
To merge profiles together for a build...
- start with a "default" profile
- merge/override with a profile specific to the chosen architecture (x86_64, etc.)
- merge/override with a profile specific to the chosen Alpine version (3.9, edge, etc.)
- optionally merge/override with a user-provided custom profile
- and maybe merge/override one last time with a "mandatory" profile ...and then kick off the build with
make ARCH=aarch64 VERSION=edge CUSTOM=foo
The CICD could run through the supported ARCH/VERSION matrix via script, etc.