From patchwork Wed Feb 19 02:56:55 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= X-Patchwork-Id: 13981448 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id C1030C021B0 for ; Wed, 19 Feb 2025 02:57:58 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.892316.1301329 (Exim 4.92) (envelope-from ) id 1tkaHP-0002lV-Dj; Wed, 19 Feb 2025 02:57:43 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 892316.1301329; Wed, 19 Feb 2025 02:57:43 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1tkaHP-0002jp-8F; Wed, 19 Feb 2025 02:57:43 +0000 Received: by outflank-mailman (input) for mailman id 892316; Wed, 19 Feb 2025 02:57:42 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1tkaHO-00020f-Iy for xen-devel@lists.xenproject.org; Wed, 19 Feb 2025 02:57:42 +0000 Received: from fhigh-a7-smtp.messagingengine.com (fhigh-a7-smtp.messagingengine.com [103.168.172.158]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 48a9ebc6-ee6d-11ef-9aa8-95dc52dad729; Wed, 19 Feb 2025 03:57:41 +0100 (CET) Received: from phl-compute-02.internal (phl-compute-02.phl.internal [10.202.2.42]) by mailfhigh.phl.internal (Postfix) with ESMTP id D80C11140205; Tue, 18 Feb 2025 21:57:40 -0500 (EST) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-02.internal (MEProxy); Tue, 18 Feb 2025 21:57:40 -0500 Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 18 Feb 2025 21:57:39 -0500 (EST) X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 48a9ebc6-ee6d-11ef-9aa8-95dc52dad729 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= invisiblethingslab.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm3; t=1739933860; x=1740020260; bh=/fLCth7Q/1 XRFnTxMsuFuruQj9l16HRepoNJ35BBnDA=; b=Jbf588YMjIlXs75RSWZRfr5EsR fGmEtntAgJh174aHoVQPB1/fXE7lP+7/BVyXwBGWlB+HCEduozMgWsFuEYT8htYu VUGmzjBEvU1F7wOJoXitXBfmasMLuyXRRrji44ZzdIRs5mGdDh3EiQJdvdOJCIBn h++yu+cUhuBbh8xSCVmw/c3FLsgHLXFrcSrfAMzFUtowTgeFcEMXWNkZmKGzCX0g cGt/sa0fevkCDhTyPwUUxX8iAoXtXBjZHVXh+pYaWiItGuvJj4bt1NmGRSOviwN+ D+IXkLOkSu4aNTaz6IGU9rPWVCi4/Tqp+iHwGh8dtF7jWiVE+wFAfZCExArw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1739933860; x= 1740020260; bh=/fLCth7Q/1XRFnTxMsuFuruQj9l16HRepoNJ35BBnDA=; b=Y dE9G14zx4ysIsJPxLKdgqG8rBmPijE4Hpw/SI7iPaHniD68MXTn4Q77m/QOjGgXo UV6Ph/eIpn41j2kfoXqNDGj1mZxvZuWYl8wMH8wQGYCYuXriaqGp0kNQVm07V7rD qTOzUvctAcu4xMZyol9VOK332vrcZHs+1ZwxzPzM0t5O4Brt+edvxQRpqTZdIr6v h/bGUssoTyfLrGa0Khpp3wKmQ0j7x3O4V6GwvoW/ygRNeNQgB5SG+1s3yPcCCERN JVSDubA2lIOoRyE0cnGNu2eH1Woe2JJjA9X44rH8E5Hw4Lk3jJaLi3sU+0Shqf8t Cy+tQOaN9eQtuFECwQc4Q== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgdeifedtjecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpggftfghnshhusghstghrihgsvgdp uffrtefokffrpgfnqfghnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivg hnthhsucdlqddutddtmdenucfjughrpefhvfevufffkffojghfgggtgfesthekredtredt jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu ggftrfgrthhtvghrnhepfeefjeeglefgtdefleevtdegtdegudelffetffeufeejveeife ejveefhfeikeevnecuffhomhgrihhnpehgihhtlhgrsgdrtghomhdpghhithhlrggsrdgt ohdrjhhpnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomh epmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgs pghrtghpthhtohepledpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepgigvnhdqug gvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdhrtghpthhtoheprghn ughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthhopehmrghrmh grrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhrtghpthhtohep rghnthhhohhnhidrphgvrhgrrhgusehvrghtvghsrdhtvggthhdprhgtphhtthhopehmih gthhgrlhdrohhriigvlhesrghmugdrtghomhdprhgtphhtthhopehjsggvuhhlihgthhes shhushgvrdgtohhmpdhrtghpthhtohepjhhulhhivghnseigvghnrdhorhhgpdhrtghpth htoheprhhoghgvrhdrphgruhestghithhrihigrdgtohhmpdhrtghpthhtohepshhsthgr sggvlhhlihhniheskhgvrhhnvghlrdhorhhg X-ME-Proxy: Feedback-ID: i1568416f:Fastmail From: =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= To: xen-devel@lists.xenproject.org Cc: Andrew Cooper , =?utf-8?q?Marek_Marczykowski-?= =?utf-8?q?G=C3=B3recki?= , Anthony PERARD , Michal Orzel , Jan Beulich , Julien Grall , =?utf-8?q?Roger_Pau_Monn=C3=A9?= , Stefano Stabellini Subject: [PATCH v3 5/5] docs: add basic CI documentation Date: Wed, 19 Feb 2025 03:56:55 +0100 Message-ID: X-Mailer: git-send-email 2.48.0 In-Reply-To: References: MIME-Version: 1.0 Include info how to get access/enable hardware runners and how to select individual jobs. Signed-off-by: Marek Marczykowski-Górecki Reviewed-by: Stefano Stabellini --- new in v3 Definitely there can be more content here, but lets start somewhere. --- docs/index.rst | 1 + docs/misc/ci.rst | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 docs/misc/ci.rst diff --git a/docs/index.rst b/docs/index.rst index 1bb8d02ea357..bd87d736b9c3 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -51,6 +51,7 @@ kind of development environment. :maxdepth: 2 hypervisor-guide/index + misc/ci Unsorted documents diff --git a/docs/misc/ci.rst b/docs/misc/ci.rst new file mode 100644 index 000000000000..2803574fa2c0 --- /dev/null +++ b/docs/misc/ci.rst @@ -0,0 +1,35 @@ +.. SPDX-License-Identifier: CC-BY-4.0 + +Continuous Integration +====================== + +Xen Project uses Gitlab-CI for automated testing. Test pipelines for official +staging branches are at +``_. Developers can +schedule test pipelines in their repositories under +``_. + +Hardware runners +**************** + +Some of the tests are using dedicated hardware runners. Those are not available freely, but the access is granted to individual developers. To get access to them, ask on the ``#XenDevel:matrix.org`` Matrix channel. +After getting access to relevant runners, few extra changes are necessary in settings of the relevant "xen" gitlab project (under your ``_ namespace): + +1. Go to Settings -> CI/CD, expand the "Runners" section and enable relevant runners for your project. +2. Expand "Variables" section and add ``QUBES_JOBS=true`` variable for Qubes runners, and ``XILINX_JOBS=true`` for Xilinx runners. +3. Go to Settings -> Repository, expand "Branch rules" section and add a rule for protected branches - only those branches will get tests on the hardware runners. It's okay to use a pattern for branch name, and it's okay to allow force push. + +Selecting individual tests +************************** + +Normally, all build and test jobs are scheduled in a pipeline. When working on a specific patches, it is sometimes useful to run only jobs relevant for the current work - both to save time and to save CI resources. This can be done by seeting ``SELECTED_JOBS_ONLY`` variable when starting the pipeline. The variable holds a regular expression, enclosed with ``/`` that matches jobs to be included. The variable can be set via the gitlab.com web UI or directly when pushing changes to gitlab:: + + git push -o ci.variable=SELECTED_JOBS_ONLY="/job1|job2/" + +Note if a test job requires some build job, both need to be included in the regex. For example, ``adl-smoke-x86-64-gcc-debug`` requires ``alpine-3.18-gcc-debug``, so to run just this test the command will look like this:: + + git push -o ci.variable=SELECTED_JOBS_ONLY="/adl-smoke-x86-64-gcc-debug|alpine-3.18-gcc-debug/" + +More details at ``_. + +Alternatively, irrelevant jobs can be removed from respective yaml files in ``automation/gitlab-ci`` by adding temporary commit on top of the branch.