Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
developers:jenkins:usage_guidelines [2015/12/03 22:35] – details on apparmour, + libtools orangesdevelopers:jenkins:usage_guidelines [2015/12/04 22:53] (current) – Some sentences were missing a dot at the end. nurupo
Line 8: Line 8:
  
   - Limit the number of builds you archive, since disk space is limited.   - Limit the number of builds you archive, since disk space is limited.
-      * 5 to 10 archived builds for jobs with a small disk footprint, and 1 or 2 for big footprints is a common setting+      * 5 to 10 archived builds for jobs with a small disk footprint, and 1 or 2 for big footprints is a common setting.
   - Tag your builds to the build machine of the appropriate architecture.   - Tag your builds to the build machine of the appropriate architecture.
-      * Although the x86 and x86-64 build machines have both x86 and x86-64 Windows cross-compilers installed, cross-compile x86 on the x86 build slave and x86-64 on the x86-64 build slave+      * Although the x86 and x86-64 build machines have both x86 and x86-64 Windows cross-compilers installed, cross-compile x86 on the x86 build slave and x86-64 on the x86-64 build slave
 +      * The only exception to these rules are android clients, which are built on the x86-64 machine, no matter the target architecture. 
 +  - Please follow the [[developers:jenkins:job_naming|naming guidelines]] when naming jobs (This is enforced via regex).
   - Archive job artifacts in the ''.tar.xz'' format when building for Linux and ''.zip'' when building for Windows.   - Archive job artifacts in the ''.tar.xz'' format when building for Linux and ''.zip'' when building for Windows.
-      * Use ''.tar.xz'' for all ''*_src'' jobs, regardless of platform, since they will be used on our Linux build machines+      * Use ''.tar.xz'' for all ''*_src'' jobs, regardless of platform, since they will be used on our Linux build machines.
   - Give build artifacts the same name as the job, plus ''.tar.xz'' or ''.zip''.   - Give build artifacts the same name as the job, plus ''.tar.xz'' or ''.zip''.
-      * You can use the ''$(JOB_NAME)'' environment variable instead of copy-pasting the job name directly +      * You can use the ''$(JOB_NAME)'' environment variable instead of copy-pasting the job name directly. 
-  - All of the jobs you use artifacts from should be upstream((Jenkins makes use of a model in which there are "upstream" jobs and "downstream" jobs. You can configure your job to be automatically built after another job, which makes your job "downstream" of that other job)) of your job.+  - All of the jobs you use artifacts from should be upstream((Jenkins makes use of a model in which there are "upstream" jobs and "downstream" jobs. You can configure your job to be automatically built after another job, which makes your job "downstream" of that other job.)) of your job.
   - Split source-code-pulling, building and packaging into separate jobs that depend on each other via an upstream/downstream relationship.   - Split source-code-pulling, building and packaging into separate jobs that depend on each other via an upstream/downstream relationship.
-      * Your source code should be pulled only by ''*_src'' jobs, which will trigger ''_*build_*'' jobs, which will trigger ''*_pkg_*'' jobs +      * Your source code should be pulled only by ''*_src'' jobs, which will trigger ''_*build_*'' jobs, which will trigger ''*_pkg_*'' jobs. 
-      * This is done to save bandwidth and eliminate redundancy+      * This is done to save bandwidth and eliminate redundancy.
   - Don't automatically schedule a build based on a time interval (the crontab option).   - Don't automatically schedule a build based on a time interval (the crontab option).
-      * An alternative is to use something like GitHub web hooks, so that your job is scheduled for building only when you push to your repository (when the source code actually changes)+      * An alternative is to use something like GitHub web hooks, so that your job is scheduled for building only when you push to your repository (when the source code actually changes).
   - Don't use ''rm -rf *'' to clean up a workspace before a build starts; use the "Delete workspace before build starts" configuration option.   - Don't use ''rm -rf *'' to clean up a workspace before a build starts; use the "Delete workspace before build starts" configuration option.
   - If you choose to use the IRC notification post-build hook to output messages to the #tox-dev channel, please try to keep the output minimal; there are lots of projects using the same notifications, and we'd like to keep our channel from becoming a wall of IRC bot spam.   - If you choose to use the IRC notification post-build hook to output messages to the #tox-dev channel, please try to keep the output minimal; there are lots of projects using the same notifications, and we'd like to keep our channel from becoming a wall of IRC bot spam.
-  - The Jenkins slaves use apparmour to prevent builds from writing to anywhere outside of their workspaces (some exceptions apply), if you need an exception, please contact us with justification 
   - If you use libtools, you will need to update the .la and .pc package configs to point to wherever you unpacked the source libraries in your workspace.   - If you use libtools, you will need to update the .la and .pc package configs to point to wherever you unpacked the source libraries in your workspace.
  
 ==== Privacy ==== ==== Privacy ====
  
 +  - The Jenkins slaves use apparmour to prevent builds from writing to anywhere outside of their workspaces (some exceptions apply), if you need an exception, please contact us with justification.
   - Do not sign packages or store private keys for any length of time.   - Do not sign packages or store private keys for any length of time.
   - Job configurations are public.   - Job configurations are public.
  
-  * If you need a package installed please contact the administrators via IRC or through email +  * If you need a package installed please contact the administrators via IRC or through email
-  * Guidelines for Linux packaging can be found [[developers:jenkins:packaging|here]]+ 
 +==== Building Packages on debian ==== 
 +  * Guidelines for Linux packaging can be found [[developers:jenkins:packaging:about|here]].
Print/export