Factory Source Code¶
The FoundriesFactory provides you with a private git sandbox which allows you to maintain and customize your platform.
Navigate to https://source.foundries.io/factories/<factory>/
You will find four git repositories, below is a brief description of each one.
- This OE layer defines what is included into your factory image. You can add board specific customizations and override, add and remove packages provided in the default Linux microPlatform base.
- The repo manifest for the platform build. It defines which layer versions
are included in your platform image. The
default.xmlfile is the latest released manifest of our Linux microPlatform, and the
<factory>.xmlincludes your factory changes which allows you to customize your image against our common base.
- This is where containers and docker-compose apps are defined. It allows you to define what containers to build, and how to orchestrate them on the platform. By default it will build containers for amd64, aarch64, and armhf architectures.
Defines your platform and container build job to our continuous integration system which uses the data from
The ci-scripts.git repository prevents a commit changing the
lmp:machines:stanza as well as any changes altering the history (force push is disabled). Factories are created to support specific machines. If you need to alter this behavior after starting a FoundriesFactory, please open a support ticket.
If you push changes to either
a new platform build will be triggered, and if successful will deploy the
update to any registered devices.
Any changes pushed to
containers.git will trigger a container build job, and
any containers defined will be pushed to your factory’s private Docker
Commit messages that include
[skip ci] or
[ci skip] will not
trigger CI builds.
Configuring CI to Build New Branches¶
have the single branch,
For these repos it is reccomended to also have a
devel branch for non-production purposes.
ci-scripts has the single default branch
To create new buildable platform branches, first enable the new branch in
ci-scripts, for example:
lmp: tagging: refs/heads/main: - tag: main refs/heads/devel: - tag: devel refs/heads/new_branch: - tag: new_branch
Then branch out from the wanted branches in
lmp-manifest. For example, using
devel as a base for the new branch:
cd meta-subscriber-overrides git checkout devel git checkout -b new_branch git commit -m "[skip ci] create new branch" --allow-empty git push --set-upstream origin new_branch
lmp-manifest repo change is similar as above, but includes an additional
change to point to the correct
cd lmp-manifest git checkout devel git checkout -b new_branch sed -i 's/devel/new_branch/' <factory_name>.xml git add <factory_name>.xml git commit -m "point meta-subscriber-overrides to correct branch" git push --set-upstream origin new_branch
After the last step, a platform build for the
new_branch is triggered in the
To create new buildable container branches, first enable the new branch in
ci-scripts, for example:
containers: tagging: refs/heads/main: - tag: main refs/heads/devel: - tag: devel refs/heads/new_branch: - tag: new_branch
Then branch out from the wanted branch in
containers, for example using
cd containers git checkout devel git checkout -b new_branch git push --set-upstream origin new_branch
After the last step, a container build for the
new_branch is triggered in