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

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

 



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




[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