On 28 Sep 2024, at 15:03, Aaron Conole wrote:
> The 0-day robot has been testing patches for 6 years, and we've
> had support for other labs to integrate for 3. However, this
> isn't well documented, and has made it difficult for others to
> know how they can contribute to testing. To that end, this
> patch introduces some documentation for the 0-day robot and
> how to integrate into the patch reporting process.
Thanks for adding this documentation, some small comments below.
Cheers,
Eelco
> Signed-off-by: Aaron Conole <[email protected]>
> ---
> .../contributing/submitting-patches.rst | 3 +-
> Documentation/topics/testing.rst | 105 ++++++++++++++++++
> 2 files changed, 107 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/internals/contributing/submitting-patches.rst
> b/Documentation/internals/contributing/submitting-patches.rst
> index 8a8bc11b0a..c01ac7bbdc 100644
> --- a/Documentation/internals/contributing/submitting-patches.rst
> +++ b/Documentation/internals/contributing/submitting-patches.rst
> @@ -70,7 +70,8 @@ Testing is also important:
>
> If you are using GitHub, then you may utilize the GitHub Actions CI build
> systems. They will run some of the above tests automatically
> -when you push changes to your repository.
> +when you push changes to your repository. See the "Continuous Integration"
> +section in :doc:`/topics/testing` for details on continuous integration.
>
> Email Subject
> -------------
> diff --git a/Documentation/topics/testing.rst
> b/Documentation/topics/testing.rst
> index dcf10a4db2..49ee7d7ffa 100644
> --- a/Documentation/topics/testing.rst
> +++ b/Documentation/topics/testing.rst
> @@ -545,3 +545,108 @@ Once you are done with experimenting you can tear down
> setup with::
>
> Sometimes deployment of Proof of Concept may fail, if, for example, VMs
> don't have network reachability to the Internet.
> +
> +
> +Continuous Integration
> +----------------------
> +
> +The Open vSwitch project can make use of multiple public and hosted
> +CI services to help developers ensure their patches don't introduce
> +additional regressions. Each service requires different forms of
> +configuration, and for the supported services the configuration
> +file(s) to automatically build Open vSwitch with various build
> +configurations and run the testsuites is/are provided in the
I think test suites are two words.
> +repostiory. For example, the GitHub Actions builds will be performed
> +with gcc, clang, sparse, including DPDK, etc. with the -Werror
> +compiler flag included. Therefore, the build will fail if a new
> +warning gets introduced by a change.
> +
> +Each ci system uses a different method of enablement, but most are available
CI with captials as in the rest of the text?
> +from the GitHub settings page. By default, Open vSwitch includes a GitHub
> +actions running configuration, and this will automatically email the
> repository
> +owner.
> +
> +Currently, Open vSwitch project enables the following public CI services
> along
> +with the appropriate configuration settings::
> +
> + - AppVeyor: appveyor.yml
> + - Cirrus-CI: .cirrus.yml
> + - GitHub Actions: .github/workflows
> +
> +GitHub Actions is available without any additional configuration.
> +
> +Additionally, as each patch is posted to the mailing list, the public CI
> +machinery will run additional tests on the patches and report results.
> +
> +Public report / Private lab hybrid testing
> +------------------------------------------
> +
> +The Open vSwitch project makes use of the ozlabs patchwork instance
Maybe put in a link to the instance?
> +to track patch status and management. This patch tracking tool
> +provides information to maintainers on the state of patches proposed
> +for Open vSwitch. The CI process for Open vSwitch makes use of the
> +checks feature of the ozlabs patchwork instance. These allow developers
OzLabs
> +and maintainers to see what tests have been run, and report pass / fail
> +criteria.
> +
> +In order to know that a patch or series is ready for testing, the
> +Open vSwitch project makes use of the "0-day Robot", which is a hosted
> +jenkins instance running the pw-ci_ scripts. These can monitor a
Jenkins
> +running patchwork instance for new patches and submit the patch details
> +to other build systems, like jenkins.
> +
> +Once a patch is tested, it would be good to report the results. To this
> +end, the Open vSwitch "0-day Robot" will accept emails sent to
> [email protected] formatted in the correct way to be reflected
> +on this page. This allows any lab to contribute to the testing and
> +validation of patches. Note that the ovs-build list participation
> +requires subscribing the reporting email account to the list.
> +
> +To report a test status to a particular patch, send exactly one email to
> +the mailing formatted as such::
> +
> + From: your email <[email protected]>
> + To: [email protected]
> + Date: Mon, 28 Jun 2021 00:00:00 +0000
> + Subject: |STATUS| pwPATCHID commit subject
> +
> + Test-Label: your-robot-or-test-name
> + Test-Status: STATUS
> + http://patchwork.ozlabs.org/api/patches/PATCHID/
> +
> + _ONE LINE DESCRIPTION_
> +
> + Addtional details
> +
> +In the above example, the STATUS is one of "success" "warning" "fail"
> depending
> +on the outcome of the test. This value is case-sensitive. PATCHID should be
> +the patch for which the test was executed, and ONE LINE DESCRIPTION should
> be a
> +simple one line result description, ex: "robot-test: success"
> +
> +It is strongly recommended that if the patch is reporting a failure case, one
> +of the patch authors is cc'd as well. Please try to keep the details of a
> +pass or fail to smallest amount that includes useful data. For example, if
> +a build log can be hosted in a publicly viewable way, then please include a
> +URL rather than the entire build log. If that isn't possible, try to parse
> +the test logs and include a small snippet with the relevent details. Always
relevant details.
> +also try to publish what the test is running - that can help developers to
> +recreate failures themselves.
> +
> +Example for success::
> +
> + From: 0-Day Robot <[email protected]>
> + To: [email protected]
> + Date: Fri, 25 Jun 2021 14:30:37 +0400
> + Subject: |success| pw1497375 [ovs-dev] [PATCH v2] checkpatch: Ignore macro
> definitions of FOR_EACH
> +
> + Test-Label: github-robot
> + Test-Status: success
> + http://patchwork.ozlabs.org/api/patches/1497375/
> +
> + _github build: passed_
> + Build URL: https://github.com/ovsrobot/ovs/actions/runs/972188336
> +
> +If possible, please also try to support the ``recheck-request`` feature that
> +the "0-day Robot" currently supports.
> +
> +.. _pw-ci: https://github.com/ovsrobot/pw-ci
Should we explain the recheck-request feature earlier in the documentation?
> --
> 2.46.1
>
> _______________________________________________
> dev mailing list
> [email protected]
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev