Skip to content
Snippets Groups Projects
Commit cd20dd48 authored by GitBot's avatar GitBot Committed by Tobias Kahlki
Browse files

Integrate gitlab-ci/CI-deploy-yocto and 99+ more

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/04cd24f23863acb3ff54535ec166c0c7734abe4e

CI: Remove debug, enable yocto manifest deploy

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/89bed7e6841bb0bba9a8dcc221060b8f772f59c2

CI: Add function to merge the gitlab-ci MRs

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/b9cb9a29a80973721956fb6c153c5bc9bfb51dde

CI: Add function to merge the gitlab-ci MRs

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/25d7cabdb130955c0754c3742a5be2e4b747c491

CI: Harmonize foobar and yocto CI files

Also set yocto deploy job to manual to test merge.

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/2cdf882e1e25e6c9e072d3b4e4160a3f3a1b6c54

CI: Enable analyze stage again in .gitlab-ci.yml again

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/26bd3edfe3ba62745cb5484422b366cccd609aab

CI: Add common.yml containing common code for manifest and integration.

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/8bfa443a1550db2b464166f0a69db6f01bcb6c0b

CI: Use only one stage for integration to allow parallel execution

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/bb392f5037b495a3c9f7dfa3ea7b340cf0163754

CI: Rewrite check job python file to use gitlab api (no clone anymore)

For projects like the kernel the git checkout needs a log of time and
space. Directly using the gitlab api only loads the infomation needed.

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/e60e50b1ff159331a257fb02fa77b2f38952c526

CI: Limit clone depth to 1 for speed

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/56b4cacb6f2a62b0dc325275585fe6673d453ba3

CI: Adapt manifests-integration.yml and manifest.yml for yocto projects

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/7cc7fa7701ec2713d3af7e8e21563163e600b4d7

CI: Add all yocto projects to the job list

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/b097a25350e1b4192c0b84aa6e7bb5a77477e3b6

CI: Generate .gitlab-ci.yml with include commands in deploy step

This change should be reverted after once used.
It is needed to initially add the include .gitlab-ci.yml in
all subprojects.

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/4f194e2141fc72023dcf0ace4651475839392f5b

CI: Check: integration branch may have multiple commits

As all projects are commited in the same branch the 'up-to-date' check
may not only check if the first parent commit points to the
master/dunfell branch. Now it is needed to loop through the history
until the integration branch's commit is found.

On fail a message is displayed which merge request needs to be
retriggered manually. This can now also be the 'parent'-MR that
triggered the complete chain.

The check job is used pipeline again.

The retrigger job also looks in the .gitlab-ci project for check jobs to
retrigger.

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/873ae97fa52ff62e515cf7681a383ed9a9ef608b

CI: Disable foobar manifest build for integration branch

BCS 746-000646

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/e081a8d8d4d4b6096f2b64fe450fa0d50de159b2

CI: Create integration branch optionally also when no submodule change is detected

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/4452c5cbe26b80b4559c95543c6258cbd8382f25

CI: Implement that a merge-request may also be specified with project!number

Before only the ID was used but the CI_OPEN_MERGE_REQUESTS variable has
the complete path.

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/e86d320a42e60f253a534a66e8cee4afe93b30e2

CI: Multideploy: Detect exiting integration branch

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/0ee24df09955c771ab2d06591ab98873a1bc115a

CI: Deploy: create integration branches and trigger pipelines in subprojects

Allow deploy_gitlab_ci to change multiple projects at once.
Use it to create integration branches and merge requests in all
projects.

Add a python file to generate a job yml from jinja2 template.
Add a template for the jobs to trigger. These execute the actual
integration in all 'subprojects'.
Create the yml file in the deploy job and trigger it in a new trigger
job.

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/6b6d57180c086b313399d268605e39f903d96358

CI: Add common gitlab-ci file for all yocto repositories.

Create a merged version of the gitlab-ci files from the layers and the
repositoried referenced by the SRCREV file to be included in the
projects, to replace the project-individual implementation.

BCS 746-000646

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/369e59b3f333487c032a21a69eb4f1445f821c52

CI: Update include file's ref in gitlab-ci.yml when deploying changes

