Adjustments to enable building on launchpad #1376
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In order to build charms targeting a certain architecture, the intent is to leverage a build farm of launchpad builders using the
launchpadlib
library within the charm builder jobBy changing only the
charm-support-matrix.inc
to include thebuilder: 'launchpad'
option within a specific charm, the charm will be built on launchpad rather than on the jenkins runner.It is necessary only for the charm to be built using
charmcraft.yaml
(no reactive charms are supported there) and eachbuilds-on
entry in thatcharmcraft yaml
will recieve a separate builder.Incidentally, this allows for a single charm build invocation to also yield multiple charm build outputs -- one for each
builds-on
entry. Much of the rearchitecture in this PR is around handling a single charm build invocation creating multiple charm files (eg. one charm file per architecture)In that event -- these changes support each architecture being uploaded, associated with its resources, and released to the same charmhub channel -- for the various architectures|bases it supports.
These changes also facilitate having a different architecture's OCI image attached to a charm so that juju can download the appropriate binary arch and binary oci-image for that charm deployment.