Skip to content
Snippets Groups Projects
  1. Oct 16, 2023
    • GitBot's avatar
      Integrate gitlab-ci/build-documentation-in-dedicated-job and 10 more · 8a424745
      GitBot authored
      --
      
      Commit: seco-ne/yocto/infrastructure/gitlab-ci@0a3b1406
      
      Confluence: get only those build jobs with a corresponding successful deploy job
      
      We cannot handle build jobs and deploy jobs similarly, because all build
      jobs are successful usually, while not all deploy jobs necessarily have
      run. Get build.env only from those build job which have a corresponding
      successful deploy job, otherwise MACHINE and SUPPORTED_HARDWARE fields
      always contain the full list of built platforms, even if they might have
      not been deployed.
      
      --
      
      Commit: seco-ne/yocto/infrastructure/gitlab-ci@97228cdb
      
      Move MACHINE variable from deploy.env to build.env
      
      The Confluence stage is the only stage that needs the MACHINE variable.
      Since the collect_release_information script already loads the build.env
      from the build jobs, there is no need to store this variable in
      deploy.env.
      
      --
      
      Commit: seco-ne/yocto/infrastructure/gitlab-ci@ba156b0f
      
      Confluence: check if variables are defined
      
      --
      
      Commit: seco-ne/yocto/infrastructure/gitlab-ci@cae6e282
      
      Confluence: improve variable passing to template
      
      Use a general mechanism of storing all job variables for each build job
      separately, so that we have all documentation files in the
      FILES_documentation variable. This makes the dedicated HTML_FILES
      variable obsolete.
      The merged variables are still kept, though, so that we have all
      machines in the MACHINE variable to loop over.
      
      --
      
      Commit: seco-ne/yocto/infrastructure/gitlab-ci@41f8a49f
      
      Confluence: add error handling if artifact not found
      
      --
      
      Commit: seco-ne/yocto/infrastructure/gitlab-ci@1a519057
      
      Make documentation files configurable
      
      This disables the documentation jobs for SDK and FNGSystem.
      
      --
      
      Commit: seco-ne/yocto/infrastructure/gitlab-ci@303e24eb
      
      Build documentation in dedicated job
      
      Previously the documentation files were rendered as part of the package
      jobs. Each package job converted the same set of static markdown files
      to HTML files, which was redundant.
      
      Add dedicated jobs to build, package and deploy the documentation files.
      
      Modify convert_md2html.py to support file globs as arguments.
      
      --
      
      Commit: seco-ne/yocto/infrastructure/gitlab-ci@838da585
      
      Refactoring: move Alphaplan stage code to the end
      
      This reflects the stage order in the code.
      
      --
      
      Commit: seco-ne/yocto/infrastructure/gitlab-ci@ff31d083
      
      Refactoring: use multiple MACHINE loops for better structure
      
      This is a preparation for adding dedicated documentation jobs. In order
      to have these grouped by stage along with their corresponding machine
      jobs, we have to get rid of the giant outer loop and add loops for each
      stage instead.
      
      --
      
      Commit: seco-ne/yocto/infrastructure/gitlab-ci@69973c95
      
      Deploy: save deployed files in dotenv variable instead of dedicated file
      
      Previously the deployed files were stored in a dedicated text file
      called files.txt. Move this information to a dotenv variable called
      FILES, so that we don't need special handling for it in the Confluence
      stage.
      
      --
      
      Commit: seco-ne/yocto/infrastructure/gitlab-ci@45d04033
      
      Remove disabling sourcery low-code-quality in package_release
      
      This check is not failing anymore since the latest refactorings.
      8a424745
  2. Sep 28, 2023
  3. Sep 25, 2023
  4. Sep 18, 2023
  5. Sep 15, 2023
  6. Sep 14, 2023
  7. Sep 08, 2023
    • GitBot's avatar
      Integrate gitlab-ci/remove-release-name-from-deploy-target and 10 more · 9553e8e3
      GitBot authored
      --
      
      Commit: seco-ne/yocto/infrastructure/gitlab-ci@f2a29f53
      
      Refactoring: remove RELEASE_NAME from deploy targets
      
      Append it to the configured target at the deploy class level instead.
      This removes the need for eval'ing the variables before usage.
      RELEASE_NAME can be used directly at the class level because it is known
      from build-version.env.
      
      This makes the deploy behavior identical to the Azure stage.
      
      --
      
      Commit: seco-ne/yocto/infrastructure/gitlab-ci@e136e5e2
      
      Remove top-level "release" folder from package
      
      --
      
      Commit: seco-ne/yocto/infrastructure/gitlab-ci@1d5e479f
      
      Define MACHINE variable on job level
      
      Instead of passing MACHINE from stage to stage or loading it from
      testdata.json, use the original value from the Jinja2 loop and set it
      directly for each job where it is used.
      
      --
      
      Commit: seco-ne/yocto/infrastructure/gitlab-ci@cdd47023
      
      Introduce separate variables to set RELEASE_NAME and RELEASE_VERSION
      
      The expressions to calculate RELEASE_NAME and RELEASE_VERSION cannot be
      stored within these variables themseselves. If set on the trigger level,
      they would override the calculated values in build-version.env then,
      as trigger variables always have the highest precedence.
      
      Use separate variables RELEASE_VERSION_EXPRESSION and
      RELEASE_NAME_EXPRESSION to define how RELEASE_VERSION and RELEASE_NAME
      are calculated instead.
      
      --
      
      Commit: seco-ne/yocto/infrastructure/gitlab-ci@372d192b
      
      Use RELEASE_VERSION and RELEASE_NAME from build-version job
      
      Instead of passing these variables from stage to stage or regenerating
      their values in later stages, use the ones set in the build-version job
      at all places.
      
      --
      
      Commit: seco-ne/yocto/infrastructure/gitlab-ci@cad30c20
      
      Remove RELEASE_SUFFIX variable
      
      The RELEASE_NAME variable can be set directly now, so there's no need to
      have a dedicated RELEASE_SUFFIX anymore. A previous configuration like
      
        RELEASE_SUFFIX: "-custom"
      
      can now be achieved using:
      
        RELEASE_NAME: "Yocto-${RELEASE_VERSION}-custom"
      
      --
      
      Commit: seco-ne/yocto/infrastructure/gitlab-ci@922f49f8
      
      Add yocto version job
      
      This adds a machine-independent job "build-version" which populates the
      RELEASE_VERSION and RELEASE_NAME variables, so that following jobs can
      use these without depending on the various build jobs.
      The variables can be set from the trigger job in a project's
      `.gitlab-ci.yml` file. They are eval'ed before saving them to
      version.env, so we can use deferred variable expansion or even command
      execution to construct their values. This mechanism is already used for
      the Flash-N-Go System variables.
      
      --
      
      Commit: seco-ne/yocto/infrastructure/gitlab-ci@073ae81e
      
      LAVA: rename MACHINE to LAVA_MACHINE
      
      Rename variable in order to avoid confusion with the original MACHINE
      variable used everywhere else. Also rename the local Jinja2 variable to
      include an underscore to make naming consistent.
      
      --
      
      Commit: seco-ne/yocto/infrastructure/gitlab-ci@a91baa55
      
      Clean build.env before writing
      
      This had been accidentally removed in
      5e36715ef6cf98df4c1b98fedddc0c3c50ed4040.
      
      --
      
      Commit: seco-ne/yocto/infrastructure/gitlab-ci@1860ca8e
      
      Remove LOG_PREFIX variable
      
      This was used in times when the same code was executed from different
      places. We don't do that anymore, so the variable is obsolete.
      
      --
      
      Commit: seco-ne/yocto/infrastructure/gitlab-ci@3d2dbe4d
      
      Documentation: update job generation chapter
      9553e8e3
  8. Sep 04, 2023
  9. Aug 28, 2023
  10. Aug 24, 2023
    • GitBot's avatar
      Integrate gitlab-ci/add-azure-stage · 515427b8
      GitBot authored
      --
      
      Commit: seco-ne/yocto/infrastructure/gitlab-ci@e6808701
      
      Add "Deploy Azure" stage
      
      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.
      515427b8
  11. Aug 22, 2023
    • GitBot's avatar
      Integrate gitlab-ci/add-confluence-stage and 2 more · fb02f372
      GitBot authored
      --
      
      Commit: seco-ne/yocto/infrastructure/gitlab-ci@f8c1d732
      
      Add confluence stage
      
      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.
      
      --
      
      Commit: seco-ne/yocto/infrastructure/gitlab-ci@fee9493b
      
      generate-build-pipeline: re-add YAML format parsing
      
      This was accidentally forgotten in the previous commit.
      
      --
      
      Commit: seco-ne/yocto/infrastructure/gitlab-ci@9b777f29
      
      Rename "generate_job_from_template" script to "render_jinja2_template"
      
      This makes the script more general and open for other future purposes.
      The parsing of the YAML content is conditional now, depending on the new
      "format" argument.
      fb02f372
  12. Aug 11, 2023
  13. Jul 27, 2023
    • GitBot's avatar
      Integrate gitlab-ci/separate-images-in-multiple-pipelines and 1 more · 06ac1a04
      GitBot authored
      --
      
      Commit: seco-ne/yocto/infrastructure/gitlab-ci@9406ad75
      
      Yocto build: separate images in multiple pipelines
      
      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
      
      --
      
      Commit: seco-ne/yocto/infrastructure/gitlab-ci@447804d2
      
      .gitlab-ci: increase analyze timeout
      06ac1a04
  14. Jul 25, 2023
    • GitBot's avatar
      Integrate gitlab-ci/unify-image-and-sdk-package-jobs and 3 more · 44f528d4
      GitBot authored
      --
      
      Commit: seco-ne/yocto/infrastructure/gitlab-ci@5762a54c
      
      Yocto build: unify image and SDK package jobs
      
      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`.
      
      --
      
      Commit: seco-ne/yocto/infrastructure/gitlab-ci@8e72eac2
      
      Yocto build: add variable for manual builds
      
      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.
      
      --
      
      Commit: seco-ne/yocto/infrastructure/gitlab-ci@e6d71996
      
      Yocto build: unify image and SDK build jobs
      
      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.
      
      --
      
      Commit: seco-ne/yocto/infrastructure/gitlab-ci@f892500f
      
      Yocto build: make main artifacts path configurable
      
      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.
      44f528d4
  15. Jul 24, 2023
  16. Jun 02, 2023
  17. Apr 24, 2023
  18. Apr 04, 2023
    • GitBot's avatar
      Integrate gitlab-ci/depend-pipeline-execution-on-branch-protection-state and 2 more · d72f5ed2
      GitBot authored
      --
      
      Commit: seco-ne/yocto/infrastructure/gitlab-ci@939ade2b
      
      Depend intgration pipeline execution on branch protection state
      
      Previously we had the master branch hard-coded in a variable in order to
      determine whether to run the integration pipeline (on non-master branch)
      or the merge pipeline (on master branch). This variable had to be
      adapted everytime we copy a branch, which can potentially be forgotten
      and lead to problems.
      
      Remove the hard-coded branch and use the branch protection state for
      this decision instead in order to make this more flexible.
      
      --
      
      Commit: seco-ne/yocto/infrastructure/gitlab-ci@dbc49ad0
      
      Simplify yamllint job rules
      
      The rules for the yamllint jobs have been defined in the .yamllint class
      before. They were overridden in the manifest pipeline's yamllint job,
      though, which has its own rules, so we don't need them to be inherited
      in this case. And in the manifest integration pipeline the rules can be
      much easier, so define them there instead of at the class-level.
      
      --
      
      Commit: seco-ne/yocto/infrastructure/gitlab-ci@cd8de4ff
      
      .gitlab-ci: add analyze stage for limiting YAML script blocks
      d72f5ed2
  19. Mar 21, 2023
  20. Mar 20, 2023
  21. Mar 09, 2023
  22. Feb 28, 2023
  23. Feb 20, 2023
  24. Feb 10, 2023
  25. Feb 07, 2023
  26. Feb 06, 2023
  27. Jan 10, 2023
  28. Jan 09, 2023
  29. Jan 03, 2023
  30. Dec 20, 2022
  31. Nov 21, 2022
  32. Nov 10, 2022
  33. Oct 18, 2022
    • GitBot's avatar
      Integrate gitlab-ci/add-hide-ftp-upload-flag · 3c5acae9
      GitBot authored
      --
      
      Commit: seco-ne/yocto/infrastructure/gitlab-ci@a5e27f6e
      
      FTP upload: Add flag to hide FTP upload stage
      
      This is a workaround to prevent customer releases being uploaded to our
      public FTP area. It should be removed as soon as we support uploading to
      different FTP target folders.
      3c5acae9
    • GitBot's avatar
      Integrate gitlab-ci/add-release-suffix and 3 more · 93b5095b
      GitBot authored
      --
      
      Commit: seco-ne/yocto/infrastructure/gitlab-ci@543a2170
      
      manifest_package: add release suffix
      
      Customer specific manifest projects can now set the RELEASE_SUFFIX
      variable, which then gets appended to the deployment folder names.
      
      --
      
      Commit: seco-ne/yocto/infrastructure/gitlab-ci@c763c43f
      
      alphaplan_fwr: change variable "release_name_local" to "release_name"
      
      Otherwise it can be assumed that it might be correlated with
      outputdir_local, which is not the case.
      
      --
      
      Commit: seco-ne/yocto/infrastructure/gitlab-ci@2d8d26a5
      
      package_release: more refactoring
      
      - Make output-dir an argument that can be passed multiple times instead
        of hard-coding two dirs with certain meanings.
      - Remove LOCALDIR variable from package.env, because it is not used
        anywhere (only occurence was job class ".uploadsdkftp" which wasn't
        used anywhere either).
      
      --
      
      Commit: seco-ne/yocto/infrastructure/gitlab-ci@dc3698c8
      
      package_release: refactoring
      
      Improve readability of package_release.py and its submodule
      generate_release_metadata.py.
      
      - Add describing comments throughout the file.
      - Remove duplicate code from functions. Simplify them, so that they do
        what their names say (and nothing more).
      - Rename variables and function arguments to make their purpose clearer.
      - Harmonize variable names with their corresponding command line arguments.
      - Add pydoc for functions.
      - Add type declarations to function arguments.
      - Generate MD5 and metadata files in the source directories so that they
        can be copied along with the rest of the files.
      93b5095b
Loading