Add update gitlab-ci file with function to adapt the include ref to a
given revision.
Add a 'pre-commit-hook' to the update-submodule function.
Adapt deploy_gitlab_ci to use these to update the include statement in
the base project .gitlab-ci.yml to use the same ref as the submodule
is set to.

BCS 746-000646

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/ce59c40987d7a247d6e0eae713fc806237ace207

CI: deploy_gitlab_ci: Move one-time code to own function as reference

Initially the moved code was needed to create the files including the
new implementation.

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/b86fe23805678b5183fe3411dda3a42d697cbe38

CI: merge_into_manifest: Check if a commit is already merged

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/daa4cbeed2fad173a436d3d5c484b43dbddaa25a

CI: Move the loop to check if a revision is related to another to common

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/3e491ba0735c42e431609468a1b06a212e5905c4

CI: Add new file to query the revision for a project from the manifest.

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/633e40df8078a6ffcb7b937ac0ecec66e78d485d

CI: Remove foobar projects from the yocto project list

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/7ce0fd7430aa162965ea7fa411806b8379ebf220

CI: merge_gitlab_ci: Improve error handling.

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/7381d5983371f0bedd89d6c40db6c600932909e6

CI: merge_into_manifest: Fix already merged detection

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/5bb84a04cd6de815350f7dbcf59dd04c2b94a6f7

CI: Merge_into_manifest: Fixes for merge detection

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/285ce1951cc2ce2f6a0c390a6ece5042d930e95a

CI: Merge_into_manifest: Fixes for merge detection

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/2aeb899ae3a3ad32ccac3b15f7025d42de5d5dac

CI: merge_gitlab_ci: Fix some post merge issues

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/3f293145ca987e3ea3bfb7b1530485167d011a77

CI: merge_gitlab_ci: Fix for merge.

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/0a7d845ea64bf85363f1ce58229223bb0f9ac0d1

mainfest-CI:package_release: Increase timeout for ftp upload

Added additional log output for sdk upload.

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/5cb383e6e87bb5860dcfd9a3d2b4726e8202dd42

alphaplan_fwr:manifest-CI: Cleanup

Remove alphaplan_fwr debug code and run black and pylint.

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/adddfca255410c5b211631cef79a604c17b3ddaf

package_release: Move metadata generation function to a separate file

To improve the readability of the package_release.py script.

BCS 746-000734

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/5a60fd6a844e2f161aee2aa1121974b7a300b922

package_release: Improve md5sums.txt file creation

Now md5sums.txt can be assembled from different copy processes.
The build md5sums file is not overwritten by the license copy process
anymore.

BCS 746-000637 746-000734

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/68f1959f3948d0b1ed18a6d9229eb4efa5730545

package_release:manifest-CI: split alphaplan FWR generation and package_release

The alphaplan FWR generation is now separated to make the manifest gitlab-ci
file more easy to understand and reduce the complexity of the
package_release file.

BCS 746-000637

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/5c3ac7a26ba751f31a2832f06778f5135b07f021

CI: merge_into_manifest: Fix detection of gitlab-ci integration branch

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/3dbeefbdf9c50c2ad55e8e39ebfe3b7eb983e93f

CI: merge_gitlab_ci: Remove deletion extra deletion of integration branch.

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/227bccb6f9def1cde91174afef585c8ffdc12e1b

CI: Debug messages

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/98c8fdf5daee69b0ed21c357c9bc5502faa6b7d7

CI: merge gitlab-ci: manifest is merged at last

The merge job of a subproject include in the merge request merged by
gitlab ci, should not merge the integration branch in the manifest by
themself. This is now disabled by checking the source branch name.

This allow to merge the manifests commit at last.

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/e8c2f2214402955c1dc3fd2b43e5e2a642545d03

CI: Enable analyze stage again

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/c7f8bf0db4e4eecc12b5710fb0f9c8bfceba4e2f

CI: Integration job is now optional, remove check job

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/55e34b981856d953a0dc0b73c1f3bda608cdbbf9

CI: Rename gitlab-ci jobs

Tim suggested to use the same name scheme for all jobs and use the group
names yocto and gitlab-ci as base.

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/3318487d518476135ce978fe3fa3a113ca29295f

CI: integrate_into_manifest: Fix bug introduced when splitting functions

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/4c74c580f08a1432d7bd89cf2967abbb7e071bf4

