lf-releng-global-jjb Release v dev3+b5f41d5

Size: px
Start display at page:

Download "lf-releng-global-jjb Release v dev3+b5f41d5"

Transcription

1 lf-releng-global-jjb Release v dev3+b5f41d5 Jan 28, 2019

2

3 Contents 1 Release Notes 3 2 Guides Release Notes Install Configuration Best Practices Glossary Appendix Global JJB Templates C/C++ Jobs CI Jobs Global Macros Maven Jobs NodeJS Jobs OpenStack Heat Python Jobs ReadTheDocs Jobs Jenkins Views Indices and tables 75 i

4 ii

5 Linux Foundation Release Engineering Global Jenkins Job Builder (JJB) Documentation. Global-JJB is a library project containing reusable Jenkins Job Builder templates. Developed for LFCI to deploy management Jenkins jobs to an LF managed Jenkins instance, there are other jobs defined which may be helpful to projects that use the same build technology. The intention is to help projects save time from having to define their own job templates. Contents 1

6 2 Contents

7 CHAPTER 1 Release Notes Global JJB provides regular releases. The release notes for all releases are available in the relnotes directory in Git. 3

8 4 Chapter 1. Release Notes

9 CHAPTER 2 Guides 2.1 Release Notes v Bug Fixes Extend ${JOB_NAME} to include {java-version} parameter to support jobs to build with multiple versions of openjdk{8,11} v New Features Add a puppet-verify job to lf-ci-jobs. This job will perform Puppet linting on the specified repository. - project: name: lf-infra-puppet-mymodule project-name: lf-infra-puppet project: puppet/modules/mymodule jobs: - gerrit-puppet-verify Bug Fixes maven-fetch-metadata.sh was not respecting the -f (for file path) flag in MAVEN_PARAMS, causing lfmaven-merge jobs that utilize this flag to fail. It will now set a path based on this flag if it is present, or default to the current working directory. Check openjdk $VERSION before setting $JAVA_HOME. This enables jobs to pass openjdk10 or openjdk11 on CentOS 7 images to use the OpenJDK version installed in /opt. 5

10 2.1.3 v Bug Fixes Compress and upload all jjb-verify XML files to Nexus, to ease out the IOPs on cron jobs that manage the logs on Nexus and optimize job performace by ~8 mins. This is because the job generates around ~2.3K XML files (small files) which is uploaded to Nexus in every run of jjb-verify. Doing this is faster as compared to the Nexus Unpack plugin in the Nexus end unpacking the zip file we upload takes longer v Other Notes Update lftools version to v v New Features New lf-stack-create macro allows job-templates to setup a OpenStack Heat stack, useful for spinning up CSIT labs to run integration tests against. Use with the lf-stack-delete macro. Concurrency for the gerrit-jjb-verify job can now be configured by setting the build-concurrent parameter. New macro lf-maven-central is available to deploy artifacts to OSSRH staging for jobs that want to eventually deploy to Maven Central job-template: name: lf-maven-central-macro-test ##################### # Default variables # ##################### mvn-central: true ossrh-profile-id: '' ##################### # Job configuration # ##################### builders: - lf-maven-central: mvn-central: '{mvn-central}' ossrh-profile-id: '{ossrh-profile-id}' The GERRIT_REFSPEC build parameter can now be used to trigger a test build from the Jenkins Sandbox system against a work in progress packer image patch from a GitHub Pull Request. Upgrade Notes lf-stack-delete has been modified to be a companion macro to lf-stack-create in order to cleanup the stack at the end of a job run. It now includes a required parameter openstack-cloud to choose the clouds. 6 Chapter 2. Guides

11 yaml cloud configuration for the project. Existing users of this macro will need to update their job templates accordingly. Requires JJB for the jenkins-sandbox-cleanup job to not fail. Note: Despite the failure if JJB is not available the job will successfully delete all jobs and views, the primary purpose of this job. Bug Fixes RELENG-1450 All view disappears on Jenkins Sandbox after views are deleted. The All view is now recreated after delete-all is run v New Features Add the ability to configure the location of JJB s cache directory for CI jobs. New view-templates project-view, common-view, and csit-view are available for projects to manage Jenkins views through code. To use the project-view template in a project: - project: name: aaa-view views: - project-view project-name: aaa To use the common-view template in a project: - project: name: daily-builds views: - common-view view-name: Periodic view-regex: '.*-periodic-.*' To use the csit-view template in a project: - project: name: csit views: - csit-view view-name: CSIT view-regex: '.*csit.*' - project: name: csit-1node views: (continues on next page) 2.1. Release Notes 7

