Age | Commit message (Collapse) | Author |
|
The build time can be drastically shortened by re-using the sstate-cache
and source tarballs between builds, so let's do that.
Note: this requires that all Jenkins agents this job can run on to have
two environment variables set: YOCTO_SSTATE_DIR and YOCTO_DL_DIR, both
being a path to out-of-workspace directories that persist between
builds.
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
|
|
It's easier to read and makes diff more meaningful.
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
|
|
Jenkins does not seem to like symlinks, so let's archive only the actual
file via some educated guess on what the filename should look like.
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
|
|
While kas-theobroma.yml contains the default machine, KAS_MACHINE allows
to overwrite it from the command line which is much more explicit in a
Jenkinsfile, so let's do that.
This incidentally also prepares for building multiple machines from the
same Jenkinsfile.
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
|
|
This bumps the kas container used by Jenkins to latest version
available, 3.1.
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
|
|
For bmaptools to be used, the bmap layout file associated with the file
to be flashed needs to be present in the same directory as said file.
Therefore, let's archive this file too.
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
|
|
This allows us to build meta-theobroma-systems-bsp in a reproducible way
by using kas and the configuration file that is present in the repo.
To guarantee there's no leftover from previous builds, the workspace is
entirely cleaned up before checking out meta-theobroma-systems-bsp. This
is preferred to cleaning up the workspace after build in order to make
it possible to debug the last Jenkins job build.
Unfortunately, because of a Jenkins bug which prevents us from running
any command in the docker agent's args property or use environment
variables that are set in the environment globally in the pipeline, the
environment is globally configured to get the UID and GID of the user
which will then be passed to a stage's docker agent. In order to make
sure that the user where the UID and GID were gathered will be the same
as the one running the docker, the global agent needs to be docker
compatible and the stage's docker needs to reuseNode.
Note that archiveArtifacts on a symlink only adds the symlink and not
the target of the symlink, resulting in 0B files. Therefore, the
symlinks and their targets are added to the artifacts. It's done this
way because it is hard to have a regexp matching only the target and no
symlink. Symlinks are also much more explicit and easier to work with
that super long filenames as created by Yocto Project.
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
|