CI: disable 'check' job for gitlab-ci integration as integrate is already disabled

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/5d1fb5c4a3613690375c76cb97204eddf9dcd4ac

CI: Enable MR pipeline for integration of gitlab-ci again

Our settings refuse to merge if no pipeline has been run.

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/69d604a4fe09fefe779eb1599da7ff29d86c7c0c

CI: Fix merge pipeline

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/31d6d7dad54ab322345a6f44b3ff913341500f1c

CI: deploy_gitlab_ci: Rework the deployment of gitlab-ci into the child projects

The deploy_gitlab_ci now creates the integration commit and branch in
each passed subproject and create an integration commit in the manifest
containing all these new revisions.
A build is then triggered on this commit to test the functionality.

Split the update_submodule functions to reuse them in different ways.
Remove some previously used files.

BCS 746-000740

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/ab3189781f0b0e97c23c7719a5fdbccbf0c4db39

CI: integrate_into_manifest: Fix integration for recipes in SRCREV file

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/976aaec9d9c6ef10defd4b3a7329d366452bd522

CI: deploy_gitlab_ci: Fix merge, integration branch was used after delete

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/65c6f273b63e4d1beca064f6edb3073321fd5cea

CI: Rename foobar to ci-test, like the job names

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/60c311abd4930bf490f13ab13bf2534e160bf842

CI: Reuse existing integration branch preserving manual changes

--

Commit: https://gitlab.com/SECO-Northern-Europe/yocto/infrastructure/gitlab-ci/-/commit/3e948f5db0c926a1226746fd597b5a53163a0796

manifest: check if docker build folder is empty

BCS DevOps-000035

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@c917791b

Fix remote name on retrigger stage

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@1ba52853

Move repositories to git.seco.com

Rename variable JENKINSGUF_SSH_PRIVATE_KEY / SSH_PRIVATE_KEY to
GITLAB_PRIVATE_KEY on this occasion, because it contains a private key
that was generated exclusively for this use case. The according public
key has been added as a deploy key in GitLab to all repositories that
this repository needs access to.

Add more detailed documentation concerning this configurationdirectly in
the gitlab-ci files.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@6c3a8ff7

CI:package_release: Remove "GUF-" prefix from gitlab artifacts dir

BCS 746-000637

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@d809d630

manifest-CI: Refactor manifest pipeline files

* Split up build and package steps in separate files
* Add additional comments
* Add log output

BCS 746-000637

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@f2b7ec90

CI: Remove build for dual espresso again

The pipeline is not setup to build from different manifest and so on,
and the dual_espresso manifest will probably go to a seperate repo
to keep it private.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@b81d573a

CI: Remove '--verbose' from deploy step

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@c1ebf70c

manifest: Added manifest file selection to ci-test

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@1285aad7

manifest: Added manifest file name to integration script

BCS 746-000518

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@dc6d7858

build: Added DualEspresso

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@0941262a

layers: Added nogplv3 and dual-espresso layer to CI/CD

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@3b5e9be0

CI: Pull new changelog_generator image, add token to the call.

BCS 746-000785

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@968886c0

Update README.md: Add description on the gitlab-ci CI and how to deploy

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@bcb6076b

CI: Add check if integration branch is on top of target branch before reusing it

The integration branch was reused even if there where new commits on the
target branch, which could lead into reverting some changes.
This adds a check, if the existing integration branch is directly based
on the target branch and deletes it if not.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@6f09c66c

CI: deploy-gitlab-ci: Don't stop integration when one project is already updated

Prior to this change the integration stop when one of the
projects had already the latest ref of gitlab-ci in to submodule.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@6c39166f

CI: deploy-gitlab-ci: Don't stop integration when one project is already updated

Prior to this change the integration stop when one of the projects had
already the latest ref of gitlab-ci in to submodule.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@aaac8d1c

changelog_generator: Use logging instead of print, fix black

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@79afb233

CI: Move changelog_generator to gitlab-ci project

The script can also be run in the normal python container, so this
slightly reduces the complexity.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@383a5aca

Added qt-multi-screen-compositor to project list

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@3e88ad8e

buildfng: Moved the image and distro variables to global

The image and distro for the buildfng job can now be set via
global/external variables.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@751fc360

