summaryrefslogtreecommitdiff
path: root/Jenkinsfile
AgeCommit message (Collapse)Author
2022-10-28Jenkinsfile: reuse sstate-cache and source tarballs between buildsQuentin Schulz
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>
2022-10-28Jenkinsfile: put each docker argument on its own lineQuentin Schulz
It's easier to read and makes diff more meaningful. Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
2022-10-25Jenkinsfile: only archive files that are not symlinksQuentin Schulz
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>
2022-10-25Jenkinsfile: explicit machine to build with kas with Jenkins parameterQuentin Schulz
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>
2022-10-25Jenkinsfile: bump kas-containerQuentin Schulz
This bumps the kas container used by Jenkins to latest version available, 3.1. Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
2022-03-15Jenkinsfile: archive bmap layout fileQuentin Schulz
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>
2021-12-03add a Jenkinsfile for automating meta-theobroma-systems-bsp buildsQuentin Schulz
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>