Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
developers:jenkins:job_naming [2015/08/18 03:49]
nurupo reworded some parts
developers:jenkins:job_naming [2017/10/08 07:57] (current)
nurupo [Jenkins Job Naming] Added Ubuntu Artful to the regex
Line 6: Line 6:
 ^( ^(
     ( # 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|arm           # 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
     )     )
     |     |
Line 34: Line 34:
             (             (
                 ((?<=linux_) # if there is "linux_" before here                 ((?<=linux_) # if there is "linux_" before here
-                    ( # then match +                    # then match 
-                        debian-8 +                    (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>
Line 46: Line 56:
 </code> </code>
  
-You can test your job name against the regex using [[https://regex101.com/r/zJ9zD1/19|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_debian-8_x86-64_stable_release'' +  * ''qtox_pkg_linux_deb_shared_jessie_x86-64_stable_release'' 
-  * ''qtox_pkg_windows_x86-64_stable_release'' +  * ''qtox_pkg_linux_deb_shared_yakkety_x86-64_stable_release'' 
-  * ''utox_build_windows_x86_release'' +  * ''qtox_pkg_linux_deb_static_armel_stable_debug'' 
-  * ''utox_pkg_linux-debian-8_arm_stable_debug'' +  * ''utox_build_windows_x86-64_release'' 
-  * ''utox_pkg_osx_x86-64_nightly_debug'' +  * ''utox_pkg_linux_rpm_shared_x86-64_nightly_release'' 
-  * ''uTox_src''+  * ''utox_pkg_linux_rpm_static_x86-64_nightly_release'' 
 +  * ''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.
Line 180: Line 193:
 then then
  
-  if [[ ${JOB_NAME} == *"x86_64"* ]]+  if [[ ${JOB_NAME} == *"x86-64"* ]]
   then   then
     QT_CONFIGURE_OPTIONS="-device-option CROSS_COMPILE=x86_64-w64-mingw32- $QT_CONFIGURE_OPTIONS"     QT_CONFIGURE_OPTIONS="-device-option CROSS_COMPILE=x86_64-w64-mingw32- $QT_CONFIGURE_OPTIONS"
Line 189: Line 202:
          
   else   else
-    echo "Error: Support only x86 and x86_64 architectires on Windows. Exiting."+    echo "Error: Support only x86 and x86-64 architectires on Windows. Exiting."
     exit 1     exit 1
   fi   fi
Line 198: Line 211:
 then then
        
-  if [[ ${JOB_NAME} == *"x86_64"* ]]+  if [[ ${JOB_NAME} == *"x86-64"* ]]
   then   then
     QT_CONFIGURE_OPTIONS="-platform linux-g++-64 $QT_CONFIGURE_OPTIONS"     QT_CONFIGURE_OPTIONS="-platform linux-g++-64 $QT_CONFIGURE_OPTIONS"
Line 207: Line 220:
          
   else   else
-    echo "Error: Support only x86 and x86_64 architectires on Linux. Exiting."+    echo "Error: Support only x86 and x86-64 architectires on Linux. Exiting."
     exit 1     exit 1
   fi   fi
Print/export