From nobody Wed Apr 24 20:11:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+51314+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+51314+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1574810608; cv=none; d=zohomail.com; s=zohoarc; b=YggygLaX2Euud7LcH94x0s5uTGKl7zWbKnPxlYDSZo1Wo3gN8VdNONApaYy4A67zZsRxQ9IpbJJwgR5G3Rsn6J3vouWJKqsQsBVqTyRbIcQsfbZhd31Czrnk/nt+Z2y+Ul7rLiDzCT1lYBduCC+R1c5AxKJdRZUnXAHoYYQo50k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1574810608; h=Content-Transfer-Encoding:Date:From:List-Id:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Sender:Subject:To; bh=tKYefy8Zu9+Z3cI1ptuz5qKK7ue+bDrodejMT5NC824=; b=RX6PjfBPY0+hWBsV9zQnQkjdtC0eckjjlFsUG2JXcXjOUJS/+T0VHfE1dKQFDoa/6lIiq0WRNkqDtoi3KHMR9k6b/10i+bEF1ftObC8L2CxqMUh034QtIwicOodCqKdGRQ1IAL2ifKvaPsp0t9FxYvjH7WCrCw2CdUJJY0q74kE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+51314+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) header.from= Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1574810608038740.4748939132242; Tue, 26 Nov 2019 15:23:28 -0800 (PST) Return-Path: X-Received: by 127.0.0.2 with SMTP id laI5YY1788612xuMu1W3Ibzt; Tue, 26 Nov 2019 15:23:27 -0800 X-Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mx.groups.io with SMTP id smtpd.web09.837.1574810606637559696 for ; Tue, 26 Nov 2019 15:23:26 -0800 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Nov 2019 15:23:26 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,247,1571727600"; d="scan'208";a="240113522" X-Received: from unknown (HELO mdkinney-MOBL2.amr.corp.intel.com) ([10.241.98.74]) by fmsmga002.fm.intel.com with ESMTP; 26 Nov 2019 15:23:26 -0800 From: "Michael D Kinney" To: devel@edk2.groups.io Subject: [edk2-devel] [Patch wiki] EDK II CI: Update Phase 1 details and admin settings Date: Tue, 26 Nov 2019 15:23:24 -0800 Message-Id: <20191126232324.22012-1-michael.d.kinney@intel.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,michael.d.kinney@intel.com X-Gm-Message-State: 1hK0KzfryjdertRWoXIJxbd0x1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1574810607; bh=qM8UKy+g5vbY/KkCfWD3ITr767pj7CQHwqoys7BLlgs=; h=Date:From:Reply-To:Subject:To; b=A5WxkOg9Ox+q1z7/iqt9k/6uoVDre3TqAK5Eu+0cBbdNWnwsw2apP3WcsdsR7OJC4qL l4hTYEo2/k1/Yjiug3kPhudtOvn5kJ/REVIAOFUo1TYOMuDtmCp/76a15AIuAE+nde8k9 1cRyNAnLgA9jdarlzf9Z0rHOmdXCOQcxXKc= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" https://bugzilla.tianocore.org/show_bug.cgi?id=3D2315 Update wiki pages providing details of the Phase 1 EDK II Continuous Integration features and links to all supporting documentation. Also provide notes for admins to configure GitHub, Azure Pipelines, and Mergify. Cc: Sean Brogan sean.brogan@microsoft.com Cc: Bret Barkelew Bret.Barkelew@microsoft.com Cc: Liming Gao liming.gao@intel.com Cc: Andrew Fish afish@apple.com Cc: Laszlo Ersek lersek@redhat.com Cc: Leif Lindholm leif.lindholm@linaro.org Signed-off-by: Michael D Kinney --- ...I-Continuous-Integration-Administration.md | 100 ++++++++++++++++++ EDK-II-Continuous-Integration.md | 75 ++++++++++--- 2 files changed, 162 insertions(+), 13 deletions(-) create mode 100644 EDK-II-Continuous-Integration-Administration.md diff --git a/EDK-II-Continuous-Integration-Administration.md b/EDK-II-Conti= nuous-Integration-Administration.md new file mode 100644 index 0000000..50b5326 --- /dev/null +++ b/EDK-II-Continuous-Integration-Administration.md @@ -0,0 +1,100 @@ +# EDK II Continuous Integration Administration + +## Configuring edk2 repository + +1) Azure Pipelines Configuration Steps + 1) Goto https://dev.azure.com/tianocore + 2) Create new project in TianoCore org called `edk2-ci` + 3) Disable Boards + 4) Disable Repositories + +2) GitHub Configuration Steps + 1) Goto https://github.com/tianocore + 2) Select Settings + 3) Select Installed GitHub Apps + 4) Select Azure Pipelines -> Configure + * Enable `tianocore/edk2` repository + * Redirects to Azure Pipelines login. Select TianoCore org and + `edk2-ci` project to complete link and authentication between Azure + Pipelines TianoCore organization and GitHub TianoCore organization. + +3) Azure Pipelines Configuration Steps + 1) Goto https://dev.azure.com/tianocore/edk2-ci/_build + 2) Create New Pipeline called `Ubuntu GCC5 CI` for post commit checks + * YAML: Select file https://github.com/tianocore/edk2/blob/master/.a= zurepipelines/Ubuntu-GCC5.yml + * Name: Set to `Ubuntu GCC5 CI` + * Triggers: + * CI - No changes + * PR - Override + Disable + * Variables: No changes + * Save pipeline changes + * Run pipeline and verify all checks pass + 3) Create New Pipeline called `Windows VS2019 CI` for post commit checks + * YAML: Select file https://github.com/tianocore/edk2/blob/master/.a= zurepipelines/Windows-VS2019.yml + * Name: `Windows VS2019 CI` + * Triggers + * CI - No changes + * PR - Override + Disable + * Variables: No changes + * Save pipeline changes + * Run pipeline and verify all checks pass + 4) Create New Pipeline called `Ubuntu GCC5 PR` for pre commit checks + * YAML: Select file https://github.com/tianocore/edk2/blob/master/.a= zurepipelines/Ubuntu-GCC5.yml + * Name: `Ubuntu GCC5 PR` + * Triggers + * CI - Override + Disable + * PR - No changes + * Variables: No changes + * Save pipeline changes + * Run pipeline. Pipeline will fail because it requires a GitHub PR.= Must + run for pipeline name to show up in GitHub Branch Protection Rules. + 5) Create New Pipeline called `Windows VS2019 PR` for pre commit checks + * YAML: Select file https://github.com/tianocore/edk2/blob/master/.a= zurepipelines/Windows-VS2019.yml + * Name: `Windows VS2019 PR` + * Triggers + * CI - Override + Disable + * PR - No changes + * Variables: No changes + * Save pipeline changes + * Run pipeline. Pipeline will fail because it requires a GitHub PR.= Must + run for pipeline name to show up in GitHub Branch Protection Rules. + 6) Add PatchCheck pipeline for pre commit checks + * YAML: Select file https://github.com/tianocore/edk2/blob/master/.a= zurepipelines/Ubuntu-PatchCheck.yml + * Name: `tianocore.PatchCheck` + * Triggers + * CI - Override + Disable + * PR - No changes + * Variables: No changes + * Save pipeline changes + * Run pipeline. Pipeline will fail because it requires a GitHub PR.= Must + run for pipeline name to show up in GitHub Branch Protection Rules. + +4) GitHub Configuration Steps + 1) Goto https://github.com/tianocore/edk2 + 2) Select Settings + 3) Select Branches + 4) Select Branch Protection Rules + 5) Select `master` -> Edit + * Enable `Require status checks to pass before merging` + * Enable `Require branches to be up to date before merging` + * Enable `Windows VS2019 PR` check + * Enable `Ubuntu GCC5 PR` check + * Enable `tianocore.PatchCheck` check + 6) Goto https://github.com/tianocore + 7) Select Settings + 8) Select Installed GitHub Apps + 9) Select Mergify -> Configure + * Enable tianocore/edk2 repo + +5) Update Status Badge Links + 1) Goto https://dev.azure.com/tianocore/edk2-ci/_build + 2) Select `Windows VS2019 CI` + * Use '...' menu in upper right and select Status badge + * Copy Sample markdown + * Update links in Build Status section of https://github.com/tianoco= re/edk2/blob/master/Readme.md + 3) Select `Ubuntu GCC5 CI` + * Use '...' menu in upper right and select Status badge + * Copy Sample markdown + * Update links in Build Status section of https://github.com/tianoco= re/edk2/blob/master/Readme.md + 4) Submit changes to Readme.md for EDK II code review and submit GitHub= PR to + test personal build and Mergify commit once review passes. diff --git a/EDK-II-Continuous-Integration.md b/EDK-II-Continuous-Integrati= on.md index bfe8f30..3b0e573 100644 --- a/EDK-II-Continuous-Integration.md +++ b/EDK-II-Continuous-Integration.md @@ -1,23 +1,72 @@ -# EDK II Continuous Integration Proposal +# EDK II Continuous Integration =20 -# Phase 1 (edk2 repository only) -* Remove write access to edk2 repo -* EDK II Maintainers use GitHub Pull Request instead of push -* Only accept PR from EDK II Maintainers. Reject all other PRs. -* Run basic Pre-commit checks -* If all Pre-commit checks pass, then auto commit changes -* If any Pre-commit check fails, then notify submitter -* Limit pre-commit check execution time to 10 minutes -* Provide on-demand builds to EDK II Maintainers +Summary of pre-commit and post-commit Continuous Integration services that +improve the quality of commits made to EDK II repositories. The sections = below +list the Continuous Integration services that are active and plans for fut= ure +enhancements and extensions to these services. =20 -## Proposed Pre-Commit Checks in Phase 1 -* PatchCheck.py +## Phase 1 (edk2 repository only) - Activated November 11, 2019 + +1) Use a combination of GitHub, Azure Pipelines, Mergify, and edk2-pytool = features. + * GitHub Pull Requests + Labels, Branch Protections, Notifications + * Mergify Pull Request Rules with auto commit if all checks pass + * 3 pre-commit jobs in Azure Pipelines (PatchCheck, Windows/VS, Linux/G= CC). + Goal is to complete all pre-commits check in under 10 minutes. + * 2 post-commit jobs in Azure Pipelines (Windows/VS, Linux/GCC). Post = commit + status provided at top of `edk2/master` [Readme.md](https://github.co= m/tianocore/edk2/blob/master/Readme.md). + * [EDK II Pytool Library](https://github.com/tianocore/edk2-pytool-libr= ary) + * [EDK II Pytool Extensions](https://github.com/tianocore/edk2-pytool-e= xtensions) + * [TianoCore Bugzilla #2315](https://bugzilla.tianocore.org/show_bug.cg= i?id=3D2315) + * Original RFC Proposals + - https://edk2.groups.io/g/rfc/message/93 + - https://edk2.groups.io/g/devel/message/46607 +2) Enable the following pre-commit checks + * [PatchCheck](https://github.com/tianocore/edk2/blob/master/BaseTools/= Scripts/PatchCheck.py) + * [CharEncodingCheck](https://github.com/tianocore/edk2/tree/master/.py= tool/Plugin/CharEncodingCheck) + * [CompilerPlugin](https://github.com/tianocore/edk2/tree/master/.pytoo= l/Plugin/CompilerPlugin) + * [DependencyCheck](https://github.com/tianocore/edk2/tree/master/.pyto= ol/Plugin/DependencyCheck) + * [DscCompleteCheck](https://github.com/tianocore/edk2/tree/master/.pyt= ool/Plugin/DscCompleteCheck) + * [GuidCheck](https://github.com/tianocore/edk2/tree/master/.pytool/Plu= gin/GuidCheck) + * [LibraryClassCheck](https://github.com/tianocore/edk2/tree/master/.py= tool/Plugin/LibraryClassCheck) + * [SpellCheck](https://github.com/tianocore/edk2/tree/master/.pytool/Pl= ugin/SpellCheck) +3) TianoCore EDK II Maintainers Team permissions reduced from 'Write" to "= Triage" +4) EDK II Maintainers must use GitHub pull request with 'push' label to re= quest + a branch to be strict rebase merged into `edk2/master`. If all checks = pass, + then the patches in the pull request are automatically added to `edk2/m= aster`. + If any checks fails, then email notifications are sent and details of t= he + failure are available through Azure Pipelines test results. +5) Personal builds available to all EDK II developers using a GitHub pull + request without the 'push' label set. If all checks pass, then a notif= ication + email is sent and the pull request is closed. If any checks fails, then + email notifications are sent and the details of the failure are availab= le + through Azure Pipelines test results. +6) GitHub References + * [GitHub](https://github.com/) + * [GitHub Labels](https://help.github.com/en/github/managing-your-work-= on-github/about-labels) + * [GitHub Protected Branches](https://help.github.com/en/github/adminis= tering-a-repository/about-protected-branches) + * [GitHub Notifications](https://help.github.com/en/github/receiving-no= tifications-about-activity-on-github/about-notifications) + * [Watch a GitHub repository](https://help.github.com/en/github/receivi= ng-notifications-about-activity-on-github/watching-and-unwatching-repositor= ies) + * [Create a GutHub fork](https://help.github.com/en/github/getting-star= ted-with-github/fork-a-repo) + * [Create a GitHub pull request](https://help.github.com/en/github/coll= aborating-with-issues-and-pull-requests/creating-a-pull-request) +7) HUB Command line Utility to perform GitHub operations + * [HUB Releases](https://github.com/github/hub/releases) + * [HUB Usage](https://hub.github.com/hub.1.html) +8) Azure Pipelines References + * [Azure Piplelines GitHub App](https://github.com/marketplace/azure-pi= pelines) + * [Azure Pipelines TianoCore edk2-ci Project](https://dev.azure.com/tia= nocore/edk2-ci) + * [Azure Pipelines TianoCore edk2-ci Pipelines](https://dev.azure.com/t= ianocore/edk2-ci/_build) + * [Azure Pipelines](https://azure.microsoft.com/en-us/services/devops/p= ipelines) + * [Azure Pipelines YAML Schema](https://docs.microsoft.com/en-us/azure/= devops/pipelines/yaml-schema) +9) Mergify References + * [Mergify GitHub App](https://github.com/apps/mergify) + * [Mergify Documentation](https://doc.mergify.io) + +[[EDK II Continuous Integration Administration]] =20 ## Proposed Pre-Commit Checks in Phase 2 * Verify Reviewed-by and Acked-by tags are present with correct maintainers * Verify no non-ASCII characters in modified files * Verify no binary files in set of modified files -* Verify Package Dependency rules in modified files =20 ## Proposed Pre-Commit Checks in Phase 3 * Run ECC on modified files --=20 2.21.0.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#51314): https://edk2.groups.io/g/devel/message/51314 Mute This Topic: https://groups.io/mt/62018541/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-