[ 
https://issues.apache.org/jira/browse/YETUS-681?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Allen Wittenauer updated YETUS-681:
-----------------------------------
    Release Note: 
<!-- markdown -->

This change makes significant changes to precommit to support a variety of 
automation systems for continuous integration (aka robots or the `--robot` 
flag) as well as rework the existing Jenkins support (`--jenkins`).

End User Changes
================

* `--jenkins` flag has been removed.  `test-patch`/`qbt` should now autodetect 
not only if it is running Jenkins, but also Circle CI, Gitlab CI, and Travis 
CI.  Please see the robots document for specifics as to how that works, 
limitations, etc.
* In the specific case of Jenkins, much better support for general Jenkins 
settings but also Github Branch Source Plugin using Pipelines and Github Pull 
Request Plugin.  In many cases, options that were previously set specifically 
on the command line may be unnecessary/duplicate information and should be 
removed.
* Configuration for how to run Apache Yetus against Apache Yetus for various CI 
systems is now bundled with the project source.
* When running under a robot, `test-patch`/`qbt` may update the git remote 
repository information for branches.  This is done because in some 
configurations, the information is missing and is required for proper 
functionality. In cases where this is not possible, the programs will treat the 
remote repositories as offline or the local repository as shallow. As a result, 
some functionality may not be available.  The limitations may include 
`test-patch` functioning as though it was `qbt`. In other words, performing a 
full build rather than a patch-based build.
* `--git-shallow` may be used to pre-warn that the local checkout is 
shallow/other branches are not available.
* `--git-offline` may be used to pre-warn that remote repositories are not 
available/pulls will fail.
* `--offline` sets `--git-offline` as well.
* As a result of that work, git repositories that require authentication, are 
non-HTTP-based, and various other configurations should be much better 
understood and handled much more appropriately.
* precommit will now attempt to guess what build tool a repository may be 
using.  This may be overridden by specifying the build tool with `--build-tool` 
set to the appropriate plugin, including `nobuild` to disable build tools 
altogether.
* If Apache Yetus is launched in a Docker container under a Jenkins pipeline as 
the agent definition, `${HOME}` should now be set to somewhere valid if it 
isn't valid.  This will enable Apache Maven and other utilities that would 
otherwise crash due to broken homes.


Developer Changes
================= 

* Personalities setting `${GITHUB_REPO}` information will likely cause problems 
with autodetection of Github information.  See YETUS-721 for more information.
* Developers that check for `${JENKINS}` should specifically start checking for 
`${ROBOTTYPE}=jenkins` for equivalent functionality.  But be aware that coding 
specifically for Jenkins may be incorrect.
* Environment variable handling for Docker has been given a rewrite with the 
introduction of `add_docker_env`.  For environment variables, this should be 
used instead of directly setting `${DOCKER_EXTRAARGS}`.  Environment variables 
set via `add_docker_env` will be resolved just prior to Docker run thus 
enabling the value to change.
* It is now possible set `${BUILDMODE}` during `locate_patch` resolution.  This 
change was made due to limitations with some bug system/CI integrations.  See 
`set_buildmode` for more information.
* `github_breakup_url` can now be used for Github repo URLs and not just pull 
requests.
* `gitlab_breakup_url` can now be used for Gitlab repo URLs and not just merge 
requests.
* A lot of defaults are now defined much later.  This should only impact 
plug-ins and overrides that are triggered extremely early in the boot up 
process.


  was:
<!-- markdown -->

This change makes significant changes to precommit to support a variety of 
automation systems for continuous integration (aka robots or the `--robot` 
flag) as well as rework the existing Jenkins support (`--jenkins`).

End User Changes
================

* `--jenkins` flag has been removed.  `test-patch`/`qbt` should now autodetect 
not only if it is running Jenkins, but also Circle CI, Gitlab CI, and Travis 
CI.  Please see the robots document for specifics as to how that works, 
limitations, etc.
* In the specific case of Jenkins, much better support for general Jenkins 
settings but also Github Branch Source Plugin using Pipelines and Github Pull 
Request Plugin.  In many cases, options that were previously set specifically 
on the command line may be unnecessary/duplicate information and should be 
removed.
* Configuration for how to run Apache Yetus against Apache Yetus for various CI 
systems is now bundled with the project source.
* When running under a robot, `test-patch`/`qbt` may update the git remote 
repository information for branches.  This is done because in some 
configurations, the information is missing and is required for proper 
functionality. In cases where this is not possible, the programs will treat the 
remote repositories as offline or the local repository as shallow. As a result, 
some functionality may not be available.  The limitations may include 
`test-patch` functioning as though it was `qbt`. In other words, performing a 
full build rather than a patch-based build.
* `--git-shallow` may be used to pre-warn that the local checkout is 
shallow/other branches are not available.
* `--git-offline` may be used to pre-warn that remote repositories are not 
available/pulls will fail.
* `--offline` sets `--git-offline` as well.
* As a result of that work, git repositories that require authentication, are 
non-HTTP-based, and various other configurations should be much better 
understood and hanlded much more appropriately.
* precommit will now attempt to guess what build tool a repository may be 
using.  This may be overridden by specifying the build tool with `--build-tool` 
set to the appropriate plugin, including `nobuild` to disable build tools 
altogether.
* If Apache Yetus is launched in a Docker container under a Jenkins pipeline as 
the agent definition, `${HOME}` should now be set to somewhere valid if it 
isn't valid.  This will enable Apache Maven and other utilities that would 
otherwise crash due to broken homes.


Developer Changes
================= 

* Personalities setting `${GITHUB_REPO}` information will likely cause problems 
with autodetection of Github information.  See YETUS-721 for more information.
* Developers that check for `${JENKINS}` should specifically start checking for 
`${ROBOTTYPE}=jenkins` for equivalent functionality.  But be aware that coding 
specifically for Jenkins may be incorrect.
* Environment variable handling for Docker has been given a rewrite with the 
introduction of `add_docker_env`.  For environment variables, this should be 
used instead of directly setting `${DOCKER_EXTRAARGS}`.  Environment variables 
set via `add_docker_env` will be resolved just prior to Docker run thus 
enabling the value to change.
* It is now possible set `${BUILDMODE}` during `locate_patch` resolution.  This 
change was made due to limitations with some bug system/CI integrations.  See 
`set_buildmode` for more information.
* `github_breakup_url` can now be used for Github repo URLs and not just pull 
requests.
* `gitlab_breakup_url` can now be used for Gitlab repo URLs and not just merge 
requests.
* A lot of defaults are now defined much later.  This should only impact 
plug-ins and overrides that are triggered extremely early in the boot up 
process.



> Add robots plugin type
> ----------------------
>
>                 Key: YETUS-681
>                 URL: https://issues.apache.org/jira/browse/YETUS-681
>             Project: Yetus
>          Issue Type: New Feature
>          Components: Precommit
>            Reporter: Allen Wittenauer
>            Assignee: Allen Wittenauer
>            Priority: Major
>             Fix For: 0.9.0
>
>         Attachments: YETUS-681.00.patch, YETUS-681.004.patch, 
> YETUS-681.005.patch, YETUS-681.006.patch, YETUS-681.007.patch, 
> YETUS-681.008.patch, YETUS-681.YETUS-15.001.patch, 
> YETUS-681.YETUS-15.002.patch, YETUS-681.YETUS-15.003.patch
>
>
> Umbrella JIRA to rework how robots are used in the system



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to