Improve CI documentation

BCS 746-000636

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@2d2210b6

CI: deploy-gitlab-ci: Don't stop integration when one project is already updated

Prior to this change the integration stop when one of the projects had
already the latest ref of gitlab-ci in to submodule.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@67b0195a

CI: Increase infrastructure timeout to 10min

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@a06956de

Rename layers to seconorth

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@6fbbf338

CI: Add fake lava test to ci-test, reduce fetch depth in update submodule

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@d820110c

CI: Add variable containing the port for ssh access of the gitlab instance

Our server installation uses port 4444 for ssh access. The lava tests
didn't took this into account.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@ad9d367e

Allow check job to fail

This makes merging a project MR possible even if the manifest has
received new commits since the MR pipeline build has run. The developer
is responsible for deciding whether it is safe to merge it without
having a build based on the latest manifest.

BCS 746-000794

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@81c2ad85

merge_into_manifest: fix error message if MR already exists

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@5e514076

Add possibility to skip MR pipeline check via label

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@ee151673

Add possibility to skip MR pipeline build via label

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@0885629d

Document "skip build" label

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@e6980d48

Update meta-seconorth-dual-espresso path

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@83002e07

accept_merge_request: explicitly check if MR has merge conflicts

According to the documentation [1] we should get a 406 error from the
API if we try to merge a merge request which has a merge conflict. We
are experiencing a different behaviour, though, where we are getting a
405 error in this case. There is an open GitLab issue on this topic [2].

In our error handling we assumed that the reason for a 405 error is most
likely a required pipeline which is still running. This assumtion,
however, leads to wrong behaviour in cases where no pipeline is started
at all.

Fixing this now by explicitly checking for merge conflicts at the very
beginning of the error handling sequence.

[1]: https://docs.gitlab.com/ee/api/merge_requests.html#merge-a-merge-request
[2]: https://gitlab.com/gitlab-org/gitlab/-/issues/364102

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@1bc683d5

Move python scripts to subfolder

BCS 746-000808

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@2e6c1b4f

Build jobs: Use parent-child jobs to generate needed build jobs

* 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

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@d9660a80

build-jobs.jinja2: Specify master branch variable again

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.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@686323c6

Remove yaml redundancies in manifest-integration

Leave all common yaml parts in manifest-integration.yml and add
manifest-integration-yocto.yml and manifest-integration-ci-test.yml
containing the different variable assignments for each environment.

The repos including these files have to be updated with the new names.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@4c751096

Harmonize manifest-integration yaml files for yocto and ci-test

This is the first step for reducing code duplicates.

BCS 746-000807

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@c877f9c9

retrigger: Allow to specify the manifest's remote identifier in a variable

Costum manifest may override this variable

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@2b2bc220

Define yamllint job explicitly in each pipeline

The yamllint job was included in the pipeline implicitly via the
inclusion of common.yml. This is not very transparent. Make the common
definition a base job and extend it explicitly in each pipeline now.

Add infrastructure stage comment header into both yaml files.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@7f68f307

Yocto manifest build: re-enable build:merge_request job

This job was accidentally disabled in 2e6c1b4, because it was included
in the generated child pipeline. This pipeline is not created on the
master, though, so the condition for the job was never met.

Move the job to the parent pipeline again, so that it gets executed on
the master like before.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@970c7fd7

Re-add yamllint stage to ci test manifest pipeline

Was accidentally removed in previous commit.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@9b8cf51c

Share manifest pipeline for ci-test and yocto

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.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@c1b939fe

Use CI variables in build template directly

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.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@775c09c1

Add gitlab_backup script to download all project exports of a gitlab group

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@0dd147c8

SDK: Remove package step from build sdk, add sdk to artifacts, create deploy_sdk

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@ecab2962

Manifest: include yamllint in full pipeline

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@a4071423

Manifest pipeline: run full build pipeline when triggered via web UI

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@8862b213

Manifest refactoring: move job rules into classes

This way they can be reused instead of redefining them in each job.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@d604b330

Fix wrong remote name in ci-test pipeline

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@e810c2ac

Fix wrong manifest project ID for ci-test pipeline

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@f39e65ab

Manifest: really include yamllint in the full pipeline