12 - csit-view (continued from previous page) view-name: CSIT-1node view-regex: '.*-csit-1node-.*' Add support to maven-stage jobs to publish to Maven Central via OSSRH. This is accomplished by adding these 2 new optional parameters to the job configuration. - gerrit-maven-stage: mvn-central: true ossrh-profile-id: 7edbe The openstack-cron job now has the ability to remove images older than a specified age (default: 30). The openstack-cron job now has the ability to remove orphaned servers. The openstack-cron job now has the ability to remove orphaned stacks. The openstack-cron job now has the ability to remove orphaned volumes. lf-infra-gerrit-scm and lf-infra-github-scm now require a submodule-timeout parameter to provide a timeout value (in minutes) for git fetch operations. All job-templates now provide an optional submodule-timeout parameter for git fetch operations, defaulting to 10 minutes. Upgrade Notes Some LF projects are already using a common-view template in their local ci-management repo. This common-view is called project-view in global-jjb so rename all instances of common-view to project-view when upgrading and remove the local common-view view-template definition from cimanagement. The openstack-cron job now requires a new parameter configured jenkins-urls in order to use the job. Any project using the lf-infra-gerrit-scm and lf-infra-github-scm macros in global-jjb should need to add a submodule-timeout value. It is recommended to default this value to 10 since it is the default used by the Jenkins Git Plugin. Bug Fixes The jenkins-init scripts dir is now updated to reflect changes recommended for the v release. We unfortunately missed this critical piece in the v release. Specify refspec to be blank for SCM config on github-maven-merge job. +refs/pull/*:refs/remotes/origin/pr/* causes there to be no merge job triggered. Setting the refspec to New detox version requires tox >= 3.5 and < 4. Instead of explicitly pulling tox, we are now implicitly pulling via detox. ( Other Notes lftools openstack module will now be installed as part of pre-build. The openstack-cron job now runs every hour instead of daily. This is because stack cleanup should happen more regularly. 8 Chapter 2. Guides

13 2.1.7 v New Features Add a new nexus-iq-namespace optional parameter to insert a namespace into Nexus IQ AppID. This is useful for shared Nexus IQ systems where projects might have concern about namespace collision. Note: We recommend when using the namespace to add a trailing - to the value. Eg. odl-, this is to make the namespace look nice for example odl-aaa is the result of namespace odl-, and project name aaa. Add lf-infra-publish-windows. A publisher for use at the end of Windows based job-templates. Bug Fixes Fix packer-verify job to correctly work with clouds.yaml config model implemented in global-jjb v v Bug Fixes jjb-cleanup.sh may be merged with other shell scripts that set -u which causes Jenkins to fail when activating virtualenvs v New Features Add support to the packer-build job to use clouds.yaml for openstack builder configuration rather than through the cloud-env file. This allows us to simplify the template configuration for openstack builders moving forward. New macro lf-sigul-sign-dir available to sign artifacts in a provided directory using Sigul. Usage: - lf-sigul-sign-dir: sign-dir: '$WORKSPACE/m2repo' This macro also requires a boolean variable to SIGN_ARTIFACTS to be set to true to activate the macro. We recommend the job-template that uses this macro to define it in the job parameters section. Example: - bool: name: SIGN_ARTIFACTS default: '{sign-artifacts}' description: Use Sigul to sign artifacts. Add Sigul signing support to the maven-staging job. sign-artifacts: true. Example: To activate Sigul signing make sure to set 2.1. Release Notes 9

14 - project: name: abc jobs: - gerrit-maven-stage sign-artifacts: true Add lf-stack-delete macro to delete an openstack heat stack at the end of the job. This macro requires a parameter defined in the job named STACK_NAME containing the name of the stack to delete. Add lf-infra-wrappers-windows to handle Windows specific wrapper configuration. Refactor lf-infra-wrappers to be for Linux systems and split out the non-linux specific components into a new lf-infra-wrappers-common. This change is seamless for current users of lf-infra-wrappers. Upgrade Notes Upgrade to global-jjb v before performing this upgrade. This ensures that jjb-verify job pulls in a regex fix that will allow it to verify the v upgrade. Global JJB now has non-jjb YAML configuration and requires action on the ci-management repo when upgrading to this version of Global JJB to prevent JJB from picking up these YAMLs as config. Follow the instructions below BEFORE upgrading globall-jjb: cd <git-root> git mv jjb/global-jjb global-jjb mkdir jjb/global-jjb ln -s../../global-jjb/shell jjb/global-jjb/shell ln -s../../global-jjb/jjb jjb/global-jjb/jjb git add jjb/global-jjb git commit -sm "Prepare repo for global-jjb v0.25.0" Minimum packer version is now required for the packer-build job. lf-infra-packer-build macro now requires 2 new variables to be passed. 1. openstack: Set to true if template is built using the openstack builder 2. openstack-cloud: The clouds.yaml cloud to use when running packer build Deprecation Notes lftools-install.sh is deprecated and will be removed in a future release. We recommend installing lftools via pip install user lftools to install instead of using this script. Bug Fixes Fix pip install pip setuptools which seems to fail against the Nexus 3 proxy. Run them as separate calls to make things happier. jjb-verify will now test on all changes in the jjb directory. The previous pattern was too specific and sometimes missed verifying patches that should be verified. Replace jjb-verify to test on all changes in the shell/* directory. 10 Chapter 2. Guides

15 Fix the lftools virtualenv workaround we had to put in place in the tox-verify job by using pip install --user for global tool installs. Fix jobs failing with UNSTABLE build due to install pip==18.0 missing. This change moves all the jobs to using lf-infra-pre-build to install lftools via user command. Use python -m pip to ensure that we are using the pip version that was installed rather than the OS wrapper version of pip. Fix package listing script in post-builder from causing UNSTABLE build due to difference in the two files being compared. Fix RTD job failing to find PBR install. Other Notes Update lftools to ~ Install global-jjb requires configuration in 2 places; Jenkins and the ci-management repository Jenkins configuration On the Jenkins side, we need to prep environment variables and plugins required by the jobs in global-jjb before we can start our first jobs. Install Jenkins plugins Install the following required Jenkins plugins and any optional ones as necessary by the project. Required Config File Provider Description Setter Environment Injector Plugin Git plugin Post Build Script SSH Agent Workspace Cleanup Required for Gerrit connected systems Gerrit Trigger Required for GitHub connected systems GitHub plugin GitHub Pull Request Builder Optional 2.2. Install 11

16 Mask Passwords MsgInject OpenStack Cloud Timestamper Environment Variables The Jenkins Configuration Merge job can manage environment variables job but we must first bootstrap them in Jenkins so that the job can run and take over. Required: JENKINS_HOSTNAME=jenkins092 NEXUS_URL= SILO=production SONAR_URL= Gerrit: GERRIT_URL= GitHub: GIT_URL= Note: Use GIT_CLONE_URL for GitHub projects as this will be different from the URL used in the properties configuration. Optional: LOGS_SERVER= Steps 1. Navigate to 2. Configure the environment variables as described above 3. Configure the same environment variables in the ci-management repo ci-management ci-management is a git repository containing JJB configuration files for Jenkins Jobs. Deploying Global JJB here as a submodule allows us easy management to install, upgrade, and rollback changes via git tags. Install Global JJB as follows: 1. Install Global JJB GLOBAL_JJB_VERSION=v0.1.0 git submodule add cd global-jjb (continues on next page) 12 Chapter 2. Guides

17 git checkout $GLOBAL_JJB_VERSION cd.. git add jjb/global-jjb (continued from previous page) # Setup symlinks mkdir jjb/global-jjb ln -s../../global-jjb/shell jjb/global-jjb/shell ln -s../../global-jjb/jjb jjb/global-jjb/jjb git add jjb/global-jjb git commit -sm "Install global-jjb $GLOBAL_JJB_VERSION" Note: We are purposely using github for production deploys of global-jjb so that uptime of LF Gerrit does not affect projects using global-jjb. In a test environment we can use global-jjb if desired. 2. Setup jjb/defaults.yaml Create and configure the following parameters in the jjb/defaults.yaml file as described in the defaults.yaml configuration docs <defaults-yaml>. Once configured commit the modifications: git add jjb/defaults.yaml git commit -sm "Setup defaults.yaml" 3. Push patches to Gerrit / GitHub using your favourite push method At this point global-jjb installation is complete in the ci-management repo and is ready for use Deploy ci-jobs The CI job group contains jobs that should deploy in all LF Jenkins infra. The minimal configuration to deploy the {project-name}-ci-jobs job group as defined in lf-ci-jobs.yaml is as follows: jjb/ci-management/ci-management.yaml: - project: name: ci-jobs jobs: - '{project-name}-ci-jobs' project: ci-management project-name: ci-management build-node: centos7-builder-2c-1g Required parameters: project The project repo as defined in source control. project-name A custom name to call the job in Jenkins. build-node The name of the builder to use when building (Jenkins label). Optional parameters: 2.2. Install 13

18 branch The git branch to build from. (default: master) jjb-version The version of JJB to install in the build minion. (default: <defined by the global-jjb project>) Deploy packer-jobs The packer job group contains jobs to build custom minion images. The minimal configuration needed to deploy the packer jobs is as follows which deploys the {project-name}-packer-jobs job group as defined in lf-ci-jobs.yaml. jjb/ci-management/packer.yaml: - project: name: packer-builder-jobs jobs: - '{project-name}-packer-jobs' project: ci-management project-name: ci-management branch: master build-node: centos7-builder-2c-1g platforms: - centos - ubuntu templates: builder - project: name: packer-docker-jobs jobs: - '{project-name}-packer-jobs' project: ci-management project-name: ci-management branch: master build-node: centos7-builder-2c-1g templates: docker platforms: - centos - ubuntu Required parameters: project The project repo as defined in source control. project-name A custom name to call the job in Jenkins. build-node The name of the builder to use when building (Jenkins label). platforms A list of supported platforms. templates A list of templates to build. We recommend setting one template per project section so that we can control which platforms to build for specific templates. Optional parameters: branch The git branch to build from. (default: master) 14 Chapter 2. Guides

19 packer-version The version of packer to install in the build minion, when packer is not available. (default: <defined by global-jjb>) 2.3 Configuration defaults.yaml This file lives in the ci-management repo typically under the path jjb/defaults.yaml. The purpose of this file is to store default variable values used by global-jjb templates. Required jenkins-ssh-credential The name of the Jenkins Credential to use for ssh connections. (ex: jenkins-ssh) lftools-version Version of lftools to install. Can be a specific version like or a PEP-440 definition For example <1.0.0 or >=1.0.0,< mvn-site-id Maven Server ID from settings.xml containing the credentials to push to a Maven site repository. mvn-staging-id Maven Server ID from settings.xml containing the credentials to push to a Maven staging repository. Gerrit required parameters: gerrit-server-name The name of the Gerrit Server as defined in Gerrit Trigger global configuration. (ex: Primary) GitHub required parameters: git-url Set this to the base URL of your GitHub repo. In general this should be If you are using GitHub Enterprise, or some other GitHub-style system, then it should be whatever your installation base URL is. This sets a job property that GitHub Pull Request Builder requires to work. Note that this is the web url to your project: (eg. \protect\t1\textdollarproject) git-clone-url This is the clone prefix used by GitHub jobs. Set this to either the same base url as git-url, or to git@github.com: including the trailing :. Determined by your clone method (https or git). github-org The name of the GitHub organization interpolated into the scm config. github_pr_org The name of the GitHub organization. All members of this organization will be able to trigger jobs. github_pr_whitelist List of GitHub members you wish to be able to trigger jobs. github_pr_admin_list List of GitHub members that will have admin privileges on the jobs. Example Gerrit Infra: - defaults: name: global # lf-infra defaults jenkins-ssh-credential: jenkins-ssh gerrit-server-name: OpenDaylight lftools-version: '<1.0.0' mvn-site-id: opendaylight-site mvn-staging-id: opendaylight-staging 2.3. Configuration 15

20 Example GitHub Infra: - defaults: name: global # lf-infra defaults jenkins-ssh-credential: jenkins-ssh github-org: lfit github_pr_whitelist: - jpwku - tykeal - zxiiro github_pr_admin_list: - tykeal lftools-version: '<1.0.0' mvn-site-id: opendaylight-site mvn-staging-id: opendaylight-staging Jenkins Files global-jjb makes use of the Jenkins Config File Provider plugin to provide some default configurations for certain tools. This section details the files to define in Jenkins Manage Files configuration. npmrc This file contains default npmrc configuration and lives in $HOME/.npmrc. Documentation for npmrc is available via the npm project. Required This file MUST exist. An empty file is acceptable if a proxy is not available for the project. type Custom file Create a Custom file with contents: registry = clouds-yaml Needed by openstack client and packer to fetch OpenStack credentials and configuration. This file is Open- Stack s clouds.yaml file. Optional Needed for jobs that use openstack client. packer if building against OpenStack infra. type Custom file Create a Custom file with contents: clouds: vex: auth: project_name: OS_PROJECT_NAME username: OS_USERNAME password: OS_PASSWORD auth_url: ' user_domain_name: Default (continues on next page) 16 Chapter 2. Guides

21 project_domain_name: Default region_name: ca-ymq-1 (continued from previous page) Warning: If using packer make sure that the clouds.yaml profile configuration is NOT configured. Using profile causes packer to look for another file called clouds-public.yaml for configuration. pipconf This file contains default configuration for the python-pip tool and lives in $HOME/.config/pip/pip.conf. Documentation for pip.conf is available via the pip project. Required This file MUST exist. An empty file is acceptable if a proxy is not available for the project. type Custom file Create a Custom file with contents: [global] timeout = 60 index-url = jjbini This file contains the Jenkins Job Builder configuration for CI Jobs. Required This file MUST exist. type Custom file Create a Custom file with contents: [job_builder] ignore_cache=true keep_descriptions=false include_path=.:scripts:~/git/ recursive=true [jenkins] user=jenkins-jobbuilder password= abcdef abcdef url= query_plugins_info=false [production] user=jenkins-jobbuilder password= abcdef abcdef url= query_plugins_info=false [sandbox] user=jenkins-jobbuilder password= abcdef abcdef url= query_plugins_info=false 2.3. Configuration 17

22 The last 2 sections are for the jenkins-cfg job use, they should match the silo names for the respective Jenkins systems, typically production and sandbox. jenkins-log-archives-settings See lf-infra-ship-logs for usage. If not archiving logs then keep this file with default settings, global-jjb needs the file to exist to function. Requires a credential named logs of type Username and Password created in the Jenkins Credentials system. 1. Add Server Credentials 2. Set ServerId to logs 3. Set Credentials to the logs user created in the Credentials System Required This file MUST exist if using log archiving. type Maven settings.xml <?xml version="1.0" encoding="utf-8"?> <settings xmlns=" xmlns:xsi=" xsi:schemalocation=" apache.org/xsd/settings xsd"> </settings> Note: This example is the default boilerplate generated by Jenkins with the comments stripped out. We can also use the default generated by Jenkins without modifying it. packer-cloud-env Cloud environment configuration variables for Packer jobs. whichever clouds packer jobs are using. Required This file MUST exist to use packer jobs. type Json file These can contain credentials and configuration for { } "cloud_auth_url": " "cloud_tenant": "TENANT_ID", "cloud_user": "CLOUD_USERNAME", "cloud_pass": "CLOUD_PASSWORD", "cloud_network": "CLOUD_NETWORK", "ssh_proxy_host": "" Jenkins CI Jobs jenkins-cfg-merge This job manages Jenkins Global configuration. Refer to the CI Documentation for job configuration details. 18 Chapter 2. Guides

23 2.3.4 Log Archiving The logs account requires a Maven Settings file created called jenkins-log-archives-settings with a server ID of logs containing the credentials for the logs user in Nexus. 2.4 Best Practices JJB YAML Layout Note: While some of this applies to the Global JJB project other recommendations are generally useful to projects that might be defining JJB templates. The Global JJB project is a useful example project to look at so we recommend referring to the Maven job definitions as an example as you read the documentation below: We recommend sectioning off the template into 3 general sections in order: 1. Job Groups (optional) 2. Common Functions 3. Job Template Definitions In section 1) not all configurations need this so is an optional section. Job groups are useful in cases where there are jobs that are generally useful together. For example the OpenDaylight uses a lot of Merge and Verify job combinations so every new project will want both job types defined in their project. In section 2) we want to define all common functions (anchors, aliases, macros) that are generally useful to all jobs in the file. This allows job template developers to look at the top of the file to see if there are useful functions already defined that they can reuse. In section 3) we can declare our job definitions. In the Global JJB project we create Gerrit and GitHub versions of the jobs so the format we use here might look strange at first but is well layed out for code reuse if we need to define 2 or more versions of the same job template for different systems. We will define this in more detail in the next section. Job Template Layout 1. Comment of Job Template Name 2. Macro containing build definition of the job a. Macro named after job b. Complete documentation of the job parameters c. Default parameters defined by the job d. Job configuration 3. job-template definition containing build triggers In section 1) we need to declare a in large comment text to identify the job section. In section 2) we declare the actual job definition. This is so that we have a single macro that we call in all the real job-template sections that is reusable and not duplicating any code. First we declare the macro as the job name. Then in 2.b) we provide the complete documentation of the job parameters this is so that we can link users of the job to this file and they can understand fully what options they can configure for this particular job. Then we define defaults for any parameters that are optional. The last section we define the job configuration which completes the macro Best Practices 19

24 In section 3) we declare the actual job-template. Because of all the preparations above job template definitions should be small and simple. It needs to define the scm and job triggers. The Global JJB project needs to support both Gerrit and GitHub versions of the same job so the job definitions there have 2 templates for each job defined Passing parameters to shell scripts There are 2 ways to pass parameters into scripts: 1. JJB variables in the format {var} 2. Environment variables in the format ${VAR} We recommend avoiding using method 1 (Pass JJB variables) into shell scripts and instead always use method 2 (Environment variables). This makes troubleshooting JJB errors easier and does not require escaping curly braces. This method requires 3 steps: 1. Declare a parameter section or inject the variable as properties-content. 2. Invoke the shell script with include-raw-escape instead of include-raw. 3. Use the shell variable in shell script. The benefit of this method is that parameters will always be at the top of the job page and when clicking the Build with Parameters button in Jenkins we can see the parameters before running the job. We can review the parameters retroactively by visiting the job parameters page job/lastsuccessfulbuild/parameters/. Injecting variables as properties-content makes the variable local to the specific macro, while declaring it as parameter makes the variable global. Note: When a macro which invokes a shell script has no JJB parameters defined!include-raw-escape will insert extra curly braces, in such cases its recommended to use!include-raw Shell scripts When developing shell scripts for JJB we recommend to create shell scripts as a separate file instead of inlining in YAML. This way we can ensure that the ShellCheck linter can catch potential issues with the scripts. When writing the script itself, we recommend to redeclare all expected inputs at the top of the file using lowercase variable names before setting set -u after the inputs section. This ensures that all variables the script expects are at the top of the file which is useful for others to review and debug the script at a later stage. The set -u configuration before the start of the script code ensures that we catch any of these undeclared variables at the top of the file. Example: #!/bin/bash # Inputs tox_dir="${tox_dir:-$workspace}" tox_envs="${tox_envs:-}" # Script start set -eux -o pipefail #... script code goes here 20 Chapter 2. Guides

25 2.4.4 Usage of config-file-provider When using the config-file-provider plugin in Jenkins to provide a config file. We recommend using a macro so that we can configure the builder to remove the config file as a last step. This ensures that credentials do not exist on the system for longer than it needs to. ship-logs example: - builder: name: lf-ship-logs builders: - config-file-provider: files: - file-id: jenkins-log-archives-settings variable: SETTINGS_FILE - shell:!include-raw: -../shell/logs-get-credentials.sh - shell:!include-raw: -../shell/logs-deploy.sh - shell:!include-raw: -../shell/logs-clear-credentials.sh - description-setter: regexp: '^Build logs:.*' In this example the script logs-deploy requires a config file to authenticate with Nexus to push logs up. We declare a macro here so that we can ensure that we remove credentials from the system after the scripts complete running via the logs-clear-credentials.sh script. This script contains 3 basic steps: 1. Provide credentials via config-file-provider 2. Run logs-deploy.sh 3. Remove credentials provided by config-file-provider Preserving Objects in Variable References JJB has an option to preserve a data structure object when you want to pass it to a template. org/infra/jenkins-job-builder/definition.html#variable-references One thing that is not explicitly covered is the format of the variable name that you pass the object to. When you use the {obj:key} notation to preserve the original data structure object, it will not work if the variable name has a dash - in it. The standard that we follow, and recommend, is to use an underscore _ instead of a dash. Example:.. literalinclude:: _static/github-pr-trigger.example In the above example note the use of underscores in github_pr_whitelist, github_pr_admin_list, and github_included_regions Using single quotes around variables Its recommended to use single quotes around JJB variables {variable}-field during variable substitution or when using a variable in a string field, in other cases its recommended to drop the single quotes. Example: 2.4. Best Practices 21

26 - builder: name: lf-user-logs builders: - inject: properties-content: 'HOME={user-home}' - build-file: settings: '{settings-file}' file-version: '{file-version}' Variable expansion and Defaults JJB has a concept called Defaults which is what JJB will replace a variable with if unset. Variables can configure dynamic content in job-template sections and allow certain options in these sections to be configurable. The section that expands Defaults is Job Templates no other sections will expand a default. This documentation will explain how variables and defaults expansion works and which take precedence in JJB s variable expansion logic for the following configuration sections. macro job-template project default Macro sections Macro sections can contain variables but do NOT support default values getting filled in both at the macro definition level and at the defaults configuration level. Macros and Job Templates can use Macros but any variables defined in a Macro needs to pass a value or a new variable redefined in the Job Template if you want to pass on the configuration. So for example if you have a macro that has a {msg} variable: Example: - builder: name: echo-msg builders: - shell: "echo {msg}" Any downstream job-templates or macros that use this macro MUST pass in a msg: Hello definition or redefine the msg variable msg: {msg}. Job Template sections Job Template sections can use defaults in two ways. 1. Configure the message: - job-template: name: echo-hello-world builders: - echo-msg: msg: 'Hello World' 22 Chapter 2. Guides

27 2. Re-define {msg} variable - job-template: name: echo-message builders: - echo-msg: msg: '{message}' In option 2, we redefine the variable msg as {message} which a user of the job-template can now pass into the job their own custom message which is different than option 1, where we set a static message to pass in. We purposely redefined the {msg} to {message} here to show that you do not need to redefine it with the same name but we could have used the same name {msg} in the template too if we wanted to keep it the same. Job Templates can also default a default variable for the variables it defines. Example: - job-template: name: echo-message message: 'Hello World' builders: - echo-msg: msg: '{message}' This creates a job template variable called {message} which will default to Hello World if the user of the template does not explicitly pass in a message. We should be aware of 2 Defaults concepts: 1. Default as defined in the job-template 2. Default as defined in a defaults configuration (typically defaults.yaml) In this case there is a default {message} set in the job-template. JJB will use this default if the user (project section) does not declare a {message}. If we do not declare a default in the job-template then JJB will fallback to checking the defaults configuration. This means that the precedence of defaults is as follows: 1. User-provided 2. Job Template 3. Defaults.yaml Project sections Project sections define real jobs and pass in variables as necessary. Projects sections do NOT expand defaults.yaml. So you cannot configure a setting with {var} in here and expect defaults.yaml to fill it in for you. Define required configuration here. Example: - project name: foo jobs: - 'echo-message' message: 'I am foo' 2.4. Best Practices 23

28 Defaults sections Defaults sections are the absolute last thing JJB checks if a variable is not configured in a job-template and user did not pass in the variable. JJB will fill in whatever is in the defaults configuration. Variable expansion order of precedence seems to be: 1. job-group section definition 2. project section definition 3. job-template variable definition 4. defaults.yaml variable definition Note: Defaults set variables in job-templates and are NOT used in Macros. global-jjb should not provide job-group definitions and leave it up to users of global-jjb to create their own as a jobgroup as a variable defined in a job group the highest precedence. Global JJB should strive to be purely a job-template and macro library for downstream consumers. Final thoughts For any Basic Job Configuration for example concurrent, jdk, node etc... we cannot set defaults with the same name as JJB will not expand them. To use node we need to give the variable for that setting a different name such as build-node instead, if we want JJB to perform expansion for those settings. This issue affects top level job configuration, it does not appear to affect items below the top level such as calling a builder, wrapper or parameter. 2.5 Glossary ciman Short for ci-management. ci-management Refers to the SCM repository containing the JJB configuration files. In most LF Projects this is the repository named ci-management, but is releng/builder in the OpenDaylight project and releng in the OPNFV project. JJB Short for Jenkins Job Builder (JJB) a tool used to convert YAML definitions into XML as a way to define Jenkins job configuration. 2.6 Appendix ShellCheck When using ShellCheck to lint global-jjb or any projects that include global-jjb as part of their project (common with ci-management repos) then we require version 0.4.x of ShellCheck installed on the build vms. This version introduces annotations used by shell scripts in this repo. 24 Chapter 2. Guides

29 CHAPTER 3 Global JJB Templates Job template code is in the jjb/ directory but documentation is in the docs/jjb/ directory of this project. 3.1 C/C++ Jobs Job Templates CMake Stage Stage job which runs cmake && make && make install and then packages the project into a tar.xz tarball to produce a release candidate. Template Names {project-name}-cmake-stage-{stream} gerrit-cmake-stage github-cmake-stage Comment Trigger stage-release Required parameters build-node The node to run build on. jenkins-ssh-credential Credential to use for SSH. (Configure in defaults.yaml) nexus-group-id The Maven style Group ID for the namespace of the project in Nexus. staging-profile-id The unique Nexus Staging Profile ID for the project. Contact your infra admin if you do not know it. Optional parameters branch Git branch to fetch for the build. (default: master) build-days-to-keep Days to keep build logs in Jenkins. (default: 7) 25

30 build-dir Directory to build the project in. (default: $WORKSPACE/target) build-timeout Timeout in minutes before aborting build. (default: 60) cmake-opts Parameters to pass to cmake. (default: ) git-url URL clone project from. (default: $GIT_URL/$PROJECT) install-prefix CMAKE_INSTALL_PREFIX to use for install. (default: $BUILD_DIR/output) install-prefix: #!/bin/bash echo "Hello World." Listing 1: Example make-opts Parameters to pass to make. (default: ) pre-build Shell script to run before performing build. Useful for setting up dependencies. (default: ) stream Keyword that to represent a release code-name. Often the same as the branch. (default: master) submodule-recursive Whether to checkout submodules recursively. (default: true) submodule-timeout Timeout (in minutes) for checkout operation. (default: 10) version (default: ) Project version to stage release as. There are 2 methods for using this value: 1. Defined explicitly here. 2. Leave this value blank and set /tmp/artifact_version Use method 2 in conjunction with pre-build configuration to generate the artifact_version automatically from files in the project s repository. For example with pre-build script: #!/bin/bash MAJOR_VERSION="$(grep 'set(ocio_version_major' CMakeLists.txt awk '{{print $NF}}' awk -F')' '{{print $1}}')" MINOR_VERSION="$(grep 'set(ocio_version_minor' CMakeLists.txt awk '{{print $NF}}' awk -F')' '{{print $1}}')" PATCH_VERSION="$(grep 'set(ocio_version_patch' CMakeLists.txt awk '{{print $NF}}' awk -F')' '{{print $1}}')" echo "${{MAJOR_VERSION}}.${{MINOR_VERSION}}.${{PATCH_VERSION}} " > /tmp/artifact_version CMake Verify Verify job which runs cmake && make && make install to test a project build.. Template Names {project-name}-cmake-verify-{stream} gerrit-cmake-verify github-cmake-verify Comment Trigger recheck reverify 26 Chapter 3. Global JJB Templates

31 Required parameters build-node The node to run build on. jenkins-ssh-credential Credential to use for SSH. (Configure in defaults.yaml) Optional parameters branch Git branch to fetch for the build. (default: master) build-days-to-keep Days to keep build logs in Jenkins. (default: 7) build-dir Directory to build the project in. (default: $WORKSPACE/target) build-timeout Timeout in minutes before aborting build. (default: 60) cmake-opts Parameters to pass to cmake. (default: ) git-url URL clone project from. (default: $GIT_URL/$PROJECT) install-prefix CMAKE_INSTALL_PREFIX to use for install. (default: $BUILD_DIR/output) install-prefix: #!/bin/bash echo "Hello World." Listing 2: Example make-opts Parameters to pass to make. (default: ) pre-build Shell script to run before performing build. Useful for setting up dependencies. (default: ) stream Keyword that to represent a release code-name. Often the same as the branch. (default: master) submodule-recursive Whether to checkout submodules recursively. (default: true) submodule-timeout Timeout (in minutes) for checkout operation. (default: 10) gerrit_verify_triggers Override Gerrit Triggers. gerrit_trigger_file_paths Override file paths which to filter which file modifications will trigger a build. 3.2 CI Jobs Job Groups Job groups are a great tool to configure categories of jobs together at the same time. Below the example are some starting point job-groups but we recommend creating your own to ensure that the jobs configured reflect the project s needs. An example project: - job-group: name: odl-maven-jobs jobs: - gerrit-maven-clm (continues on next page) 3.2. CI Jobs 27

32 - gerrit-maven-merge - gerrit-maven-release - gerrit-maven-verify - gerrit-maven-verify-dependencies: build-timeout: 180 (continued from previous page) mvn-version: mvn35 - project: name: aaa jobs: - odl-maven-jobs In this example we are using the job-group to assign a list of common jobs to the aaa project. The job-group also hardcodes mvn-version to mvn35 and build-timeout to 180 for all projects using this job-group. A benefit of this method is for example disabling entire category of jobs by modifying the job-group, insert disable-job: true parameter against the jobs to disable. Below is a list of CI job groups: job-group: name: '{project-name}-ci-jobs' jobs: - gerrit-jenkins-cfg-merge - gerrit-jenkins-sandbox-cleanup - gerrit-jjb-deploy-job - gerrit-jjb-merge - gerrit-jjb-verify - job-group: name: '{project-name}-github-ci-jobs' jobs: - github-jenkins-cfg-merge - github-jenkins-sandbox-cleanup - github-jjb-deploy-job - github-jjb-merge - github-jjb-verify - job-group: name: '{project-name}-info-yaml-jobs' jobs: - gerrit-info-yaml-verify - job-group: name: '{project-name}-github-info-yaml-jobs' jobs: - github-info-yaml-verify - job-group: name: '{project-name}-packer-jobs' (continues on next page) 28 Chapter 3. Global JJB Templates

33 jobs: - gerrit-packer-merge - gerrit-packer-verify (continued from previous page) - job-group: name: '{project-name}-github-packer-jobs' jobs: - github-packer-merge - github-packer-verify Macros lf-infra-jjb-parameters Required Parameters jjb-cache Location of Jenkins Job Builder (JJB) cache used for jjb jobs. jjb-version Version of Jenkins Job Builder (JJB) to install and use in the jjb jobs. lf-jenkins-cfg-clouds Deploys Jenkins Cloud configuration read from the jenkins-clouds directory in ci-management repositories. Note: Requires the jjbini file in Jenkins CFP to contain JJB 2.0 style config definitions for production and sandbox systems. Required Parameters jenkins-silos Space-separated list of Jenkins silos to update configuration for as defined in ~/.config/jenkins_jobs/jenkins_jobs.ini lf-jenkins-cfg-global-vars Manages the Global Jenkins variables. This macro will clear all exist macros in Jenkins and replaces them with the ones defined by the ci-management/jenkins-config/global-vars-silo.sh script. Note: Requires the jjbini file in Jenkins CFP to contain JJB 2.0 style config definitions for production and sandbox systems. Required parameters jenkins-silos Space-separated list of Jenkins silos to update configuration for as defined in ~/.config/jenkins_jobs/jenkins_jobs.ini lf-infra-jjbini Provides jenkins_jobs.ini configuration for Jenkins CI Jobs 29

34 lf-infra-jjbini-sandbox Provides jenkins_jobs.ini configuration for Jenkins sandbox. Todo: This needs to be consolidated into lf-infra-jjbini when JJB 2.0 is available lf-packer-common Common packer configuration. lf-packer-file-paths Gerrit file-paths for packer jobs. lf-packer-parameters Parameters useful for packer related tasks. Parameters packer-version Version of packer to install / use. (shell: PACKER_VERSION) lf-packer-verify-file-paths Gerrit file-paths for packer verify jobs. lf-puppet-parameters Parameters useful for Puppet related tasks. Parameters puppet-lint-version Version of puppet-lint to install / use. (shell: PUP- PET_LINT_VERSION) Job Templates Gerrit Branch Lock Job submits a patch to lock or unlock a project s branch. Template Names {project-name}-gerrit-branch-lock-{stream} gerrit-branch-lock Comment Trigger lock branch unlock branch 30 Chapter 3. Global JJB Templates

35 Required parameters build-node The node to run build on. jenkins-ssh-credential Credential to use for SSH. (Generally should be configured in defaults.yaml) Optional parameters branch Git branch to build against. (default: master) git-url URL to clone project from. (default: $GIT_URL/$GERRIT_PROJECT) stream Keyword that can be used to represent a release code-name. Often the same as the branch. (default: master) submodule-timeout Timeout (in minutes) for checkout operation. (default: 10) gerrit_merge_triggers Override Gerrit Triggers. Jenkins Configuration Merge Jenkins job to manage Global Jenkins configuration. Note: Requires the jjbini file in Jenkins CFP to contain JJB 2.0 style config definitions for production and sandbox systems. Template names {project-name}-jenkins-cfg-merge gerrit-jenkins-cfg-merge github-jenkins-cfg-merge Optional parameters branch Git branch to build against. (default: master) cron How often to run the job on a cron schedule. git-url URL to clone project from. (default: $GIT_URL/$GERRIT_PROJECT) jenkins-silos Space separated list of Jenkins silos to update configuration for as defined in ~/.config/jenkins_jobs/jenkins_jobs.ini (default: production sandbox) Typically this template is automatically pulled in by the {project-name}-ci-jobs job-group and does not need to be explicitly called if the job group is being used. Minimal Example: project: name: jenkins-cfg-merge-minimal-test jobs: - 'gerrit-jenkins-cfg-merge' project-name: ci-management Full Example: 3.2. CI Jobs 31

36 --- - project: name: jenkins-cfg-merge-full-test jobs: - 'gerrit-jenkins-cfg-merge' project-name: builder jenkins-silos: releng sandbox Global Environment Variables Global Environment Variables are managed via the jenkins-config/global-vars-silo.sh file in cimanagement. Replace SILO with the name of the Jenkins silo the variable configuration is for. The format for this file is KEY=value for example: GERRIT_URL= GIT_BASE=git://devvexx.opendaylight.org/mirror/$PROJECT GIT_URL=git://devvexx.opendaylight.org/mirror JENKINS_HOSTNAME=vex-yul-odl-jenkins-2 LOGS_SERVER= NEXUS_URL= ODLNEXUSPROXY= SILO=sandbox SONAR_URL= Cloud Configuration This configuration requires the OpenStack Cloud plugin in Jenkins and is currently the only cloud plugin supported. OpenStack Cloud plugin version supported: Cloud configuration are managed via a directory structure in ci-management as follows: jenkins-config/clouds/openstack/ jenkins-config/clouds/openstack/cattle/cloud.cfg jenkins-config/clouds/openstack/cattle/centos7-builder-2c-2g.cfg jenkins-config/clouds/openstack/cattle/centos7-builder-4c-4g.cfg jenkins-config/clouds/openstack/cattle/centos7-docker-4c-4g.cfg The directory name inside of the openstack directory is used as the name of the cloud configuration. In this case cattle is being used as the cloud name. The cloud.cfg file is a special file used to configure the main cloud configuration in the format KEY=value. Cloud Parameters CLOUD_URL API endpoint URL for Keystone. (default: ) CLOUD_IGNORE_SSL Ignore unverified SSL certificates. (default: false) CLOUD_ZONE OpenStack region to use. (default: ) 32 Chapter 3. Global JJB Templates

37 CLOUD_CREDENTIAL_ID Credential to use for authentication to OpenStack. (default: os-cloud ) INSTANCE_CAP Total number of instances the cloud will allow spin up. (default: null) SANDBOX_CAP Total number of instances the cloud will allow to spin up. This applies to sandbox systems and overrides the INSTANCE_CAP setting. (default: null) Template Parameters Note: In the case of template definitions of a parameter below is not passed the one defined in default clouds will be inherited. IMAGE_NAME The image name to use for this template. (required) HARDWARE_ID OpenStack flavor to use. (required) LABELS Labels to assign to the vm. (default: FILE_NAME) NETWORK_ID OpenStack network to use. (default: ) USER_DATA_ID User Data to pass into the instance. (default: jenkins-init-script) INSTANCE_CAP Total number of instances of this type that can be launched at one time. When defined in clouds.cfg it defines the total for the entire cloud. (default: null) SANDBOX_CAP Total number of instances of this type that can be launched at one time. When defined in clouds.cfg it defines the total for the entire cloud. This applies to sandbox systems and overrides the INSTANCE_CAP setting. (default: null) FLOATING_IP_POOL Floating ip pool to use. (default: ) SECURITY_GROUPS Security group to use. (default: default ) AVAILABILITY_ZONE OpenStack availability zone to use. (default: ) START_TIMEOUT Number of milliseconds to wait for the agent to be provisioned and connected. (default: ) KEY_PAIR_NAME SSH Public Key Pair to use for authentication. (default: jenkins) NUM_EXECUTORS Number of executors to enable for the instance. (default: 1) JVM_OPTIONS JVM Options to pass to Java. (default: ) FS_ROOT File system root for the workspace. (default: /w ) RETENTION_TIME Number of minutes to wait for an idle slave to be used again before it s removed. If set to -1, the slave will be kept forever. (default: 0) CONNECTION_TYPE The connection type for Jenkins to connect to the build minion. Valid options: JNLP, SSH. (default: SSH ) For a live example see the OpenDaylight project jenkins-config directory. releng-builder/tree/master/jenkins-config Troubleshooting Cloud Configuration The directory groovy-inserts contains the groovy script output that is used to push to Jenkins. In the event of a job failure this file can be inspected CI Jobs 33

ci-management Release 1.0.0

ci-management Release 1.0.0 ci-management Release 1.0.0 Nov 13, 2018 CI Process 1 Summary 1 2 Finding Help on Hyperledger CI 3 3 Common Job Types 5 4 Verify Jobs 7 5 Merge Jobs 9 6 Release Jobs 11 7 Supported Architectures 13 8

More information

ONAP Developer Typical Setup 2017 July ONAP Virtual Developers Event

ONAP Developer Typical Setup 2017 July ONAP Virtual Developers Event ONAP Developer Typical Setup 2017 July 24-26 ONAP Virtual Developers Event Gary Wu Daniel Rose Victor Morales Getting Started with ONAP

More information

withenv Documentation

withenv Documentation withenv Documentation Release 0.7.0 Eric Larson Aug 02, 2017 Contents 1 withenv 3 2 Installation 5 3 Usage 7 3.1 YAML Format.............................................. 7 3.2 Command Substitutions.........................................

More information

Garment Documentation

Garment Documentation Garment Documentation Release 0.1 Evan Borgstrom March 25, 2014 Contents i ii A collection of fabric tasks that roll up into a single deploy function. The whole process is coordinated through a single

More information

BUILD AND DEPLOY ORACLE SERVICE BUS PROJECTS FROM ORACLE DEVELOPER CLOUD SERVICE TO ORACLE SOA CLOUD SERVICE USING THE ORACLE SERVICE BUS PLUG-IN

BUILD AND DEPLOY ORACLE SERVICE BUS PROJECTS FROM ORACLE DEVELOPER CLOUD SERVICE TO ORACLE SOA CLOUD SERVICE USING THE ORACLE SERVICE BUS PLUG-IN BUILD AND DEPLOY ORACLE SERVICE BUS PROJECTS FROM ORACLE DEVELOPER CLOUD SERVICE TO ORACLE SOA CLOUD SERVICE USING THE ORACLE SERVICE BUS PLUG-IN Kishor Kumar Contents 1. Introduction... 2 2. Prerequisites...

More information

Seven Habits of Highly Effective Jenkins Users

Seven Habits of Highly Effective Jenkins Users Seven Habits of Highly Effective Jenkins Users What is this talk about? Lessons learned: Maintaining multiple large Jenkins instances. Working on Jenkins itself, and many of its plugins. Seeing customer

More information

Bitte decken Sie die schraffierte Fläche mit einem Bild ab. Please cover the shaded area with a picture. (24,4 x 7,6 cm)

Bitte decken Sie die schraffierte Fläche mit einem Bild ab. Please cover the shaded area with a picture. (24,4 x 7,6 cm) Bitte decken Sie die schraffierte Fläche mit einem Bild ab. Please cover the shaded area with a picture. (24,4 x 7,6 cm) Continuous Integration / Continuous Testing Seminary IIC Requirements Java SE Runtime

More information

Red Hat OpenShift Application Runtimes 1

Red Hat OpenShift Application Runtimes 1 Red Hat OpenShift Application Runtimes 1 Install and Configure the Fabric8 Launcher Tool For Use with Red Hat OpenShift Application Runtimes Last Updated: 2018-03-09 Red Hat OpenShift Application Runtimes

More information

Continuous Integration using Docker & Jenkins

Continuous Integration using Docker & Jenkins Jenkins LinuxCon Europe 2014 October 13-15, 2014 Mattias Giese Solutions Architect giese@b1-systems.de - Linux/Open Source Consulting, Training, Support & Development Introducing B1 Systems founded in

More information

Red Hat OpenShift Application Runtimes 0.1

Red Hat OpenShift Application Runtimes 0.1 Red Hat OpenShift Application Runtimes 0.1 Install and Configure the developers.redhat.com/launch Application on a Single-node OpenShift Cluster For Use with Red Hat OpenShift Application Runtimes Last

More information

Simplified CICD with Jenkins and Git on the ZeroStack Platform

Simplified CICD with Jenkins and Git on the ZeroStack Platform DATA SHEET Simplified CICD with Jenkins and Git on the ZeroStack Platform In the technical article we will walk through an end to end workflow of starting from virtually nothing and establishing a CICD

More information

DCLI User's Guide. Modified on 20 SEP 2018 Data Center Command-Line Interface

DCLI User's Guide. Modified on 20 SEP 2018 Data Center Command-Line Interface Modified on 20 SEP 2018 Data Center Command-Line Interface 2.10.0 You can find the most up-to-date technical documentation on the VMware website at: https://docs.vmware.com/ If you have comments about

More information

TM DevOps Use Case. 2017TechMinfy All Rights Reserved

TM DevOps Use Case. 2017TechMinfy All Rights Reserved Document Details Use Case Name TMDevOps Use Case04 First Draft 10 th Dec 2017 Author Reviewed By Amrendra Kumar Pradeep Narayanaswamy Contents Scope... 4 About Customer... 4 Pre-Conditions/Trigger... 4

More information

Change-sets. Basavaraj Karadakal

Change-sets. Basavaraj Karadakal Change-sets Basavaraj Karadakal (bkrdkl@juniper.net) Development environment Component based development model. Developers spread across multiple sites. Over 800 components. Over 500 repos. Repos nested

More information

DCLI User's Guide. Data Center Command-Line Interface 2.9.1

DCLI User's Guide. Data Center Command-Line Interface 2.9.1 Data Center Command-Line Interface 2.9.1 You can find the most up-to-date technical documentation on the VMware website at: https://docs.vmware.com/ If you have comments about this documentation, submit

More information

DCLI User's Guide. Data Center Command-Line Interface

DCLI User's Guide. Data Center Command-Line Interface Data Center Command-Line Interface 2.10.2 You can find the most up-to-date technical documentation on the VMware website at: https://docs.vmware.com/ If you have comments about this documentation, submit

More information

Seven Habits of Highly Effective Jenkins Users. Andrew Bayer Cloudera OSCON Java 2011

Seven Habits of Highly Effective Jenkins Users. Andrew Bayer Cloudera OSCON Java 2011 Seven Habits of Highly Effective Jenkins Users Andrew Bayer Cloudera OSCON Java 2011 Introduction Who am I? I'm a build guy, with a focus on Java builds. I've been using and working on Jenkins since early

More information

TangeloHub Documentation

TangeloHub Documentation TangeloHub Documentation Release None Kitware, Inc. September 21, 2015 Contents 1 User s Guide 3 1.1 Managing Data.............................................. 3 1.2 Running an Analysis...........................................

More information

Continuous Integration, Continuous Deployment and Continuous Testing by HP Codar using ALM and Jenkins

Continuous Integration, Continuous Deployment and Continuous Testing by HP Codar using ALM and Jenkins HP Codar Software Version 1.0 Continuous Integration, Continuous Deployment and Continuous Testing by HP Codar using ALM and Jenkins HP Codar (1.0) Page 1 of 24 Contents What is Codar?... 3 Why is Codar

More information

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Gerrit

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Gerrit Gerrit About the Tutorial Gerrit is a web-based code review tool, which is integrated with Git and built on top of Git version control system (helps developers to work together and maintain the history

More information

Index. Alias syntax, 31 Author and commit attributes, 334

Index. Alias syntax, 31 Author and commit attributes, 334 Index A Alias syntax, 31 Author and commit attributes, 334 B Bare repository, 19 Binary conflict creating conflicting changes, 218 during merging, 219 during rebasing, 221 Branches backup, 140 clone-with-branches

More information

#jenkinsconf. Managing jenkins with multiple components project. Jenkins User Conference Israel. Presenter Name Ohad Basan

#jenkinsconf. Managing jenkins with multiple components project. Jenkins User Conference Israel. Presenter Name Ohad Basan Jenkins User Conference Israel #jenkinsconf Managing jenkins with multiple components project Presenter Name Ohad Basan Presenter Company Www.redhat.com July 16, 2014 #jenkinsconf Who am I Ohad Basan CI

More information

NetApp Jenkins Plugin Documentation

NetApp Jenkins Plugin Documentation NetApp Jenkins Plugin Documentation Release 2.0 Akshay Patil Aug 22, 2017 Contents 1 Contents 3 1.1 Pre-Requisites.............................................. 3 1.2 Configuration...............................................

More information

Handel-CodePipeline Documentation

Handel-CodePipeline Documentation Handel-CodePipeline Documentation Release 0.0.6 David Woodruff Dec 11, 2017 Getting Started 1 Introduction 3 2 Installation 5 3 Tutorial 7 4 Using Handel-CodePipeline 11 5 Handel-CodePipeline File 13

More information

Infrastructure-as-Code and CI Infrastructure at Open Stack A look at one of the largest CI systems and system administration

Infrastructure-as-Code and CI Infrastructure at Open Stack A look at one of the largest CI systems and system administration Infrastructure-as-Code and CI Infrastructure at Open Stack A look at one of the largest CI systems and system administration Andreas Jaeger Product Manager SUSE aj@suse.com OpenStack Open source software

More information

Ansible Tower Quick Setup Guide

Ansible Tower Quick Setup Guide Ansible Tower Quick Setup Guide Release Ansible Tower 2.4.5 Red Hat, Inc. Jun 06, 2017 CONTENTS 1 Quick Start 2 2 Login as a Superuser 3 3 Import a License 4 4 Examine the Tower Dashboard 6 5 The Setup

More information

DevOps examples on NonStop Tools Overview. Cor Geboers, ATC Consultant

DevOps examples on NonStop Tools Overview. Cor Geboers, ATC Consultant DevOps examples on NonStop Tools Overview Cor Geboers, ATC Consultant About me Cor Geboers Senior Consultant in NonStop ATC, based in Belgium 35+ years in IT development and support 25+ years NonStop experience

More information

User Workspace Management

User Workspace Management Access the Interface, page 1 User Management Workspace User Types, page 4 Projects (Admin User), page 5 Users (Admin User), page 9 CML Server (Admin User), page 11 Connectivity, page 30 Using the VM Control

More information

The OpenStack Project Continuous Integration System. Elizabeth K.

The OpenStack Project Continuous Integration System. Elizabeth K. The OpenStack Project Continuous Integration System Elizabeth K. Joseph @pleia2 Elizabeth K. Joseph Core/root member of the OpenStack Infrastructure Team Author of Common OpenStack Deployments (along with

More information

FEEG Applied Programming 3 - Version Control and Git II

FEEG Applied Programming 3 - Version Control and Git II FEEG6002 - Applied Programming 3 - Version Control and Git II Richard Boardman, Sam Sinayoko 2016-10-19 Outline Learning outcomes Working with a single repository (review) Working with multiple versions

More information

LGTM Enterprise System Requirements. Release , August 2018

LGTM Enterprise System Requirements. Release , August 2018 Release 1.17.2, August 2018 Semmle Inc 180 Sansome St San Francisco, CA 94104 Copyright 2018, Semmle Ltd. All rights reserved. LGTM Enterprise release 1.17.2 Document published August 30, 2018 Contents

More information

bootmachine Documentation

bootmachine Documentation bootmachine Documentation Release 0.6.0 Thomas Schreiber April 20, 2015 Contents 1 bootmachine 3 1.1 Configuration Management Tools.................................... 3 1.2 Providers.................................................

More information

BUILD AND DEPLOY SOA PROJECTS FROM DEVELOPER CLOUD SERVICE TO ORACLE SOA CLOUD SERVICE

BUILD AND DEPLOY SOA PROJECTS FROM DEVELOPER CLOUD SERVICE TO ORACLE SOA CLOUD SERVICE BUILD AND DEPLOY SOA PROJECTS FROM DEVELOPER CLOUD SERVICE TO ORACLE SOA CLOUD SERVICE Ashwini Sharma 1 CONTENTS 1. Introduction... 2 2 Prerequisites... 2 3 Patch the SOA Server Installation... 2 4. Use

More information

nacelle Documentation

nacelle Documentation nacelle Documentation Release 0.4.1 Patrick Carey August 16, 2014 Contents 1 Standing on the shoulders of giants 3 2 Contents 5 2.1 Getting Started.............................................. 5 2.2

More information

DCLI User's Guide. Data Center Command-Line Interface 2.7.0

DCLI User's Guide. Data Center Command-Line Interface 2.7.0 Data Center Command-Line Interface 2.7.0 You can find the most up-to-date technical documentation on the VMware Web site at: https://docs.vmware.com/ The VMware Web site also provides the latest product

More information

Documentation External Synchronization FirstSpirit

Documentation External Synchronization FirstSpirit Documentation External Synchronization FirstSpirit 2018-10 Status RELEASED Department Copyright FS-Core 2018 e-spirit AG File name SYNC_EN_FirstSpirit_External_Synchronization e-spirit AG Stockholmer Allee

More information

Salesforce DX Setup Guide

Salesforce DX Setup Guide Salesforce DX Setup Guide Version 44.0, Winter 19 @salesforcedocs Last updated: September 6, 2018 Copyright 2000 2018 salesforce.com, inc. All rights reserved. Salesforce is a registered trademark of salesforce.com,

More information

At a high level, the current OPNFV CI pipeline can be summarized as follows:

At a high level, the current OPNFV CI pipeline can be summarized as follows: Cross Community Continuous Integration (XCI) Empowers Innovation by Increasing Collaboration Between and Upstream Communities With XCI, regularly integrates the latest from each supported branch of select

More information

cwmon-mysql Release 0.5.0

cwmon-mysql Release 0.5.0 cwmon-mysql Release 0.5.0 October 18, 2016 Contents 1 Overview 1 1.1 Installation................................................ 1 1.2 Documentation.............................................. 1 1.3

More information

Version Control Systems

Version Control Systems Nothing to see here. Everything is under control! September 16, 2015 Change tracking File moving Teamwork Undo! Undo! UNDO!!! What strategies do you use for tracking changes to files? Change tracking File

More information

Automatic MySQL Schema Management with Skeema. Evan Elias Percona Live, April 2017

Automatic MySQL Schema Management with Skeema. Evan Elias Percona Live, April 2017 Automatic MySQL Schema Management with Skeema Evan Elias Percona Live, April 2017 What is Schema Management? Organize table schemas in a repo Execution of all DDL, on the correct MySQL instances, with

More information

EDB Postgres Enterprise Manager EDB Ark Management Features Guide

EDB Postgres Enterprise Manager EDB Ark Management Features Guide EDB Postgres Enterprise Manager EDB Ark Management Features Guide Version 7.4 August 28, 2018 by EnterpriseDB Corporation Copyright 2013-2018 EnterpriseDB Corporation. All rights reserved. EnterpriseDB

More information

Linux System Management with Puppet, Gitlab, and R10k. Scott Nolin, SSEC Technical Computing 22 June 2017

Linux System Management with Puppet, Gitlab, and R10k. Scott Nolin, SSEC Technical Computing 22 June 2017 Linux System Management with Puppet, Gitlab, and R10k Scott Nolin, SSEC Technical Computing 22 June 2017 Introduction I am here to talk about how we do Linux configuration management at the Space Science

More information

OpenStack Infrastructure tools

OpenStack Infrastructure tools Coordination and OpenStack Infrastructure tools you will want to borrow Thierry Carrez Carrez (@tcarrez) Thierry (@tcarrez) Release Manager, OpenStack Crazy loads every day 000 patchsets are proposed

More information

Tutorial 2 GitHub Tutorial

Tutorial 2 GitHub Tutorial TCSS 360: Software Development Institute of Technology and Quality Assurance Techniques University of Washington Tacoma Winter 2017 http://faculty.washington.edu/wlloyd/courses/tcss360 Tutorial 2 GitHub

More information

JenkinsPipelineUnit. Test your Continuous Delivery Pipeline. Ozan Gunalp - Emmanuel Quincerot

JenkinsPipelineUnit. Test your Continuous Delivery Pipeline. Ozan Gunalp - Emmanuel Quincerot JenkinsPipelineUnit Test your Continuous Delivery Pipeline Ozan Gunalp - Emmanuel Quincerot Who we are Ozan Günalp Emmanuel Quincerot Developer at LesFurets Developer at LesFurets PhD in Computer Science

More information

BIG-IP Access Policy Manager : Portal Access. Version 12.1

BIG-IP Access Policy Manager : Portal Access. Version 12.1 BIG-IP Access Policy Manager : Portal Access Version 12.1 Table of Contents Table of Contents Overview of Portal Access...7 Overview: What is portal access?...7 About portal access configuration elements...7

More information

We are ready to serve Latest Testing Trends, Are you ready to learn?? New Batches Info

We are ready to serve Latest Testing Trends, Are you ready to learn?? New Batches Info We are ready to serve Latest Testing Trends, Are you ready to learn?? New Batches Info START DATE : TIMINGS : DURATION : TYPE OF BATCH : FEE : FACULTY NAME : LAB TIMINGS : PH NO: 9963799240, 040-40025423

More information

Continuous Integration (CI) with Jenkins

Continuous Integration (CI) with Jenkins TDDC88 Lab 5 Continuous Integration (CI) with Jenkins This lab will give you some handson experience in using continuous integration tools to automate the integration periodically and/or when members of

More information

Git Basi, workflow e concetti avanzati (pt2)

Git Basi, workflow e concetti avanzati (pt2) Git Basi, workflow e concetti avanzati (pt2) Andrea Fornaia, Ph.D. Department of Mathema.cs and Computer Science University of Catania Viale A.Doria, 6-95125 Catania Italy fornaia@dmi.unict.it hfp://www.cs.unict.it/~fornaia/

More information

Anchore Container Image Scanner Plugin

Anchore Container Image Scanner Plugin Anchore Container Image Scanner Plugin Plugin Information View Anchore Container Image Scanner on the plugin site for more information. Older versions of this plugin may not be safe to use. Please review

More information

Composer and Drupal. CIDUG Meeting December 13, 2018 John Rearick

Composer and Drupal. CIDUG Meeting December 13, 2018 John Rearick Composer and Drupal CIDUG Meeting December 13, 2018 John Rearick * Similar to other dependency managers such as: yum, apt, brew, macports, npm, pip, etc. * Helps manage dependency hell. * Lots of dependencies

More information

Tunir Documentation. Release Kushal Das

Tunir Documentation. Release Kushal Das Tunir Documentation Release 0.17 Kushal Das Jul 24, 2017 Contents 1 Why another testing tool? 3 2 Installation 5 2.1 Clone the repository........................................... 5 2.2 Install the dependencies.........................................

More information

TM DevOps Use Case TechMinfy All Rights Reserved

TM DevOps Use Case TechMinfy All Rights Reserved Document Details Use Case Name TMDevOps Use Case01 First Draft 5 th March 2018 Author Reviewed By Prabhakar D Pradeep Narayanaswamy Contents Scope... 4 About Customer... 4 Use Case Description... 4 Primary

More information

EDB Postgres Enterprise Manager EDB Ark Management Features Guide

EDB Postgres Enterprise Manager EDB Ark Management Features Guide EDB Postgres Enterprise Manager EDB Ark Management Features Guide Version 7.6 January 9, 2019 by EnterpriseDB Corporation Copyright 2013-2019 EnterpriseDB Corporation. All rights reserved. EnterpriseDB

More information

viki-fabric-helpers Documentation

viki-fabric-helpers Documentation viki-fabric-helpers Documentation Release 0.0.5 Viki Inc. July 04, 2014 Contents 1 Installation 3 1.1 Installation................................................ 3 2 Configuration 5 2.1 Configuration...............................................

More information

Red Hat JBoss Web Server 3.1

Red Hat JBoss Web Server 3.1 Red Hat JBoss Web Server 3.1 Red Hat JBoss Web Server for OpenShift Installing and using Red Hat JBoss Web Server for OpenShift Last Updated: 2018-03-05 Red Hat JBoss Web Server 3.1 Red Hat JBoss Web

More information

CONTINUOUS INTEGRATION; TIPS & TRICKS

CONTINUOUS INTEGRATION; TIPS & TRICKS CONTINUOUS INTEGRATION; TIPS & TRICKS BIO I DO TECH THINGS I DO THINGS I DO THINGS BLUE OCEAN BEEP BEEP REFACTOR PEOPLE S HOUSES MY TIPS & TRICKS FOR CI - CI Infrastructure - CI Architecture - Pipeline

More information

Git. Charles J. Geyer School of Statistics University of Minnesota. Stat 8054 Lecture Notes

Git. Charles J. Geyer School of Statistics University of Minnesota. Stat 8054 Lecture Notes Git Charles J. Geyer School of Statistics University of Minnesota Stat 8054 Lecture Notes 1 Before Anything Else Tell git who you are. git config --global user.name "Charles J. Geyer" git config --global

More information

ZeroVM Package Manager Documentation

ZeroVM Package Manager Documentation ZeroVM Package Manager Documentation Release 0.2.1 ZeroVM Team October 14, 2014 Contents 1 Introduction 3 1.1 Creating a ZeroVM Application..................................... 3 2 ZeroCloud Authentication

More information

Introduction: Manual Testing :

Introduction: Manual Testing : : What is Automation Testing? Use of Automation. Where do we use. Tools that Do Automation. Web Applications vs Standalone Applications. What is selenium? How selenium works. Manual Testing : HTML: Detailed

More information

EnhancedEndpointTracker Documentation

EnhancedEndpointTracker Documentation EnhancedEndpointTracker Documentation Release 1.0 agccie Jul 23, 2018 Contents: 1 Introduction 1 2 Install 3 2.1 ACI Application............................................. 3 2.2 Standalone Application.........................................

More information

Accelerate at DevOps Speed With Openshift v3. Alessandro Vozza & Samuel Terburg Red Hat

Accelerate at DevOps Speed With Openshift v3. Alessandro Vozza & Samuel Terburg Red Hat Accelerate at DevOps Speed With Openshift v3 Alessandro Vozza & Samuel Terburg Red Hat IT (R)Evolution Red Hat Brings It All Together What is Kubernetes Open source container cluster manager Inspired by

More information

Salesforce DX Setup Guide

Salesforce DX Setup Guide Salesforce DX Setup Guide Version 42.0, Spring 18 @salesforcedocs Last updated: April 24, 2018 Copyright 2000 2018 salesforce.com, inc. All rights reserved. Salesforce is a registered trademark of salesforce.com,

More information

Con$nuous Integra$on Development Environment. Kovács Gábor

Con$nuous Integra$on Development Environment. Kovács Gábor Con$nuous Integra$on Development Environment Kovács Gábor kovacsg@tmit.bme.hu Before we start anything Select a language Set up conven$ons Select development tools Set up development environment Set up

More information

Scientific Software Development with Eclipse

Scientific Software Development with Eclipse Scientific Software Development with Eclipse A Best Practices for HPC Developers Webinar Gregory R. Watson ORNL is managed by UT-Battelle for the US Department of Energy Contents Downloading and Installing

More information

vrealize Code Stream Plug-In SDK Development Guide

vrealize Code Stream Plug-In SDK Development Guide vrealize Code Stream Plug-In SDK Development Guide vrealize Code Stream 2.2 This document supports the version of each product listed and supports all subsequent versions until the document is replaced

More information

Source Code Management wih git

Source Code Management wih git Source Code Management wih git Matthieu Herrb December 22 http://homepages.laas.fr/matthieu/cours/git.pdf Licence This work is licensed under a Creative Commons Attribution-ShareAlike 3. Unported License.

More information

Red Hat JBoss Developer Studio 10.3 Getting Started with JBoss Developer Studio Tools

Red Hat JBoss Developer Studio 10.3 Getting Started with JBoss Developer Studio Tools Red Hat JBoss Developer Studio 10.3 Getting Started with JBoss Developer Studio Tools Introduction to Using Red Hat JBoss Developer Studio Tools Misha Husnain Ali Supriya Bharadwaj Red Hat Developer Group

More information

RDO container registry Documentation

RDO container registry Documentation RDO container registry Documentation Release 0.0.1.dev28 Red Hat Jun 08, 2018 Contents 1 Table of Contents 3 1.1 About the registry............................................ 3 1.2 Installing the registry...........................................

More information

Best Practices for a Mission- Critical Jenkins

Best Practices for a Mission- Critical Jenkins Best Practices for a Mission- Critical Jenkins Mike Rooney Jenkins Connoisseur http://linkedin.com/in/mcrooney Jenkins Uses! Genius.com staging deployment, code reviews, automated branching and merging,

More information

System Integration and Testing Project Proposal

System Integration and Testing Project Proposal System Integration and Testing Project Proposal Overview Project Name: System Integration and Testing Repository Name: integration Description: Responsible for ONAP cross-projects system integration and

More information

Software Development I

Software Development I 6.148 Software Development I Two things How to write code for web apps. How to collaborate and keep track of your work. A text editor A text editor A text editor Anything that you re used to using Even

More information

Testbed-12 TEAM Engine Virtualization User Guide

Testbed-12 TEAM Engine Virtualization User Guide Testbed-12 TEAM Engine Virtualization User Guide Table of Contents 1. Introduction............................................................................. 3 2. VirtualBox...............................................................................

More information

This tutorial provides a basic understanding of the infrastructure and fundamental concepts of managing an infrastructure using Chef.

This tutorial provides a basic understanding of the infrastructure and fundamental concepts of managing an infrastructure using Chef. About the Tutorial Chef is a configuration management technology developed by Opscode to manage infrastructure on physical or virtual machines. It is an open source developed using Ruby, which helps in

More information

git Version: 2.0b Merge combines trees, and checks out the result Pull does a fetch, then a merge If you only can remember one command:

git Version: 2.0b Merge combines trees, and checks out the result Pull does a fetch, then a merge If you only can remember one command: Merge combines trees, and checks out the result Pull does a fetch, then a merge If you only can remember one command: git --help Get common commands and help git --help How to use git

More information

Index. Chaminda Chandrasekara 2017 C. Chandrasekara, Beginning Build and Release Management with TFS 2017 and VSTS, DOI /

Index. Chaminda Chandrasekara 2017 C. Chandrasekara, Beginning Build and Release Management with TFS 2017 and VSTS, DOI / Index A Agent platforms, 10 system and user capabilities, 10 Agent pool add user, 12 assign permissions, 55 56 default pool, 8 hosted Linux pool, 8 hosted pool, 7 set up assign administrator role, 45 auto-provision

More information

sainsmart Documentation

sainsmart Documentation sainsmart Documentation Release 0.3.1 Victor Yap Jun 21, 2017 Contents 1 sainsmart 3 1.1 Install................................................... 3 1.2 Usage...................................................

More information

git the SCM system Jan-Simon Möller training.linuxfoundation.org

git the SCM system Jan-Simon Möller training.linuxfoundation.org git the SCM system Jan-Simon Möller training.linuxfoundation.org Topics What is git (what is a SCM) How to install git How to personalize git How to use git for development What is git? What is a SCM System?

More information

Application Program Interface Guide for Python

Application Program Interface Guide for Python Application Program Interface Guide for Python Document Version: 2017-06-15 Application Program Interface (API) calls are supported in NETLAB+ VE version 17.1.6 and later. This guide is to be used along

More information

Developing and Testing Java Microservices on Docker. Todd Fasullo Dir. Engineering

Developing and Testing Java Microservices on Docker. Todd Fasullo Dir. Engineering Developing and Testing Java Microservices on Docker Todd Fasullo Dir. Engineering Agenda Who is Smartsheet + why we started using Docker Docker fundamentals Demo - creating a service Demo - building service

More information

Using NGiNX for release automation at The Atlantic

Using NGiNX for release automation at The Atlantic Using NGiNX for release automation at The Atlantic About the speakers Mike Howsden is the DevOps Lead at The Atlantic Frankie Dintino is a Senior Full-Stack Developer at The Atlantic One Virtual Machine

More information

EMC Documentum Composer

EMC Documentum Composer EMC Documentum Composer Version 6.0 SP1.5 User Guide P/N 300 005 253 A02 EMC Corporation Corporate Headquarters: Hopkinton, MA 01748 9103 1 508 435 1000 www.emc.com Copyright 2008 EMC Corporation. All

More information

Developing Kubernetes Services

Developing Kubernetes Services / MARCH 2019 / CON LONDON Developing Kubernetes Services at Airbnb Scale What is kubernetes? @MELAN IECEBULA Who am I? A BRIEF HISTORY Why Microservices? 4000000 3000000 MONOLITH LOC 2000000 1000000 0

More information

DEVOPS COURSE CONTENT

DEVOPS COURSE CONTENT LINUX Basics: Unix and linux difference Linux File system structure Basic linux/unix commands Changing file permissions and ownership Types of links soft and hard link Filter commands Simple filter and

More information

Table of Contents. Concepts

Table of Contents. Concepts Table of Contents Git Repositories Overview Learn about Git Quickstarts Create repo - Web Create repo - CLI Create repo - Visual Studio Create repo - IntelliJ Create repo - Xcode Create repo - Eclipse

More information

Tenable.sc-Tenable.io Upgrade Assistant Guide, Version 2.0. Last Revised: January 16, 2019

Tenable.sc-Tenable.io Upgrade Assistant Guide, Version 2.0. Last Revised: January 16, 2019 Tenable.sc-Tenable.io Upgrade Assistant Guide, Version 2.0 Last Revised: January 16, 2019 Table of Contents Welcome to the Tenable.sc-Tenable.io Upgrade Assistant 3 Get Started 4 Environment Requirements

More information

Release Ralph Offinger

Release Ralph Offinger nagios c heck p aloaltodocumentation Release 0.3.2 Ralph Offinger May 30, 2017 Contents 1 nagios_check_paloalto: a Nagios/Icinga Plugin 3 1.1 Documentation..............................................

More information

Ceilometer Documentation

Ceilometer Documentation Ceilometer Documentation Release 0.0 OpenStack, LLC July 06, 2012 CONTENTS 1 What is the purpose of the project and vision for it? 3 2 Table of contents 5 2.1 Initial setup................................................

More information

sites</distribsiteroot>

sites</distribsiteroot> Maven Parent POMs What is this? We have several parent poms. They pre-configure a whole array of things, from plugin versions to deployment on our infrastructure. They should be used: By all public and

More information

flask-dynamo Documentation

flask-dynamo Documentation flask-dynamo Documentation Release 0.1.2 Randall Degges January 22, 2018 Contents 1 User s Guide 3 1.1 Quickstart................................................ 3 1.2 Getting Help...............................................

More information

TDDC88 Lab 4 Software Configuration Management

TDDC88 Lab 4 Software Configuration Management TDDC88 Lab 4 Software Configuration Management Introduction "Version control is to programmers what the safety net is to a trapeze artist. Knowing the net is there to catch them if they fall, aerialists

More information

Dell EMC Networking Saltstack Integration Documentation

Dell EMC Networking Saltstack Integration Documentation Dell EMC Networking Saltstack Integration Documentation Release 1.0 Dell EMC Networking Team Sep 07, 2018 Table of Contents 1 Introduction 1 1.1 Salt....................................................

More information

Sample Spark Web-App. Overview. Prerequisites

Sample Spark Web-App. Overview. Prerequisites Sample Spark Web-App Overview Follow along with these instructions using the sample Guessing Game project provided to you. This guide will walk you through setting up your workspace, compiling and running

More information

ejpiaj Documentation Release Marek Wywiał

ejpiaj Documentation Release Marek Wywiał ejpiaj Documentation Release 0.4.0 Marek Wywiał Mar 06, 2018 Contents 1 ejpiaj 3 1.1 License.................................................. 3 1.2 Features..................................................

More information

Manual Script Windows Batch For Loop Files In A Directory

Manual Script Windows Batch For Loop Files In A Directory Manual Script Windows Batch For Loop Files In A Directory If I run the batch file manually from the command prompt, it works fine. think it is (it refers to the current directory, which is not necessarily

More information

Git version control with Eclipse (EGit) Tutorial

Git version control with Eclipse (EGit) Tutorial Git version control with Eclipse (EGit) Tutorial 출처 : Lars Vogel http://www.vogella.com/tutorials/eclipsegit/article.html Lars Vogel Version 3.6 Copyright 2009, 2010, 2011, 2012, 2013, 2014 Lars Vogel

More information

Jenkins CI for MacDevOps. Tim Sutton Concordia University, Faculty of Fine Arts Montreal

Jenkins CI for MacDevOps. Tim Sutton Concordia University, Faculty of Fine Arts Montreal Jenkins CI for MacDevOps Tim Sutton Concordia University, Faculty of Fine Arts Montreal A story svn update./configure make Hudson Jenkins git pull cd code/tools./make_munki_mpkg.sh munkibuilds.org Continuous

More information

Red Hat Developer Studio 12.0

Red Hat Developer Studio 12.0 Red Hat Developer Studio 12.0 Getting Started with Developer Studio Tools Introduction to Using Red Hat Developer Studio Tools Last Updated: 2018-07-16 Red Hat Developer Studio 12.0 Getting Started with

More information

Info Error Deploying Artifact Failed To Transfer File Return Code Is 401

Info Error Deploying Artifact Failed To Transfer File Return Code Is 401 Info Error Deploying Artifact Failed To Transfer File Return Code Is 401 Here is my pom.xml, note that it is also the attached file. (ERROR) Failed to execute goal Return code is: 401, ReasonPhrase: Unauthorized.

More information