<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.lingoport.com/index.php?action=history&amp;feed=atom&amp;title=On_Boarding_the_Automation_Job_Without_Jenkins_Plugin</id>
	<title>On Boarding the Automation Job Without Jenkins Plugin - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.lingoport.com/index.php?action=history&amp;feed=atom&amp;title=On_Boarding_the_Automation_Job_Without_Jenkins_Plugin"/>
	<link rel="alternate" type="text/html" href="https://wiki.lingoport.com/index.php?title=On_Boarding_the_Automation_Job_Without_Jenkins_Plugin&amp;action=history"/>
	<updated>2026-04-30T17:35:52Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>https://wiki.lingoport.com/index.php?title=On_Boarding_the_Automation_Job_Without_Jenkins_Plugin&amp;diff=91160&amp;oldid=prev</id>
		<title>Olibouban: Created page with &quot;=== LRM Pre-requisite: Licensed Group === The group must have been licensed prior to on-boarding projects for a Terms_and_Definitions#gr...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.lingoport.com/index.php?title=On_Boarding_the_Automation_Job_Without_Jenkins_Plugin&amp;diff=91160&amp;oldid=prev"/>
		<updated>2018-03-22T16:47:47Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;=== LRM Pre-requisite: Licensed Group === The group must have been licensed prior to &lt;a href=&quot;/Terms_and_Definitions#onboarding&quot; title=&quot;Terms and Definitions&quot;&gt;on-boarding&lt;/a&gt; projects for a Terms_and_Definitions#gr...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=== LRM Pre-requisite: Licensed Group ===&lt;br /&gt;