Previous commit did not have the effect due to wrong extend order.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@dc0503b6

CI: Hardcode the artifacts path in the generated job description

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.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@ea3aa816

CI: Readd allow_failure:true to fix not finished pipelines

According to the docs a manual job always has allow_failure set to
true, but we see a lot of jobs staying in an unfinished state since
the removal of the allow_failure: true keyword for the sdk and test
jobs. This should fix the broken behaviour.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@c503a6d4

CI: pipeline yocto: Change scope of CI_PARAM_IMAGE, ... to fix fngsystem build

The variables CI_PARAM_IMAGE, CI_PARAM_DISTRO, CI_MACHINE have been
defined outside the job in the '.gitlab-ci.yml' file. This has a lower
precedence then variables defined inside the job, but it seems that
these variables are used in the scope of 'Trigger variables' when
available in the trigger job. These override the value set in the
template. As main results this made FNGSystem jobs build the normal
yocto.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@6508e800

CI: Add hardcoded artifact's path generation also for fng system

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@075aeccb

Refactoring: share build and test job basics for ci-test and Yocto

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

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@ab09db0b

CI: Lava Test: Allow to install test image directly from gitlab

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.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@52bae4a1

Lava Testreporting: Add script to generate markdown report for given jobids

Adds scripts for mark down generation.
Adds scripts for lava test result queries.
Adds script to generate a mark down report from this data
Call script from submit_test to generate a report directly
after the testrun.

Integrate gitlab-ci/repo-do-not-exclude-tags and 30+ more

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@91dc115a

repo: do not exclude tags

We have created tags in our poky repo which are needed by repo, e.g.
https://git.seco.com/seco-ne/3rd-party/yocto/poky/-/tags/seconorth%2Fkirkstone-4.0.0

Do not explicitly exclude tags in order to fetch them.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@5c2defce

CI: prepare to work also with renamed machine names lime seco-mx6

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@ef08f4ef

deploy: Increase deploy timeout to 30min

Especially when downloading the SDK the deploy takes longer than 10min.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@968aaadd

build-jobs: Remove dump_install_command from buildsdk job

When the dump_install_command script is executed in the SDK build step
an error occurs because the fng-install script/vars are not available.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@fd742017

deploy_gitlab_ci: fix target branch in integration merge request

We need to pass the correct target branch to the merge request creation
instead of using the project's default branch.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@38379173

Run yamllint job on gitlab-ci integrations

Otherwise no pipeline is created at all in these merge requests, which
prevents the MR from being merged.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@dce4f8a3

changelog_generator: Fix machine project ID

We have deleted the original project due to git corruption. Replace with
the new project's ID.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@a7aa7c26

deploy_gitlab_ci: fix project argument passing

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@8a38f194

Put all manifest intgeration jobs into a single stage

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@a09564c1

deploy_gitlab_ci: explicitly pass gitlab-ci project and branch

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@172e7625

Improve error messages

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@f0f5a370

Improve naming of functions and variables

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@c8b484ca

Retrigger MRs from all integrating projects

Instead of getting the projects from the manifest file, search them via
their INTEGRATION variable.

Improve log messages on this occasion: print URL instead of just IDs.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@5e75bfc1

Deploy gitlab-ci to multiple branches

Add different integration jobs for different manifest branches. The
merge stage only has one job for each manifest, though, because
otherwise we cannot guarantee a consistent state for all branches.

Extend the deploy script for this purpose, so that it can deploy to
multiple manifest branches at once.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@771dcff1

Fix temporary dir path

We were passing the complete TemporaryDirectory object to the repo clone
function instead of just the path string, resulting in the repo being
cloned into a local dir "<TemporaryDirectory '/tmp/tmphwakypf8'>".

Fix this to actually use the generated temp dir.

This change makes it necessary to keep the TemporaryDirectory object
reference until we don't need the directory anymore, otherwise it will
be removed immediately.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@dce219c8

Print less important output in grey color

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@5e36261d

deploy_gitlab_ci: remove hard-coded integration targets

Get targets dynamically using the INTEGRATION variable instead.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@94cd6781

Recurse to child pipelines on retrigger

This makes it possible to retrigger jobs that are not part of the
given pipeline but in any nested child pipeline of it.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@fb1219a7

