- Sep 04, 2023
-
-
Tim Jaacks authored
There is no need to add a prefix to the variables. Basically every variable can be set or overridden at the trigger level, so we just use plain variable names for everything.
-
Tim Jaacks authored
We were using different variable names for the same variable in build and package stages. Unify these names in order to reduce potential confusion.
-
- Aug 25, 2023
-
-
Tim Jaacks authored
-
- Aug 24, 2023
-
-
Tim Jaacks authored
This stage contains jobs to deploy packaged artifacts to our Azure blob storage. The required variables `AZURE_STORAGE_ACCOUNT` and `AZURE_STORAGE_SAS_TOKEN` are stored in the GitLab CI/CD variables. The storage container `AZURE_CONTAINER_NAME` and artifact path `AZURE_TARGET_FOLDER` are passed from the parent pipeline.
-
- Aug 22, 2023
-
-
Tim Jaacks authored
This adds two jobs to the Yocto pipeline: - generate-confluence-page - publish-confluence-page The first one generates a confluence page from a template (`confluence-page.xml.jinja2`) using information downloaded from all successful "Deploy FTP" jobs of the same pipeline. The second one publishes this page in Confluence and displays a link to the new page. If the page already exists it is overwritten. The place in Confluence where the new page is published is configurable via the `CONFLUENCE_SPACE` and `CONFLUENCE_PARENT_ID` variables.
-
- Aug 11, 2023
-
-
Tim Jaacks authored
Instead of mixing dedicated CI test jobs and Yocto build simulation jobs within one pipeline, use the new multi-build-pipelines architecture to split them up into separate child pipelines. This also makes most of the Yocto pipeline code reusable, so that we don't have to declare all the jobs again in ci-test.
-
Tim Jaacks authored
-
- Jul 27, 2023
-
-
Tim Jaacks authored
Instead of building the Yocto image, the Yocto SDK and the FNGSystem image in one single pipeline, separate them into three independent pipelines that are triggered in parallel. This makes the concept more modular: we have a single general pipeline now which is configurable from outside via variables. Hence we can have a custom number of pipelines along with custom build targets in each project without having to make code changes in the gitlab-ci project. The default Yocto manifest pipeline configures three build pipelines: - yocto-build-jobs - sdk-build-jobs - fngsystem-build-jobs In a project including the Yocto manifest pipeline, we can disable certain build pipelines using job rules, e.g. disabling the SDK build: sdk-build-jobs: rules: - when: never Furthermore we can add more pipelines by simply adding jobs extending the '.build-jobs' class in the project's .gitlab-ci.yml: yocto-custom-build-jobs: extends: - .build-jobs variables: BITBAKE_TASK: build CI_PARAM_IMAGE: custom-image CI_PARAM_DISTRO: custom-distro PACKAGE_TYPE: image
-
- Jul 25, 2023
-
-
Tim Jaacks authored
Image and SDK package jobs call the same package script just with different arguments. Instead of having two job classes `package_release` and `package_sdk` for these two tasks, merge them into the base class `package` and make the differences configurable via a variable `PACKAGE_TYPE`.
-
Tim Jaacks authored
Instead of hard-coding the rules for manual builds in each actual job, conditionally add this to the `buildbase` class and add a variable `MANUAL_BUILD` to the according jobs.
-
Tim Jaacks authored
Image and SDK builds share a lot of similar code. Instead of having two job classes `build_yocto_image` and `build_yocto_sdk` for these two tasks, merge them into the base class `build_yocto` and make the differences configurable via a variable. The `dump_install_command` part of the script, which was not executed for SDK builds, is always present now, but it's only executed if the `INSTALLSCRIPT` variable is set, which is not the case for SDK builds. The `collect_srcrevs` part of the script is executed in all cases. It was not part of the SDK build before, but it's not less relevant there.
-
Tim Jaacks authored
Instead of specifying all possible artifacts paths and abusing the fact that GitLab ignores non-existing paths during artifact upload, implement a cleaner solution with a configurable path.
-
- Feb 10, 2023
-
-
Jonas Höppner authored
-
- Feb 06, 2023
-
-
Tim Jaacks authored
Instead of hard-coding the project list in the changelog generator script, make them passable via arguments. This way we can have different changelogs in different envrionments. Hence we're adding the changelog job in the ci-test environment as well.
-
- Dec 19, 2022
-
-
Tim Jaacks authored
-
- Aug 30, 2022
-
-
Tim Jaacks authored
-
- Aug 29, 2022
-
-
Tim Jaacks authored
MANIFEST_PROJECT, MASTER_BRANCH_MANIFEST, MASTER_BRANCH_PROJECT
-
- Aug 05, 2022
-
-
Jonas Höppner authored
-
- Jul 13, 2022
-
-
Jonas Höppner authored
The images from the build job can be directly installed from gitlab. To achive this some changes in the complete pipeline have been needed. 1. The variables used in the build job, like CI_PARAM_IMAGE, ... and related variables like BUILDPATH are only valid in the build job now. 2. The build job writes every variable needed in a follow up job into build.env. This also includes the url to the fng-install.sh of the final image. 3. The build.env file is used as dotenv artifact, as well as normal file artifact. The dotenv make the written variables automatically available in follow up jobs, that are using the aritfacts, like the deploy job. The normal file artifact is available via artifact download. (I did't found a way to download the dotenv file instead) 4. Some scripts have been added: - Find a job inside the pipeline by name, as the id is not known in advance. - Download all artifacts or one file of the artifacts from a given job - Download one file of the latest job by name 5. The scripts are used to download the build.env into the test job (where not artifacts are needed anymore) 6. The script is sourced and all variables are available inside the script. Additionally this adds a fake build job to the ci-test pipeline, that copies an image from srv73 and stores it as artifact in a way that a test-job can run on it, like in the normal yocto pipeline.
-
- Jul 12, 2022
-
-
Tim Jaacks authored
This shares YAML code for the following procedures: - Build environment - Source code checkout via repo - SSH key and known hosts setup - LAVA test submission - Docker check if build folder is empty
-
- Jul 07, 2022
-
-
Jonas Höppner authored
-
- Jul 05, 2022
-
-
Jonas Höppner authored
Some gitlab update(?) seem to have changed the behaviour in variable passing. In the scripts the variables are available but in the artifacts path does not resolve them any more. May be it has something to do with the introduction of the trigger:forward keyword.
-
- Jun 28, 2022
-
-
Jonas Höppner authored
-
- Jun 21, 2022
-
-
Tim Jaacks authored
Combine all common yaml parts in manifest-pipeline.yml and add manifest-pipeline-yocto.yml and manifest-pipeline-ci-test.yml containing the different variable assignments for each environment. This change implicitly introduces parent-child build job generation in the ci-test pipeline, like it is done in the yocto pipeline already. The ci-test build jobs have been moved to build-jobs-ci-test.jinja2 accordingly. Furthermore rename GITLAB_CI_CURRENT_REV to GITLAB_CI_REVISION and remove the run conditions from all generated build jobs, since these are already present in the upstream trigger job. The repos including these files have to be updated with the new file and variable names.
-
Tim Jaacks authored
The job generation script implicitly passes the OS environment to the template, so that the template has access to all GitLab CI variables. Hence there is no need to explicitly pass any of them as command line arguments. This change makes the "generate-build-jobs" job more generic, so that it can be shared with the ci-test pipeline in the future.
-
- Jun 13, 2022
-
-
Jonas Höppner authored
If the MASTER_BRANCH_MANIFEST variable is set in the manifest's .gitlab-ci.yml file, it may not find its way to the generated job, if it is not explicitly set during generation. That is done with this patch.
-
Jonas Höppner authored
* Move all build, deploy and test stubs to the manifest-build.yml * Create a new job to generate and trigger the build jobs dynamically * Add the base jinja2 file for the build jobs. * Add initial docs for the manifest pipeline * Remove unused files
-