The group must have been licensed prior to [[Terms_and_Definitions#onboarding|on-boarding]] projects for a [[Terms_and_Definitions#groupname|group]]. For instance, to add a job to the group &amp;#039;blue&amp;#039;, the group &amp;#039;blue&amp;#039; must be licensed. When LRM is installed, a group and license from Lingoport is required.  If the system is installed by the Stack Installer, a valid license is required and the group is created automatically. &lt;br /&gt;
&lt;br /&gt;
* A Group is typically composed of projects using the same type of repositories (SVN for instance)&lt;br /&gt;
* A Group&amp;#039;s projects typically are sent to the same Translation Vendor (Lingotek for instance)&lt;br /&gt;
* A Group&amp;#039;s projects &amp;lt;b&amp;gt;locales&amp;lt;/b&amp;gt; are typically the same (for instance, fr, de_DE, no, ja, es_SP)&lt;br /&gt;
* A Group&amp;#039;s &amp;lt;b&amp;gt;locales mapping is unique&amp;lt;/b&amp;gt;! &amp;lt;i&amp;gt;fr&amp;lt;/i&amp;gt; maps only to one possible locale in the translation process. It cannot map to both &amp;lt;i&amp;gt;fr_CA&amp;lt;/i&amp;gt; and &amp;lt;i&amp;gt;fr_FR&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To see all groups installed and their details (from the command line):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;gt;java -jar &amp;lt;HOME&amp;gt;/lrm-server-x.y/lrm-cli.jar --list-groups&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To create a new group (must have the license from Lingoport): &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;gt;java -jar &amp;lt;HOME&amp;gt;/lrm-server-x.y/lrm-cli.jar --create-group --groupname &amp;lt;string&amp;gt; --number-of-licenses &amp;lt;number&amp;gt; --date &amp;lt;string&amp;gt; --license-key &amp;lt;number&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Jenkins Part ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;See one of:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** &amp;lt;code&amp;gt;&amp;#039;&amp;#039;$LRM_HOME/bin/job_automate.sh&amp;#039;&amp;#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;&amp;#039;&amp;#039;$DASHBOARD_HOME/bin/job_lite.sh&amp;#039;&amp;#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;&amp;#039;&amp;#039;$DASHBOARD_HOME/bin/job_lrm_and_lite.sh&amp;#039;&amp;#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Jenkins, under the &amp;#039;&amp;#039;&amp;#039;1-Automation&amp;#039;&amp;#039;&amp;#039; Tab, select &amp;#039;&amp;#039;&amp;#039;New Item&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
[[File:automation_tab_new_item.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
* Make a copy of &lt;br /&gt;
** &amp;lt;code&amp;gt;Lingoport.SampleLITELRM&amp;lt;/code&amp;gt; (if this project uses Globalyzer and LRM)&lt;br /&gt;
** &amp;lt;code&amp;gt;Lingoport.SampleLite&amp;lt;/code&amp;gt; (for Globalyzer only) &lt;br /&gt;
* Set the name of the new job to &amp;lt;groupname&amp;gt;.&amp;lt;projectname&amp;gt;&lt;br /&gt;
* Create the Job&lt;br /&gt;
* Select the new job from the list and &amp;#039;&amp;#039;&amp;#039;Configure&amp;#039;&amp;#039;&amp;#039; new job&lt;br /&gt;
&lt;br /&gt;
[[File:new_project_configure.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Source Code Management&amp;#039;&amp;#039;&amp;#039;: Set up Repository, Credentials, and Branch&lt;br /&gt;
&lt;br /&gt;
[[File:source_code_management.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
* Under &amp;#039;&amp;#039;&amp;#039;Build&amp;#039;&amp;#039;&amp;#039;, comment out the script. &lt;br /&gt;
* The LITE_PROJECT_DEFINITION is probably incorrect.  This does not need to be corrected at this time. &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Save&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[File:build.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Build Now&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
[[File:build_now.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
* In a console window, make sure that &amp;lt;HOME_JENKINS&amp;gt;/jobs/&amp;lt;groupname.projectname&amp;gt;/workspace/ contains the information from the code repository&lt;br /&gt;
&lt;br /&gt;
=== LRM Project Creation ===&lt;br /&gt;
Now that the files are on disk at the proper location, use &amp;#039;&amp;#039;&amp;#039;lrm&amp;#039;&amp;#039;&amp;#039; (an alias should have been created by the Stack Installer) to create the project, verify, and adjust the project definition:&lt;br /&gt;
* Go to the command prompt on that machine and create the LRM project by copying the &amp;#039;&amp;#039;&amp;#039;ProjectDefinition.xml&amp;#039;&amp;#039;&amp;#039; of an existing LRM project and replacing the relevant elements:&lt;br /&gt;
** group-name (In this example: Acme)&lt;br /&gt;
** project_name (In this example: Weather)&lt;br /&gt;
** top-level-dir (/var/lib/jenkins/jobs/Acme.Weather/workspace/Weather-master/resources) &lt;br /&gt;
** pseudo-locale&lt;br /&gt;
** target-locales&lt;br /&gt;
** etc.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;lrmconf&amp;gt;&lt;br /&gt;
  &amp;lt;model-version&amp;gt;3.2&amp;lt;/model-version&amp;gt;&lt;br /&gt;
  &amp;lt;project-name&amp;gt;Weather&amp;lt;/project-name&amp;gt;&lt;br /&gt;
  &amp;lt;group-name&amp;gt;Acme&amp;lt;/group-name&amp;gt;&lt;br /&gt;
  &amp;lt;project-desc&amp;gt;This project contains resource files of all types for baseline testing&amp;lt;/project-desc&amp;gt;&lt;br /&gt;
  &amp;lt;top-level-dir&amp;gt;/var/lib/jenkins/jobs/Acme.Weather/workspace/Weather-master/resources&amp;lt;/top-level-dir&amp;gt;&lt;br /&gt;
  &amp;lt;detect-errors&amp;gt;&lt;br /&gt;
    &amp;lt;!--If set to &amp;#039;0&amp;#039; (false), then the &amp;#039;missed translation&amp;#039; error will not be triggered--&amp;gt;&lt;br /&gt;
    &amp;lt;!--if the non-base file has the same text as the base file.--&amp;gt;&lt;br /&gt;
    &amp;lt;!--Missed Translation error will still occur if the base file has a different key or if--&amp;gt;&lt;br /&gt;
    &amp;lt;!--the base file has changed since it was last prepped.--&amp;gt;&lt;br /&gt;
    &amp;lt;missed-trans-error&amp;gt;0&amp;lt;/missed-trans-error&amp;gt;&lt;br /&gt;
    &amp;lt;parameter-mismatch-error&amp;gt;1&amp;lt;/parameter-mismatch-error&amp;gt;&lt;br /&gt;
  &amp;lt;/detect-errors&amp;gt;&lt;br /&gt;
  &amp;lt;!--Target locales are the locales where the corresponding resource files will be translated. --&amp;gt;&lt;br /&gt;
  &amp;lt;!--These target locales are mutually exclusive of the base (default) locale--&amp;gt;&lt;br /&gt;
  &amp;lt;target-locales&amp;gt;&lt;br /&gt;
    &amp;lt;locale&amp;gt;fr_FR&amp;lt;/locale&amp;gt;&lt;br /&gt;
    &amp;lt;locale&amp;gt;de_DE&amp;lt;/locale&amp;gt;&lt;br /&gt;
  &amp;lt;/target-locales&amp;gt;&lt;br /&gt;
  &amp;lt;track-back-locale&amp;gt;br&amp;lt;/track-back-locale&amp;gt;&lt;br /&gt;
  &amp;lt;pseudo-locale&amp;gt;eo&amp;lt;/pseudo-locale&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;lrm&amp;#039;&amp;#039;&amp;#039; alias should have been set up by the Stack Installer.  If not, set it up at the command line: &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;alias lrm=&amp;#039;java -jar /var/lib/jenkins/lingoport/lrm-server-x.y/lrm-cli.jar&amp;#039;&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* Run &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;lrm -cp -gn &amp;lt;group_name&amp;gt; -f newProjectDefinition.xml&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* If the project has been created successfully, then Project Inspect reports should have been created for each locale. Open these and verify their contents&lt;br /&gt;
* If necessary, modify the newProjectDefinition.xml file, run the update-project command, and verify again the results until you are satisfied.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;lrm -up -f newProjectDefinition.xml&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
=== LRM Project Configuration ===&lt;br /&gt;
After creating a new project, some files need to be modified&lt;br /&gt;
In the &amp;#039;&amp;#039;&amp;#039;&amp;lt;HOME&amp;gt;/Lingoport_Data/L10nStreamlining/&amp;lt;group_name&amp;gt;/projects/&amp;lt;project_name&amp;gt;/config&amp;#039;&amp;#039;&amp;#039; directory:&lt;br /&gt;
: Edit &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;&amp;lt;HOME&amp;gt;/Lingoport_Data/L10nStreamlining/&amp;lt;group_name&amp;gt;/projects/&amp;lt;project_name&amp;gt;/config/config_email_recipients.xml&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; which specifies who will get messages (prep kits, import kits, errors, etc.)&lt;br /&gt;
: Edit &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;&amp;lt;HOME&amp;gt;/Lingoport_Data/L10nStreamlining/&amp;lt;group_name&amp;gt;/projects/&amp;lt;project_name&amp;gt;/config/config_vcs.properties&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039;. This specifies SVN or Git properties (Note: Beware of &amp;quot;origin/master&amp;quot;, &amp;quot;master&amp;quot;, and &amp;quot;origin master&amp;quot; for the VCS_GIT_BRANCH: It depends on the systems)&lt;br /&gt;
&lt;br /&gt;
Other files may be copied under this directory if the project&amp;#039;s configuration is more specific than the group configuration files,  located under &amp;#039;&amp;#039;&amp;#039;&amp;lt;HOME&amp;gt;/Lingoport_Data/L10nStreamlining/&amp;lt;group_name&amp;gt;/config&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
:Edit &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;&amp;lt;HOME&amp;gt;/Lingoport_Data/L10nStreamlining/&amp;lt;group_name&amp;gt;/config/config_due_dates.xml&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039;: How the due dates are calculated.&lt;br /&gt;
:Edit &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;&amp;lt;HOME&amp;gt;/Lingoport_Data/L10nStreamlining/&amp;lt;group_name&amp;gt;/config/config_l10n_vendor.properties&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039;: The way to send files to a vendor (Lingotek, WorldServer, or FTP configuration)&lt;br /&gt;
&lt;br /&gt;
Finally, update the &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;&amp;lt;HOME&amp;gt;/Lingoport_Data/L10nStreamlining/config/config_email_global.xml&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; file and the following values. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;email-sender&amp;gt;sender@acme.com&amp;lt;/email-sender&amp;gt;&lt;br /&gt;
&amp;lt;sender-password encrypted=&amp;quot;false&amp;quot;&amp;gt;agoodpassword&amp;lt;/sender-password&amp;gt;&lt;br /&gt;
&amp;lt;!--This is the Dashboard URL used as the link destination for the email Log In button --&amp;gt;&lt;br /&gt;
&amp;lt;dashboard-url&amp;gt;http://www.acme.com/dashboard&amp;lt;/dashboard-url&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For more information, see [[Project Configuration Files]]&lt;br /&gt;
&lt;br /&gt;
=== Jenkins Part Two===&lt;br /&gt;
The underlying components have been initialized. Let&amp;#039;s finish the Jenkins on-boarding process:&lt;br /&gt;
* Go back to the new job &amp;#039;&amp;#039;&amp;#039;Configuration&amp;#039;&amp;#039;&amp;#039; and edit the &amp;#039;&amp;#039;&amp;#039;Build - Execute Shell&amp;#039;&amp;#039;&amp;#039; section.&lt;br /&gt;
** Enable the commented out script by removing the preceding &amp;#039;#&amp;#039;. This might be:&lt;br /&gt;
***&amp;lt;code&amp;gt;&amp;#039;&amp;#039;$LRM_HOME/bin/job_automate.sh 30&amp;#039;&amp;#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
***&amp;lt;code&amp;gt;&amp;#039;&amp;#039;$LRM_HOME/bin/job_lite.sh&amp;#039;&amp;#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
***&amp;lt;code&amp;gt;&amp;#039;&amp;#039;$LRM_HOME/bin/job_lrm_and_lite.sh&amp;#039;&amp;#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
** Set the LITE_PROJECT_DEFINITION file to the correct location&lt;br /&gt;
** &amp;#039;&amp;#039;&amp;#039;Save&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Build Now&amp;#039;&amp;#039;&amp;#039;: The Lingoport Dashboard should be updated, some files may be pseudo-localized.&lt;br /&gt;
* Check the console output for errors.  &lt;br /&gt;
&lt;br /&gt;
If the Lingoport Dashboard is not updated, then permissions need to be set. &lt;br /&gt;
* On the Dashboard, login as admin with default password admin&lt;br /&gt;
* On the console, edit &amp;lt;code&amp;gt;&amp;lt;JENKINS_HOME&amp;gt;/Lingoport_Data/Dashboard/Projects/&amp;lt;groupname.projectname&amp;gt;/sonar-project.properties&amp;lt;/code&amp;gt; to get &amp;#039;&amp;#039;&amp;#039;sonar.login&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;sonar.password&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* On the Dashboard, go to  Administration -&amp;gt; Security -&amp;gt; Users  and add a user with the same login and password. &lt;br /&gt;
* Back in Jenkins and the job, select  &amp;#039;&amp;#039;&amp;#039;Build Now&amp;#039;&amp;#039;&amp;#039; again.  The Lingoport Dashboard should be updated, some files may be pseudo-localized.&lt;br /&gt;
* Check the console output for errors.  &lt;br /&gt;
&lt;br /&gt;
If things do not look correct or the Lingoport Dashboard has not updated then contact &amp;#039;&amp;#039;&amp;#039;support@lingoport.com&amp;#039;&amp;#039;&amp;#039; before trying to move forward.&lt;br /&gt;
&lt;br /&gt;
== Verification ==&lt;br /&gt;
* Check the Jenkins job follows the form &amp;#039;&amp;#039;&amp;#039;&amp;lt;group_name&amp;gt;.&amp;lt;project_name&amp;gt;&amp;#039;&amp;#039;&amp;#039; (i.e. Lingoport.javademo)&lt;br /&gt;
* Check that the job &amp;#039;&amp;#039;&amp;#039;Configuration&amp;#039;&amp;#039;&amp;#039; has &lt;br /&gt;
** &amp;#039;&amp;#039;&amp;#039;Multi-Project Throttle Category&amp;#039;&amp;#039;&amp;#039; set (check box checked on MAIN for instance)&lt;br /&gt;
** &amp;#039;&amp;#039;&amp;#039;Build Trigger&amp;#039;&amp;#039;&amp;#039; set(one must be set, either on each push or every day)&lt;br /&gt;
** &amp;#039;&amp;#039;&amp;#039;Set jenkins user build variables&amp;#039;&amp;#039;&amp;#039; is indeed checked &lt;br /&gt;
** &amp;#039;&amp;#039;&amp;#039;Build&amp;#039;&amp;#039;&amp;#039; is an &amp;#039;&amp;#039;&amp;#039;Execute Shell&amp;#039;&amp;#039;&amp;#039; and the shell contains &amp;lt;code&amp;gt;$LRM_HOME/bin/job_automate.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Post Build Actions&amp;#039;&amp;#039;&amp;#039; include the &amp;#039;&amp;#039;&amp;#039;Discard Old Builds&amp;#039;&amp;#039;&amp;#039; with &amp;quot;Days to keep builds&amp;quot; set to 10&lt;br /&gt;
&lt;br /&gt;
== Possible Job Creation Helper==&lt;br /&gt;
If a set of repositories tend to follow the same resource structures, you may want to create a template project definition with some tokens to be replaced, so that a &amp;#039;Job Creation Helper&amp;#039; can on-board the job from Jenkins in a more automated fashion. &lt;br /&gt;
For instance, if you have a set of projects &lt;br /&gt;
* with .properties, &lt;br /&gt;
* with the base files in U.S. English, &lt;br /&gt;
* with the base files ending in _en.properties &lt;br /&gt;
* with the same target locales&lt;br /&gt;
* with the same directories to ignore,&lt;br /&gt;
&lt;br /&gt;
You could create a TemplateProjectDefinition.xml and a way to replace certain tokens so the projects are created from Jenkins. This requires a bit of customization. Lingoport may help you set that up.&lt;br /&gt;
&lt;br /&gt;
== Next Step ==&lt;br /&gt;
[[On Boarding the Nightly Job]]&lt;/div&gt;</summary>
		<author><name>Olibouban</name></author>
	</entry>
</feed>