Ignore __pycache__ in scripts directory

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@0c29c995

Refactoring: rename arguments for consistency

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@d461090b

Remove hard coded project and branch variables

MANIFEST_PROJECT, MASTER_BRANCH_MANIFEST, MASTER_BRANCH_PROJECT

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@a4aae414

Add rules for integration pipeline

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@bfa38b24

Improve log messages

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@1c9670d9

commit_and_push: do not pass branch

Branch can be implicitly determined via the repo.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@3eef782e

deploy_gitlab_ci: integrate only correct projects into the manifest

Previously we integrated all projects into the manifest, even those that
belonged to a different manifest branch. That led to all manifests
having the same project revisions, even if they should be different due
to different intgrated project branches.

Save a list of integration sources for each manifest branch separately
now, so that we can check which project belongs to which manifest branch
later.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@2b851ac6

Fix potential error message in retrigger job

TypeError: 'NoneType' object is not subscriptable
Example:
https://git.seco.com/seco-ne/yocto/infrastructure/ci-test/minimal-manifest/-/jobs/127610

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@c3fd0ecc

Check if variable is defined before checking it value

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@c1be0f4b

Fix jinja2 "or" operator

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@8da534ec

Run integration pipeline for target branch only

When we're integrating a single branch into a single manifest branch,
there is no need to run the intgeration pipeline for all configured
integrations, but only for those that match the target branch of the
current merge request.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@8c94b725

ci-test: add job to check for correct foo branch

This should catch an error where during a gitlab-ci merge process the
wrong foo branch is integrated into the manifest, which happened in
Yocto.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@163c7e1e

Add yml extension to jinja2 templates

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@59523aa0

check job: disable verbose output

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@28bf0065

retrigger: add job states to log message

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@d25cdebf

Really fix potential error message in retrigger job

TypeError: 'NoneType' object is not subscriptable

Example:
https://git.seco.com/seco-ne/yocto/manifest/-/jobs/129201

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@a0f7e84f

Rename pipeline stages to reflect YAML filenames

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@f8d6de86

Make check error message more verbose

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@21e7edeb

Improve ci-test build

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@76bd81d8

Fix check job rules

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@a6721243

Move check job to parent pipeline

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@593784e1

Refactor check_if_integration_branch_is_up_to_date

- Use "source" and "target" terminology in the script, just like in the
  GitLab CI variables.
- Spefify data types for function arguments.
- Rename function arguments to better reflect their data types.
- Move determination of integration branch into main function, so that
  the successfull status message can be more verbose.
- Remove parent_merge_request feature and checking for gitlab-ci
  integrations, because the check job does not run on gitlab-ci
  integration branches at all.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@45b49ee3

Remove build stage on master

We don't need to explicitly trigger a build after merging changes in
gitlab-ci. A master pipeline on the target projects runs automatically.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@5e3dfaea

CI:deploy: fix fngsystem deployment path

The match to detect fngsystem still contained 'guf'. Changed to 'seco'.

BCS 746-001043

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@c831d1da

get_integration_sources: check if CI is enabled

Trying to query CI variables on a project which does not have the CI
feature enabled leads to an HTTP 403 (forbidden) error.
Check whether CI is enabled using the "jobs_enabled" flag.

--

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.

--

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.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@e48b4c0b

package_release: Do not fail if a file does not exist

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@9982711f

Move deploy jobs to deploy runner

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@d404f257

Alphaplan: allow failure on import

Otherwise the parent pipeline is stuck in "running" state until the
manual action has been performed. See for reference:
https://gitlab.com/gitlab-org/gitlab/-/issues/361574

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@dd2a6d7d

Fix error message

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@04ac29ad

CI-Test: fix deploy-files job

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@22c519f1

Move FTP jobs to FTP runner

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@84d0616b

Add new deploy pipeline to Yocto

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@f0436868

Move reusable parts from CI-Test to common

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@3d3b4d09

Yocto: fix SDK package

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@37360288

Yocto: fix SDK build

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@2b6fc739

Package: add comment

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@95d6e368

alphaplan_fwr_import: add error handling

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@277d4af7

Package & deploy: do not allow missing dotenv file

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@3c68ccab

Alphaplan: add script for importing alphaplan data

The script has mostly been copied from alphaplan_fwr.py, but with
different input data.

