Re: [OS-BUILD PATCH] Run MR testing in CKI pipeline

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Fedora General Discussion]     [Older Fedora Users Archive]     [Fedora Advisory Board]     [Fedora Security]     [Fedora Devel Java]     [Fedora Legacy]     [Fedora Desktop]     [ATA RAID]     [Fedora Marketing]     [Fedora Mentors]     [Fedora Package Announce]     [Fedora Package Review]     [Fedora Music]     [Fedora Packaging]     [Centos]     [Fedora SELinux]     [Coolkey]     [Yum Users]     [Tux]     [Yosemite News]     [KDE Users]     [Fedora Art]     [Fedora Docs]     [USB]     [Asterisk PBX]

  Powered by Linux