Both sides previous revisionPrevious revisionNext revision | Previous revision |
developers:jenkins:job_naming [2015/08/24 05:45] – nurupo | developers:jenkins:job_naming [2017/10/08 07:57] (current) – [Jenkins Job Naming] Added Ubuntu Artful to the regex nurupo |
---|
^( | ^( |
( # define some frequently used capture groups | ( # define some frequently used capture groups |
(?!x)x # always false ("match only if there is no 'x' ahead and there is 'x' ahead") | (?!x)x # always false ("match only if there is no 'x' ahead and there is 'x' ahead") |
(?<name>[^_]+) # group "name", name of the program/library | (?<name>[^_]+) # group "name", name of the program/library |
(?<os>windows|linux|osx|android|illumos) # group "os", operating systems | (?<os>windows|linux|osx|android) # group "os", operating systems |
(?<arch>x86-64|x86|arm64|armhf|armel) # group"arch", architectures | (?<arch>x86-64|x86|arm64|armhf|armel|multiarch) # group "arch", architectures |
(?<buildtype>release|debug) # group"buildtype", build types | (?<buildtype>release|debug) # group "buildtype", build types |
(?<linking>shared|static|mixed) # group "linking", library linking/build types | (?<linking>shared|static|mixed) # group "linking", library linking/build types |
) | ) |
| | | |
( | ( |
((?<=linux_) # if there is "linux_" before here | ((?<=linux_) # if there is "linux_" before here |
( # then match | # then match |
deb|rpm | (deb|rpm)_ |
)_ | (shared|static)_ |
| ( |
| ((?<=deb_shared_) # if there is "deb_shared_" before here |
| # then match |
| (jessie|stretch|buster|sid|xenial|yakkety|zesty|artful)_ |
| ) |
| | |
| ((?<!deb_shared_) # if there is no "deb_shared_", don't match anything |
| ) |
| ) |
) | ) |
| | | |
((?<!linux_)) # if there is no "linux_", don't match anything | ((?<!linux_) # if there is no "linux_", don't match anything |
| ) |
) | ) |
\g<arch>_(stable|nightly)_\g<buildtype> | \g<arch>_(stable|nightly)_\g<buildtype> |
</code> | </code> |
| |
You can test your job name against the regex using [[https://regex101.com/r/zJ9zD1/21|this regex101 save]]. | You can test your job name against the regex using [[https://regex101.com/r/zJ9zD1/32|this regex101 save]]. |
| |
===== Examples of valid job names ===== | ===== Examples of valid job names ===== |
| |
| * ''antox_build_android_armhf_release'' |
| * ''libtoxcore_analyze_cppcheck'' |
* ''libtoxcore_analyze_scan-build'' | * ''libtoxcore_analyze_scan-build'' |
* ''libtoxcore_build_linux_arm64_mixed_debug'' | * ''libtoxcore_build_linux_arm64_mixed_debug'' |
* ''libtoxcore_build_linux_x86_64_mixed_debug'' | |
* ''libtoxcore_build_windows_x86_shared_release'' | * ''libtoxcore_build_windows_x86_shared_release'' |
* ''libtoxcore_src'' | * ''libtoxcore_src'' |
* ''qTox_analyze_cppcheck'' | * ''qtox_build_osx_x86-64_debug'' |
* ''qtox_pkg_linux_deb_x86-64_stable_release'' | * ''qtox_pkg_linux_deb_shared_jessie_x86-64_stable_release'' |
* ''qtox_pkg_linux_rpm_armel_nightly_release'' | * ''qtox_pkg_linux_deb_shared_yakkety_x86-64_stable_release'' |
* ''qtox_pkg_windows_x86-64_stable_release'' | * ''qtox_pkg_linux_deb_static_armel_stable_debug'' |
* ''utox_build_windows_x86_release'' | * ''utox_build_windows_x86-64_release'' |
* ''utox_pkg_linux_rpm_armhf_stable_debug'' | * ''utox_pkg_linux_rpm_shared_x86-64_nightly_release'' |
* ''utox_pkg_osx_x86-64_nightly_debug'' | * ''utox_pkg_linux_rpm_static_x86-64_nightly_release'' |
* ''uTox_src'' | * ''utox_pkg_osx_armhf_nightly_debug'' |
| * ''utox_src'' |
| |
Note that the name part of the job (''\g<name>'') can contain lower case letters, as well as upper case ones. The general rule of thumb is to use lowercase letters for everything unless you have a good reason to not to. The reason for that rule of thumb is that most jobs initially were named in lowercase only (i.e. ''libqt5'' instead of ''libQt5'', ''libffmpeg'', instead of ''libFFmpeg'', etc.), and sometime later this was enforced by adding lowercase restriction to the regex above, but qTox and uTox maintainers wanted to have "T" letter in their jobs names, so the lowercase-only restriction in regex was lifted because of that, which makes them an exception to the general rule. | Note that the name part of the job (''\g<name>'') can contain lower case letters, as well as upper case ones. The general rule of thumb is to use lowercase letters for everything unless you have a good reason to not to. The reason for that rule of thumb is that most jobs initially were named in lowercase only (i.e. ''libqt5'' instead of ''libQt5'', ''libffmpeg'', instead of ''libFFmpeg'', etc.), and sometime later this was enforced by adding lowercase restriction to the regex above, but qTox and uTox maintainers wanted to have "T" letter in their jobs names, so the lowercase-only restriction in regex was lifted because of that, which makes them an exception to the general rule. |