From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F015861FCB for ; Tue, 12 Dec 2023 17:53:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Wg45atZY" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4673BC433C7; Tue, 12 Dec 2023 17:53:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1702403580; bh=uaAsNbOM63Iys74LXcUKBJqUJNRda9bw2asUjzHBMHM=; h=Subject:From:To:Date:In-Reply-To:References:From; b=Wg45atZYiuUW9qPEJoGX/oLA8uPKNMeOwhkUSsZ9sP1LchzL/5AFQl64akT+PCRai r6sRbHSYo0pFVffpKv32QARaUhSIzXPoWTRDRAlsAGmxhqb2vquB3jLlbRYsXwGr7x JI3Xo8Qd5iLLqLjGOo1qqbBlKIgU5vgBBARXnCsxqLIBApPiHSttDMRY6i/edf6Q2T NnSLfyrj9GOd/dmzmDtuoCfGP7JFQ/+iPYjIRNID8jEgLjh3o6CdT2B6SLpIDKXfz+ sHbv8C6r1b7OvRr9c1PM7MOAt/1Zw3aKixqiwARgFpsAwirjAEMzvmser33k7kAZyV RALjvGmChXUew== Message-ID: <46dd5e395eba02e71a2a321fdad33cc09fa436a7.camel@kernel.org> Subject: Re: [PATCH RFC 1/5] Add playbook for the git regression workflow From: Jeff Layton To: Chuck Lever , kdevops@lists.linux.dev Date: Tue, 12 Dec 2023 12:52:58 -0500 In-Reply-To: <170239859866.465055.695373279749357532.stgit@renoir.1015granger.net> References: <170239814820.465055.13743281413387457951.stgit@renoir.1015granger.net> <170239859866.465055.695373279749357532.stgit@renoir.1015granger.net> Autocrypt: addr=jlayton@kernel.org; prefer-encrypt=mutual; keydata=mQINBE6V0TwBEADXhJg7s8wFDwBMEvn0qyhAnzFLTOCHooMZyx7XO7dAiIhDSi7G1NPxwn8jdFUQMCR/GlpozMFlSFiZXiObE7sef9rTtM68ukUyZM4pJ9l0KjQNgDJ6Fr342Htkjxu/kFV1WvegyjnSsFt7EGoDjdKqr1TS9syJYFjagYtvWk/UfHlW09X+jOh4vYtfX7iYSx/NfqV3W1D7EDi0PqVT2h6v8i8YqsATFPwO4nuiTmL6I40ZofxVd+9wdRI4Db8yUNA4ZSP2nqLcLtFjClYRBoJvRWvsv4lm0OX6MYPtv76hka8lW4mnRmZqqx3UtfHX/hF/zH24Gj7A6sYKYLCU3YrI2Ogiu7/ksKcl7goQjpvtVYrOOI5VGLHge0awt7bhMCTM9KAfPc+xL/ZxAMVWd3NCk5SamL2cE99UWgtvNOIYU8m6EjTLhsj8snVluJH0/RcxEeFbnSaswVChNSGa7mXJrTR22lRL6ZPjdMgS2Km90haWPRc8Wolcz07Y2se0xpGVLEQcDEsvv5IMmeMe1/qLZ6NaVkNuL3WOXvxaVT9USW1+/SGipO2IpKJjeDZfehlB/kpfF24+RrK+seQfCBYyUE8QJpvTZyfUHNYldXlrjO6n5MdOempLqWpfOmcGkwnyNRBR46g/jf8KnPRwXs509yAqDB6sELZH+yWr9LQZEwARAQABtCVKZWZmIExheXRvbiA8amxheXRvbkBwb29jaGllcmVkcy5uZXQ+iQI7BBMBAgAlAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAUCTpXWPAIZAQAKCRAADmhBGVaCFc65D/4gBLNMHopQYgG/9RIM3kgFCCQV0pLv0hcg1cjr+bPI5f1PzJoOVi9s0wBDHwp8+vtHgYhM54yt43uI7Htij0RHFL5eFqoVT4TSfAg2qlvNemJEOY0e4daljjmZM7UtmpGs9NN0r9r50W82eb5Kw5bc/ r0kmR/arUS2st+ecRsCnwAOj6HiURwIgfDMHGPtSkoPpu3DDp/cjcYUg3HaOJuTjtGHFH963B+f+hyQ2BrQZBBE76ErgTDJ2Db9Ey0kw7VEZ4I2nnVUY9B5dE2pJFVO5HJBMp30fUGKvwaKqYCU2iAKxdmJXRIONb7dSde8LqZahuunPDMZyMA5+mkQl7kpIpR6kVDIiqmxzRuPeiMP7O2FCUlS2DnJnRVrHmCljLkZWf7ZUA22wJpepBligemtSRSbqCyZ3B48zJ8g5B8xLEntPo/NknSJaYRvfEQqGxgk5kkNWMIMDkfQOlDSXZvoxqU9wFH/9jTv1/6p8dHeGM0BsbBLMqQaqnWiVt5mG92E1zkOW69LnoozE6Le+12DsNW7RjiR5K+27MObjXEYIW7FIvNN/TQ6U1EOsdxwB8o//Yfc3p2QqPr5uS93SDDan5ehH59BnHpguTc27XiQQZ9EGiieCUx6Zh2ze3X2UW9YNzE15uKwkkuEIj60NvQRmEDfweYfOfPVOueC+iFifbQgSmVmZiBMYXl0b24gPGpsYXl0b25AcmVkaGF0LmNvbT6JAjgEEwECACIFAk6V0q0CGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEAAOaEEZVoIViKUQALpvsacTMWWOd7SlPFzIYy2/fjvKlfB/Xs4YdNcf9qLqF+lk2RBUHdR/dGwZpvw/OLmnZ8TryDo2zXVJNWEEUFNc7wQpl3i78r6UU/GUY/RQmOgPhs3epQC3PMJj4xFx+VuVcf/MXgDDdBUHaCTT793hyBeDbQuciARDJAW24Q1RCmjcwWIV/pgrlFa4lAXsmhoac8UPc82Ijrs6ivlTweFf16VBc4nSLX5FB3ls7S5noRhm5/Zsd4PGPgIHgCZcPgkAnU1S/A/rSqf3FLpU+CbVBDvlVAnOq9gfNF+QiTlOHdZVIe4gEYAU3CUjbleywQqV02BKxPVM0C5/oVjMVx 3bri75n1TkBYGmqAXy9usCkHIsG5CBHmphv9MHmqMZQVsxvCzfnI5IO1+7MoloeeW/lxuyd0pU88dZsV/riHw87i2GJUJtVlMl5IGBNFpqoNUoqmvRfEMeXhy/kUX4Xc03I1coZIgmwLmCSXwx9MaCPFzV/dOOrju2xjO+2sYyB5BNtxRqUEyXglpujFZqJxxau7E0eXoYgoY9gtFGsspzFkVNntamVXEWVVgzJJr/EWW0y+jNd54MfPRqH+eCGuqlnNLktSAVz1MvVRY1dxUltSlDZT7P2bUoMorIPu8p7ZCg9dyX1+9T6Muc5dHxf/BBP/ir+3e8JTFQBFOiLNdFtB9KZWZmIExheXRvbiA8amxheXRvbkBzYW1iYS5vcmc+iQI4BBMBAgAiBQJOldK9AhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRAADmhBGVaCFWgWD/0ZRi4hN9FK2BdQs9RwNnFZUr7JidAWfCrs37XrA/56olQl3ojn0fQtrP4DbTmCuh0SfMijB24psy1GnkPepnaQ6VRf7Dxg/Y8muZELSOtsv2CKt3/02J1BBitrkkqmHyni5fLLYYg6fub0T/8Kwo1qGPdu1hx2BQRERYtQ/S5d/T0cACdlzi6w8rs5f09hU9Tu4qV1JLKmBTgUWKN969HPRkxiojLQziHVyM/weR5Reu6FZVNuVBGqBD+sfk/c98VJHjsQhYJijcsmgMb1NohAzwrBKcSGKOWJToGEO/1RkIN8tqGnYNp2G+aR685D0chgTl1WzPRM6mFG1+n2b2RR95DxumKVpwBwdLPoCkI24JkeDJ7lXSe3uFWISstFGt0HL8EewP8RuGC8s5h7Ct91HMNQTbjgA+Vi1foWUVXpEintAKgoywaIDlJfTZIl6Ew8ETN/7DLy8bXYgq0XzhaKg3CnOUuGQV5/nl4OAX/3jocT5Cz/OtAiNYj5mLPeL5z2ZszjoCAH6caqsF2oLyA nLqRgDgR+wTQT6gMhr2IRsl+cp8gPHBwQ4uZMb+X00c/Amm9VfviT+BI7B66cnC7Zv6Gvmtu2rEjWDGWPqUgccB7hdMKnKDthkA227/82tYoFiFMb/NwtgGrn5n2vwJyKN6SEoygGrNt0SI84y6hEVbQlSmVmZiBMYXl0b24gPGpsYXl0b25AcHJpbWFyeWRhdGEuY29tPokCOQQTAQIAIwUCU4xmKQIbAwcLCQgHAwIBBhUIAgkKCwQWAgMBAh4BAheAAAoJEAAOaEEZVoIV1H0P/j4OUTwFd7BBbpoSp695qb6HqCzWMuExsp8nZjruymMaeZbGr3OWMNEXRI1FWNHMtcMHWLP/RaDqCJil28proO+PQ/yPhsr2QqJcW4nr91tBrv/MqItuAXLYlsgXqp4BxLP67bzRJ1Bd2x0bWXurpEXY//VBOLnODqThGEcL7jouwjmnRh9FTKZfBDpFRaEfDFOXIfAkMKBa/c9TQwRpx2DPsl3eFWVCNuNGKeGsirLqCxUg5kWTxEorROppz9oU4HPicL6rRH22Ce6nOAON2vHvhkUuO3GbffhrcsPD4DaYup4ic+DxWm+DaSSRJ+e1yJvwi6NmQ9P9UAuLG93S2MdNNbosZ9P8k2mTOVKMc+GooI9Ve/vH8unwitwo7ORMVXhJeU6Q0X7zf3SjwDq2lBhn1DSuTsn2DbsNTiDvqrAaCvbsTsw+SZRwF85eG67eAwouYk+dnKmp1q57LDKMyzysij2oDKbcBlwB/TeX16p8+LxECv51asjS9TInnipssssUDrHIvoTTXWcz7Y5wIngxDFwT8rPY3EggzLGfK5Zx2Q5S/N0FfmADmKknG/D8qGIcJE574D956tiUDKN4I+/g125ORR1v7bP+OIaayAvq17RP+qcAqkxc0x8iCYVCYDouDyNvWPGRhbLUO7mlBpjW9jK9e2fvZY9iw3QzIPGKtClKZWZmIExheXRvbiA8amVmZi5sYXl0 b25AcHJpbWFyeWRhdGEuY29tPokCOQQTAQIAIwUCU4xmUAIbAwcLCQgHAwIBBhUIAgkKCwQWAgMBAh4BAheAAAoJEAAOaEEZVoIVzJoQALFCS6n/FHQS+hIzHIb56JbokhK0AFqoLVzLKzrnaeXhE5isWcVg0eoV2oTScIwUSUapy94if69tnUo4Q7YNt8/6yFM6hwZAxFjOXR0ciGE3Q+Z1zi49Ox51yjGMQGxlakV9ep4sV/d5a50M+LFTmYSAFp6HY23JN9PkjVJC4PUv5DYRbOZ6Y1+TfXKBAewMVqtwT1Y+LPlfmI8dbbbuUX/kKZ5ddhV2736fgyfpslvJKYl0YifUOVy4D1G/oSycyHkJG78OvX4JKcf2kKzVvg7/Rnv+AueCfFQ6nGwPn0P91I7TEOC4XfZ6a1K3uTp4fPPs1Wn75X7K8lzJP/p8lme40uqwAyBjk+IA5VGd+CVRiyJTpGZwA0jwSYLyXboX+Dqm9pSYzmC9+/AE7lIgpWj+3iNisp1SWtHc4pdtQ5EU2SEz8yKvDbD0lNDbv4ljI7eflPsvN6vOrxz24mCliEco5DwhpaaSnzWnbAPXhQDWb/lUgs/JNk8dtwmvWnqCwRqElMLVisAbJmC0BhZ/Ab4sph3EaiZfdXKhiQqSGdK4La3OTJOJYZphPdGgnkvDV9Pl1QZ0ijXQrVIy3zd6VCNaKYq7BAKidn5g/2Q8oio9Tf4XfdZ9dtwcB+bwDJFgvvDYaZ5bI3ln4V3EyW5i2NfXazz/GA/I/ZtbsigCFc8ftCBKZWZmIExheXRvbiA8amxheXRvbkBrZXJuZWwub3JnPokCOAQTAQIAIgUCWe8u6AIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQAA5oQRlWghUuCg/+Lb/xGxZD2Q1oJVAE37uW308UpVSD2tAMJUvFTdDbfe3zKlPDTuVsyNsALBGclPLagJ5ZTP+Vp2irAN9uwBuac BOTtmOdz4ZN2tdvNgozzuxp4CHBDVzAslUi2idy+xpsp47DWPxYFIRP3M8QG/aNW052LaPc0cedYxp8+9eiVUNpxF4SiU4i9JDfX/sn9XcfoVZIxMpCRE750zvJvcCUz9HojsrMQ1NFc7MFT1z3MOW2/RlzPcog7xvR5ENPH19ojRDCHqumUHRry+RF0lH00clzX/W8OrQJZtoBPXv9ahka/Vp7kEulcBJr1cH5Wz/WprhsIM7U9pse1f1gYy9YbXtWctUz8uvDR7shsQxAhX3qO7DilMtuGo1v97I/Kx4gXQ52syh/w6EBny71CZrOgD6kJwPVVAaM1LRC28muq91WCFhs/nzHozpbzcheyGtMUI2Ao4K6mnY+3zIuXPygZMFr9KXE6fF7HzKxKuZMJOaEZCiDOq0anx6FmOzs5E6Jqdpo/mtI8beK+BE7Va6ni7YrQlnT0i3vaTVMTiCThbqsB20VrbMjlhpf8lfK1XVNbRq/R7GZ9zHESlsa35ha60yd/j3pu5hT2xyy8krV8vGhHvnJ1XRMJBAB/UYb6FyC7S+mQZIQXVeAA+smfTT0tDrisj1U5x6ZB9b3nBg65ke5Ag0ETpXRPAEQAJkVmzCmF+IEenf9a2nZRXMluJohnfl2wCMmw5qNzyk0f+mYuTwTCpw7BE2H0yXk4ZfAuA+xdj14K0A1Dj52j/fKRuDqoNAhQe0b6ipo85Sz98G+XnmQOMeFVp5G1Z7r/QP/nus3mXvtFsu9lLSjMA0cam2NLDt7vx3l9kUYlQBhyIE7/DkKg+3fdqRg7qJoMHNcODtQY+n3hMyaVpplJ/l0DdQDbRSZi5AzDM3DWZEShhuP6/E2LN4O3xWnZukEiz688d1ppl7vBZO9wBql6Ft9Og74diZrTN6lXGGjEWRvO55h6ijMsLCLNDRAVehPhZvSlPldtUuvhZLAjdWpwmzbRIwgoQcO51aWeKthpcpj8feDdKdlVjvJO9fgFD5kqZ QiErRVPpB7VzA/pYV5Mdy7GMbPjmO0IpoL0tVZ8JvUzUZXB3ErS/dJflvboAAQeLpLCkQjqZiQ/DCmgJCrBJst9Xc7YsKKS379Tc3GU33HNSpaOxs2NwfzoesyjKU+P35czvXWTtj7KVVSj3SgzzFk+gLx8y2Nvt9iESdZ1Ustv8tipDsGcvIZ43MQwqU9YbLg8k4V9ch+Mo8SE+C0jyZYDCE2ZGf3OztvtSYMsTnF6/luzVyej1AFVYjKHORzNoTwdHUeC+9/07GO0bMYTPXYvJ/vxBFm3oniXyhgb5FtABEBAAGJAh8EGAECAAkFAk6V0TwCGwwACgkQAA5oQRlWghXhZRAAyycZ2DDyXh2bMYvI8uHgCbeXfL3QCvcw2XoZTH2l2umPiTzrCsDJhgwZfG9BDyOHaYhPasd5qgrUBtjjUiNKjVM+Cx1DnieR0dZWafnqGv682avPblfi70XXr2juRE/fSZoZkyZhm+nsLuIcXTnzY4D572JGrpRMTpNpGmitBdh1l/9O7Fb64uLOtA5Qj5jcHHOjL0DZpjmFWYKlSAHmURHrE8M0qRryQXvlhoQxlJR4nvQrjOPMsqWD5F9mcRyowOzr8amasLv43w92rD2nHoBK6rbFE/qC7AAjABEsZq8+TQmueN0maIXUQu7TBzejsEbV0i29z+kkrjU2NmK5pcxgAtehVxpZJ14LqmN6E0suTtzjNT1eMoqOPrMSx+6vOCIuvJ/MVYnQgHhjtPPnU86mebTY5Loy9YfJAC2EVpxtcCbx2KiwErTndEyWL+GL53LuScUD7tW8vYbGIp4RlnUgPLbqpgssq2gwYO9m75FGuKuB2+2bCGajqalid5nzeq9v7cYLLRgArJfOIBWZrHy2m0C+pFu9DSuV6SNr2dvMQUv1V58h0FaSOxHVQnJdnoHn13g/CKKvyg2EMrMt/EfcXgvDwQbnG9we4xJiWOIOcsvrWcB6C6lWBDA+In7w7SXnnok kZWuOsJdJQdmwlWC5L5ln9xgfr/4mOY38B0U= Content-Type: text/plain; charset="ISO-8859-15" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) Precedence: bulk X-Mailing-List: kdevops@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 On Tue, 2023-12-12 at 11:29 -0500, Chuck Lever wrote: > From: Chuck Lever >=20 > This workflow builds the git tool and runs its built-in regression > suite on the target file system. The git regression suite acts as an > extensive file system behavior test. This workflow runs the suite in > multiple threads to add timing stress to the file system under test. >=20 > Signed-off-by: Chuck Lever > --- > playbooks/gitr.yml | 4 + > playbooks/roles/gitr/defaults/main.yml | 8 ++ > .../roles/gitr/tasks/install-deps/debian/main.yml | 28 ++++++ > playbooks/roles/gitr/tasks/install-deps/main.yml | 13 +++ > .../roles/gitr/tasks/install-deps/redhat/main.yml | 38 ++++++++ > .../roles/gitr/tasks/install-deps/suse/main.yml | 24 +++++ > playbooks/roles/gitr/tasks/main.yml | 97 ++++++++++++++= ++++++ > 7 files changed, 212 insertions(+) > create mode 100644 playbooks/gitr.yml > create mode 100644 playbooks/roles/gitr/defaults/main.yml > create mode 100644 playbooks/roles/gitr/tasks/install-deps/debian/main.y= ml > create mode 100644 playbooks/roles/gitr/tasks/install-deps/main.yml > create mode 100644 playbooks/roles/gitr/tasks/install-deps/redhat/main.y= ml > create mode 100644 playbooks/roles/gitr/tasks/install-deps/suse/main.yml > create mode 100644 playbooks/roles/gitr/tasks/main.yml >=20 > diff --git a/playbooks/gitr.yml b/playbooks/gitr.yml > new file mode 100644 > index 000000000000..4c3e3ba919d7 > --- /dev/null > +++ b/playbooks/gitr.yml > @@ -0,0 +1,4 @@ > +--- > +- hosts: all > + roles: > + - role: gitr > diff --git a/playbooks/roles/gitr/defaults/main.yml b/playbooks/roles/git= r/defaults/main.yml > new file mode 100644 > index 000000000000..faddb5679bc9 > --- /dev/null > +++ b/playbooks/roles/gitr/defaults/main.yml > @@ -0,0 +1,8 @@ > +# SPDX-License-Identifier GPL-2.0+ > +--- > +# Our sensible defaults for the gitr role. > +# > +# We default to not run tests. > +kdevops_run_gitr: False > + > +gitr_data: "{{ data_path }}/gitr" > diff --git a/playbooks/roles/gitr/tasks/install-deps/debian/main.yml b/pl= aybooks/roles/gitr/tasks/install-deps/debian/main.yml > new file mode 100644 > index 000000000000..50d4ba1037f3 > --- /dev/null > +++ b/playbooks/roles/gitr/tasks/install-deps/debian/main.yml > @@ -0,0 +1,28 @@ > +--- > +- name: Install build dependencies for git > + become: yes > + become_method: sudo > + apt: > + name: > + - gcc > + - git-core > + - gettext > + - libcurl4-openssl-dev > + - libexpat1-dev > + - libssl-dev > + - libz-dev > + state: present > + update_cache: yes > + tags: [ 'gitr', 'deps' ] > + > +- name: Install run-time dependencies for git regression tests > + become: yes > + become_method: sudo > + apt: > + name: > + - cvs > + - cvsps > + - sqlite3 > + state: present > + update_cache: yes > + tags: [ 'gitr', 'deps' ] > diff --git a/playbooks/roles/gitr/tasks/install-deps/main.yml b/playbooks= /roles/gitr/tasks/install-deps/main.yml > new file mode 100644 > index 000000000000..005bb32650bf > --- /dev/null > +++ b/playbooks/roles/gitr/tasks/install-deps/main.yml > @@ -0,0 +1,13 @@ > +--- > +# tasks to install dependencies for gitr > +- name: Debian-specific setup > + ansible.builtin.include_tasks: roles/gitr/tasks/install-deps/debian/ma= in.yml > + when: ansible_os_family =3D=3D 'Debian' > + > +- name: SuSE-specific setup > + ansible.builtin.include_tasks: roles/gitr/tasks/install-deps/suse/main= .yml > + when: ansible_os_family =3D=3D 'Suse' > + > +- name: Red Hat-specific setup > + ansible.builtin.include_tasks: roles/gitr/tasks/install-deps/redhat/ma= in.yml > + when: ansible_os_family =3D=3D 'RedHat' > diff --git a/playbooks/roles/gitr/tasks/install-deps/redhat/main.yml b/pl= aybooks/roles/gitr/tasks/install-deps/redhat/main.yml > new file mode 100644 > index 000000000000..30fb0f9b16d5 > --- /dev/null > +++ b/playbooks/roles/gitr/tasks/install-deps/redhat/main.yml > @@ -0,0 +1,38 @@ > +--- > +- name: Install build dependencies for git > + become: yes > + become_method: sudo > + yum: > + update_cache: yes > + name: "{{ packages }}" > + retries: 3 > + delay: 5 > + register: result > + until: result.rc =3D=3D 0 > + vars: > + packages: > + - expat-devel > + - gcc > + - gettext > + - git-core > + - libcurl-devel > + - openssl-devel > + - zlib-devel > + > +- name: Install run-time dependencies for git regression tests > + become: yes > + become_method: sudo > + yum: > + update_cache: yes > + name: "{{ packages }}" > + retries: 3 > + delay: 5 > + register: result > + until: result.rc =3D=3D 0 > + vars: > + packages: > + - cvs > + - cvsps > + - git-email > + - subversion > +# - subversion-perl > diff --git a/playbooks/roles/gitr/tasks/install-deps/suse/main.yml b/play= books/roles/gitr/tasks/install-deps/suse/main.yml > new file mode 100644 > index 000000000000..0db06c5b66d0 > --- /dev/null > +++ b/playbooks/roles/gitr/tasks/install-deps/suse/main.yml > @@ -0,0 +1,24 @@ > +--- > +- name: Install build dependencies for git > + become: yes > + become_method: sudo > + zypper: > + name: > + - gcc > + - gettext > + - git-core > + - libcurl-devel > + - libexpat-devel > + - libopenssl-1_1-devel > + state: present > + > +- name: Install run-time dependencies for git regression tests > + become: yes > + become_method: sudo > + zypper: > + name: > + - cvs > + - cvsps > + - subversion > + - subversion-perl > + state: present > diff --git a/playbooks/roles/gitr/tasks/main.yml b/playbooks/roles/gitr/t= asks/main.yml > new file mode 100644 > index 000000000000..199b3aa7f432 > --- /dev/null > +++ b/playbooks/roles/gitr/tasks/main.yml > @@ -0,0 +1,97 @@ > +--- > +- name: Import optional extra_args file > + include_vars: "{{ item }}" > + ignore_errors: yes > + with_first_found: > + - files: > + - "../extra_vars.yml" > + - "../extra_vars.yaml" > + - "../extra_vars.json" > + skip: true > + tags: vars > + > +- name: Set the path where we collect gitr test results > + set_fact: > + gitr_workflow_dir: "../workflows/gitr" > + tags: [ 'vars' ] > + > +- name: Clean up localhost results directory and files > + local_action: file path=3D"{{ gitr_workflow_dir }}/results/" state=3Da= bsent > + run_once: true > + tags: [ 'clean_local_results' ] > + > +- name: Create the results directory > + local_action: file path=3D"{{ gitr_workflow_dir }}/results/" state=3Dd= irectory > + run_once: true > + tags: [ 'first_run' ] > + > +- include_role: > + name: create_data_partition > + tags: [ 'data_partition' ] > + The above role will create /data on the host, of course, but that's probably not where you want to run the tests since it's not very flexible. With NFS, you'll want to create an export and mount that (like I noted in the other email). It would probably be nice to allow it to run this test in parallel on multiple hosts using different mount options (like we can with fstests). On local machines you probably want to run this test on dedicated devices (i.e. not in /data). When testing fstests with a local fs, the clients mount up one of their 100g block devices to a different directory, and then create sparse files in there that are loop mounted to create a bunch of block devices for testing different filesystem options. It might be nice to abstract that out or copy it here. I wonder if there is a way to make the fstests filesystem option selection more generic, so you could reuse all of that work here? Then you could run the gitr suite on all of the different xfs or btrfs variants that we already have defined for fstests (for instance). > +- include: tasks/install-deps/main.yml > + > +- name: Remove old git dir > + tags: [ 'git', 'gitr' ] > + become: yes > + become_flags: 'su - -c' > + become_method: sudo > + file: > + path: "{{ gitr_data }}" > + state: absent > + > +- name: git clone git > + tags: [ 'git', 'gitr' ] > + git: > + repo: "{{ gitr_git }}" > + dest: "{{ gitr_data }}" > + update: yes > + version: "{{ gitr_git_tag }}" > + retries: 3 > + delay: 5 > + register: result > + until: not result.failed > + > +- name: Get nproc > + tags: [ 'oscheck', 'gitr', 'build', 'vars' ] > + command: "{{ num_jobs }}" > + register: nproc > + > +- name: Build git > + tags: [ 'oscheck', 'gitr', 'build' ] > + community.general.make: > + chdir: "{{ gitr_data }}" > + jobs: "{{ nproc.stdout }}" > + > +- name: Run the git regression suite > + tags: [ 'run_tests' ] > + community.general.make: > + chdir: "{{ gitr_data }}" > + target: "test" > + jobs: "{{ nproc.stdout }}" > + register: gitr_out > + ignore_errors: true > + > +- name: Save git regression test output > + tags: [ 'copy_results' ] > + copy: > + content: "{{ gitr_out.stdout_lines|join('\n') }}" > + dest: "{{ gitr_data }}/gitr.log" > + > +- name: Get used target kernel version > + tags: [ 'copy_results' ] > + command: "uname -r" > + register: uname_cmd > + > +- name: Store kernel_rev variable > + tags: [ 'copy_results' ] > + set_fact: > + kernel_rev: "{{ uname_cmd.stdout_lines | regex_replace('\\]') | rege= x_replace('\\[') | replace(\"'\",'') }}" > + run_once: true > + > +- name: Copy test results over > + tags: [ 'copy_results' ] > + fetch: > + src: "{{ gitr_data }}/gitr.log" > + dest: "{{ gitr_workflow_dir }}/results/{{ kernel_rev }}.txt" > + flat: yes >=20 >=20 >=20 --=20 Jeff Layton