Adding a job to the CI-test environment for testing this.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@3b3238a1

Alphaplan: add script for generating alphaplan data

This script has mostly been copied from alphaplan_fwr.py, but with
different input data (artifacts from the SoftwareStore deploy job) and
without actually importing the data to the Alphaplan database.

Adding a job to the CI-test environment for testing this.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@387b8184

Deploy: save variables in deploy.env

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@902c9276

Deploy: save rsync file list for later stages

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@15622149

CI-test: use caching between the pipeline stages

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@a96a923e

CI-test: add deploy stages for SoftwareStore and FTP

Rename all stages to uppercase on this occasion, since we're adding
stages with names containing multiple words.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@056f1af1

Add package class and stage

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@a1972724

Add script to query job logs filtered by status, tag, and log pattern

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@d501fed4

Update isort config

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@28906544

Reduce artifact expiration of build jobs to 1 week

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@bab6f811

Package: move SDK files to subfolder "sdk"

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@8bcaa426

scripts: Add delete_job_artifacts script to delete all artifacts from untagged jobs

For a given project all artifacts may be deleted. This was needed due to
space limitations on the gitlab server.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@ea1f3bad

cancel_pipelines: include downstream pipelines

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@c8f97623

Add job to cancel outdated pipelines in merge requests

Everytime we push a new commit to a branch, a new pipeline is created.
Often the pipeline for the previous commit has not finished yet, and
GitLab does not automatically cancel it. It consumes valuable build
time, even if we don't need the results anymore.
Adding a MR pipeline job to search for previous pipelines on the same
branch and cancel them explicitly.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@897ba059

Manifest integration: remove dynamic job generation

The dynamic job was only necessary because GitLab did not expand
variables in the "trigger:project" keyword:
https://gitlab.com/gitlab-org/gitlab/-/issues/347469

This has been fixed in GitLab 15.3, so we don't need it anymore:
https://gitlab.com/gitlab-org/gitlab/-/merge_requests/92346

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@c657f31f

mirror_mr_pipeline: improve debug output

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@473f12b1

mirror_mr_pipeline: add main call

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@88708b64

Convert CRLF to LF

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@169b2fa7

Improve mirroring MR pipeline

Refactor three scripts into one in order to support triggering a new
pipeline in the case of a skipped MR pipeline. This was not possible to
implement with the previous three-script design. The single scripts
were not used in other places anyway.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@0264fe09

Changelog generator: get all merge requests

This fixes older releases not appearing in the changelog.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@e69d303e

Changelog generator: remove debug output

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@ed36b465

mirror_mr_pipeline: include pipeline-not-found message in output

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@5ee69ab9

mirror_mr_pipeline: fix error when no pipeline found

This case should trigger a new pipeline instead of reporting an error.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@8edbf2a6

Changelog generator: fix typo

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@e6ae06dd

Changelog generator: pass projects as arguments

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.

--

Commit: seco-ne/yocto/infrastructure/gitlab-ci@a59a93a0

