I forgot that single patch MR's don't email the merge changelog, so there is no context here. Per https://gitlab.com/cki-project/kernel-ark/-/merge_requests/855 Currently all CI testing was done under the git tree kernel-ark-ci. The original reason was to avoid duplicate .gitlab-ci.yml files for os-build and ark-patches. Now that ark-patches is gone, that problem is resolved and we can move gitlab-ci.yml back. There was also the problem with the current CI testing constantly timing out. These changes try to address that by using CKI for most changes and reducing the workload for the scheduled jobs (but getting full git history instead of unshallowing later). This also introduces CKI properly into the Fedora/ARK CI workflow. Though the workflow stops at the dist-srpm stage. Most changes do not require more than that. We can expand to building and testing later. Sanity testing was done using the test-os-build branch (for schedule and other parts of the workflow). Tests triggered correctly and passed. I hope that helps. Cheers, Don On Tue, Jan 12, 2021 at 07:47:51PM -0000, GitLab Bridge on behalf of dzickusrh wrote: > From: Veronika Kabatova <vkabatov@xxxxxxxxxx> > > Updated to include schedule jobs and pages deployment (Don Zickus) > > Signed-off-by: Veronika Kabatova <vkabatov@xxxxxxxxxx> > --- > .gitlab-ci.yml | 179 ++++++++++++++++++++++++++++++++++++++++++++++--- > 1 file changed, 169 insertions(+), 10 deletions(-) > > diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml > index f4cf9dff3436..22abc74ec17c 100644 > --- a/.gitlab-ci.yml > +++ b/.gitlab-ci.yml > @@ -1,10 +1,169 @@ > -# CI definitions for ark-patches and internal are maintained in a single file > -# outside the main repository because the two branches are regularly merged > -# together in release branches. Rather than trying to keep the two branches in > -# sync or have merge conflicts each time we merge the two branches, the > -# definition is stored externally and included in each branch. > -# > -# To update any CI jobs, please submit any merge requests to > -# https://gitlab.com/cki-project/kernel-ark-ci/. > -include: > - - remote: 'https://gitlab.com/cki-project/kernel-ark-ci/raw/master/gitlab-ci.yml' > +# This CI will only work for project members. CI for public contributors > +# runs via a webhook on the merge requests. There's nothing you have to do if > +# you want your changes tested -- created pipeline will be automatically > +# linked in the merge request and appropriate labels will be added to it. > +# Changes to this file will NOT be reflected in the webhook testing. > + > +stages: > + - test > + - build > + - deploy > + > +workflow: > + rules: > + - if: $CI_MERGE_REQUEST_ID > + - if: '$CI_PIPELINE_SOURCE == "schedule"' > + > +trigger_pipeline: > + stage: test > + variables: > + # The following ones are required by CKI pipeline definition > + git_url: ${CI_MERGE_REQUEST_PROJECT_URL} > + branch: ${CI_MERGE_REQUEST_TARGET_BRANCH_NAME} > + commit_hash: ${CI_COMMIT_SHA} > + mr_id: ${CI_MERGE_REQUEST_IID} > + mr_url: ${CI_MERGE_REQUEST_PROJECT_URL}/-/merge_requests/${CI_MERGE_REQUEST_IID} > + title: ${CI_COMMIT_TITLE} > + name: kernel-ark-${CI_MERGE_REQUEST_ID} > + > + # We only need srpm so skip the rest of the stages > + kernel_type: upstream > + make_target: rpm > + builder_image: registry.gitlab.com/cki-project/containers/builder-rawhide > + builder_image_tag: latest > + srpm_make_target: dist-srpm > + skip_build: 'true' > + skip_publish: 'true' > + skip_test: 'true' > + > + trigger: > + project: redhat/red-hat-ci-tools/kernel/cki-runs/trusted-pipelines > + branch: kernel-ark > + strategy: depend > + > + rules: > + - if: '$CI_PIPELINE_SOURCE == "schedule"' > + when: never > + - when: on_success > + > +# scheduled job > +merge_upstream: > + image: registry.gitlab.com/cki-project/containers/builder-fedora > + variables: > + GIT_DEPTH: "0" > + GIT_CLONE_PATH: $CI_BUILDS_DIR/$CI_CONCURRENT_ID/kernel-ark > + before_script: > + - echo "fastestmirror=true" >> /etc/dnf/dnf.conf > + - dnf -y install python3-gitlab git openssh-clients dnf-utils gnupg2 > + - git config user.name "Fedora Kernel Team" > + - git config user.email "kernel-team@xxxxxxxxxxxxxxxxx" > + - echo "$PYTHON_GITLAB_CONFIG" >> ~/.python-gitlab.cfg > + # Need SSH since the clone is set up without write access. > + - eval $(ssh-agent -s) > + - echo "$PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null > + - mkdir -p ~/.ssh > + - chmod 700 ~/.ssh > + - echo "$GITLAB_KNOWN_HOSTS" >> ~/.ssh/known_hosts > + - chmod 644 ~/.ssh/known_hosts > + - git remote add gitlab git@xxxxxxxxxx:cki-project/kernel-ark.git > + - gpg2 --import "$TORVALDS_GPG_KEY" > + script: > + - git checkout --track origin/master && git describe > + - git checkout --track origin/os-build && git describe > + - export PROJECT_ID="$CI_PROJECT_ID" > + - make dist-merge-upstream-push || exit 1 > + retry: 2 > + rules: > + - if: '$CI_PIPELINE_SOURCE == "schedule" && $RAWHIDE_RELEASE == "false"' > + > +# scheduled job > +rawhide_release: > + image: registry.gitlab.com/cki-project/containers/builder-fedora > + variables: > + GIT_DEPTH: "0" > + GIT_CLONE_PATH: $CI_BUILDS_DIR/$CI_CONCURRENT_ID/kernel-ark > + before_script: > + - echo "fastestmirror=true" >> /etc/dnf/dnf.conf > + - dnf -y install python3-gitlab git openssh-clients dnf-utils gnupg2 > + - git config user.name "Fedora Kernel Team" > + - git config user.email "kernel-team@xxxxxxxxxxxxxxxxx" > + - echo "$PYTHON_GITLAB_CONFIG" >> ~/.python-gitlab.cfg > + # Need SSH since the clone is set up without write access. > + - eval $(ssh-agent -s) > + - echo "$PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null > + - mkdir -p ~/.ssh > + - chmod 700 ~/.ssh > + - echo "$GITLAB_KNOWN_HOSTS" >> ~/.ssh/known_hosts > + - chmod 644 ~/.ssh/known_hosts > + - git remote add gitlab git@xxxxxxxxxx:cki-project/kernel-ark.git > + - gpg2 --import "$TORVALDS_GPG_KEY" > + script: > + - git checkout --track origin/master && git describe > + - git checkout --track origin/ark-latest && git describe > + - git checkout --track origin/os-build && git describe > + - export PROJECT_ID="$CI_PROJECT_ID" > + - redhat/scripts/ci/ark-create-release.sh "master" "$CI_PROJECT_ID" || exit_code=$? > + - if [ $exit_code -eq 3 ]; then echo "Tag exists, halting" && exit 0; fi; > + - if [ $exit_code -ne 0 ]; then echo "Unable to create release tag" && exit 1; fi; > + - git push gitlab os-build > + - > > + for branch in $(git branch | grep configs/"$(date +%F)"); do > + git push \ > + -o merge_request.create \ > + -o merge_request.target=os-build \ > + -o merge_request.remove_source_branch \ > + gitlab "$branch" > + done; > + - git push gitlab "$(git describe)" > + - git push gitlab ark/* > + - git push -f gitlab ark-latest > + retry: 2 > + rules: > + - if: '$CI_PIPELINE_SOURCE == "schedule" && $RAWHIDE_RELEASE == "true"' > + > +test_docs: > + stage: test > + image: registry.gitlab.com/cki-project/containers/python > + before_script: > + - python3 -m venv ~/docs-venv > + - source ~/docs-venv/bin/activate > + - pip install sphinx > + - cd redhat/docs/ > + script: make SPHINXOPTS="-W" html > + rules: > + - if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "os-build"' > + changes: > + - redhat/docs/**/* > + > + > +docs: > + stage: build > + image: registry.gitlab.com/cki-project/containers/python > + before_script: > + - python3 -m venv ~/docs-venv > + - source ~/docs-venv/bin/activate > + - pip install sphinx > + - cd redhat/docs/ > + script: make SPHINXOPTS="-W" html > + artifacts: > + paths: > + - redhat/docs/_build/html/ > + rules: > + - if: '$CI_COMMIT_BRANCH == "os-build"' > + changes: > + - redhat/docs/**/* > + > +pages: > + stage: deploy > + image: registry.gitlab.com/cki-project/containers/python > + dependencies: > + - docs > + script: > + - mv redhat/docs/_build/html/ public/ > + artifacts: > + paths: > + - public > + rules: > + - if: '$CI_COMMIT_BRANCH == "os-build"' > + changes: > + - redhat/docs/**/* > -- > GitLab > _______________________________________________ > kernel mailing list -- kernel@xxxxxxxxxxxxxxxxxxxxxxx > To unsubscribe send an email to kernel-leave@xxxxxxxxxxxxxxxxxxxxxxx > Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ > List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines > List Archives: https://lists.fedoraproject.org/archives/list/kernel@xxxxxxxxxxxxxxxxxxxxxxx _______________________________________________ kernel mailing list -- kernel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to kernel-leave@xxxxxxxxxxxxxxxxxxxxxxx Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/kernel@xxxxxxxxxxxxxxxxxxxxxxx