Package: Add needs to changelog, to package changelog also
parent 45bf7c56
No related branches found
No related tags found
No related merge requests found
Subproject commit 610e4a46b18fd050a0cbf030a9a83ae01e764b22
Subproject commit a59a93a03ce80d179ecce8c5a3865b06f010a04c
---
# ---------------------------------------------------------------------------------------
# Global
# Include the default CI steps from the gitlab-ci repo
# ---------------------------------------------------------------------------------------
image: "${CI_IMAGES}/python/3.9:99e363bc5feaa27ff18dbe7731a76ff04d7d0deb"
stages:
- integrate
- merge
- build
- check
include:
- project: '${CI_PROJECT_ROOT_NAMESPACE}/yocto/infrastructure/gitlab-ci'
ref: a59a93a03ce80d179ecce8c5a3865b06f010a04c
file: 'manifest-integration.yml'
variables:
# CI_IMAGES_BASEPATH: Environment variable configure in gitlab
CI_IMAGES: ${CI_IMAGES_BASEPATH}/ci-images
# Include git submodules
GIT_SUBMODULE_STRATEGY: recursive
# FIXME: due to a missing feature in GitLab we cannot use this variable
# in the build stage further down this file. If it ever changes, it has
# to be changed there too.
# (https://gitlab.com/gitlab-org/gitlab/-/issues/249583)
MANIFEST_PROJECT: ${CI_PROJECT_ROOT_NAMESPACE}/yocto/manifest
MASTER_BRANCH_MANIFEST: dunfell
MASTER_BRANCH_PROJECT: dunfell
# We add the recipe name here to resolve the corresponding bitbake recipe.
# Otherwise a very strict repository <-> recipe naming would be required.
# The recipe name is used to modify the correct source version.
BB_RECIPE_NAME: guf-show-demo
workflow:
rules:
# Do not run pipelines on forked projects
- if: $CI_PROJECT_PATH == "SECO-Northern-Europe/tools/guf-show-demo"
&& $CI_MERGE_REQUEST_SOURCE_PROJECT_ID == $CI_MERGE_REQUEST_PROJECT_ID
# ---------------------------------------------------------------------------------------
# Stage: integrate
# ---------------------------------------------------------------------------------------
integrate:
stage: integrate
rules:
# We have to make sure that the pipeline runs for the current manifest
# master at the time a merge request is created. Otherwise we cannot
# guarantee a green master after merging.
- if: $CI_MERGE_REQUEST_IID
tags:
- infrastructure
timeout: 2m
cache:
policy: push
script:
- cd ${CI_PROJECT_DIR}
- .gitlab-ci/integrate_into_manifest.py
--gitlab-url=${CI_SERVER_URL}
--token=${GITBOT_TOKEN}
--manifest-project=${MANIFEST_PROJECT}
--integration-base=${MASTER_BRANCH_MANIFEST}
--project=${CI_PROJECT_PATH}
--merge-request=${CI_MERGE_REQUEST_IID}
--save-revision-to=manifest_revision
--recipe-name=${BB_RECIPE_NAME}
artifacts:
paths:
- manifest_revision
# ---------------------------------------------------------------------------------------
# Stage: merge
# ---------------------------------------------------------------------------------------
merge:
stage: merge
rules:
- if: $CI_COMMIT_BRANCH == $MASTER_BRANCH_PROJECT
tags:
- infrastructure
timeout: 3m
script:
- cd ${CI_PROJECT_DIR}
- .gitlab-ci/merge_into_manifest.py
--gitlab-url=${CI_SERVER_URL}
--token=${GITBOT_TOKEN}
--manifest-project=${MANIFEST_PROJECT}
--master-branch=${MASTER_BRANCH_MANIFEST}
--project=${CI_PROJECT_PATH}
--master-branch-project=${MASTER_BRANCH_PROJECT}
--commit=${CI_COMMIT_SHA}
--save-revision-to=manifest_revision
--recipe-name=${BB_RECIPE_NAME}
artifacts:
paths:
- manifest_revision
# ---------------------------------------------------------------------------------------
# Stage: build
# ---------------------------------------------------------------------------------------
build:
stage: build
rules:
- if: $CI_MERGE_REQUEST_IID
trigger:
project: SECO-Northern-Europe/yocto/manifest
branch: "integrate/${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME}"
strategy: depend
# ---------------------------------------------------------------------------------------
# Stage: check
# ---------------------------------------------------------------------------------------
check:
stage: check
rules:
- if: $CI_MERGE_REQUEST_IID
needs: ["integrate"]
tags:
- infrastructure
timeout: 2m
script:
- cd ${CI_PROJECT_DIR}
- .gitlab-ci/check_if_integration_branch_is_up_to_date.py
--gitlab-url=${CI_SERVER_URL}
--token=${GITBOT_TOKEN}
--manifest-project=${MANIFEST_PROJECT}
--integration-base=${MASTER_BRANCH_MANIFEST}
--project=${CI_PROJECT_PATH}
--merge-request=${CI_MERGE_REQUEST_IID}
GITLAB_CI_REVISION: a59a93a03ce80d179ecce8c5a3865b06f010a04c
BB_RECIPE_NAME: seco-show-demo
# FIXME: This is only necessary due to the following GitLab limitation:
# https://gitlab.com/gitlab-org/gitlab/-/issues/209904
# As soon as this gets fixed upstream, the hard-coded branch name should be removed.
MASTER_BRANCH: kirkstone
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment