Verigreen Release Notes - Verigreen/verigreen GitHub Wiki
In this release, we focused on defects from version 2.5.5. Please upgrade via the Verigreen Upgrade Instruction wiki page.
- Docker image - added support for UTF-8 (locale set to EN)
- Fixing util service script - removing CACHE_DIR, it is being supported by the application. #86
- Fix for EPOCH end time in history.json file #89
- Fix for Jenkins API - Check if job is still building before returning the status #91
##########################################################################################
In this release we focused on defects from version 2.5.3. Please upgrade via the Verigreen Upgrade Instruction wiki page.
- Fix for defect #79 - Commit set to Running after it was set to PBC.
- Fix for processes that are getting stuck on passed status due to infinite loope.
- Retrieving job details at start up – counter is not incremented.
- Retrieving job details at start up – wrong job name.
##########################################################################################
This release we focused on adding the Queue Manager feature, some change requests, and a defect fixed.
- Verigreen introduces: QUEUE MANAGER
- Limited the number of concurrent builds, which:
- Removing unnecessary stress from Jenkins.
- Save executors in Jenkins
- Skip processing irrelevant commits in case of network problems, code freeze, etc.
- Adding a relevant link to FAQ page to the email notification in case of an error.
- Supporting Offline mode of FAQ page.
- Externalize cachelodaer folder location to VG_HOME path.
- Fix for defect #74 - Failed item with 'PBC' parent causing all children to change to NOT_STARTED.
##########################################################################################
This release is a fix for release 2.5.0, including some modification to the collector algorithm.
Please upgrade according to these upgrade instructions
- Algorithm change - only in FAILED status will restart the children of the process. By definition - the statuses: GIT_FAILURE, TRIGGER_FAILED and TIME_OUT will not restart the children processes.
- Optimization for cancelation process - each cancel request is being written to a list and automatic process is sending cancel request for each request.
- Email notification is being sent in case of a bad repo location.
- Adding 2 new fields to config.properties (a must):
- timeout.counter - the number of times a collector will try to get an answer from Jenkins before triggering a new build
- job.retry.counter - how many times to retrigger a job before setting the status to TRIGGER_FAILED.
- Critical defect - UI is not loaded correctly due to an issue in angular-modal-service. Dependency was removed, a new model window was created.
- Script fix - for creating a war file for the release.
##########################################################################################
In this release, we changed the performance for High-Pace users.
Reducing the calls to Jenkins by 80%, the collector is now working faster and smoother.
We implemented the Observer Design Pattern. Now, every running process is an observer and it is no longer request an update on it's running job, but rather wait for being notified.
We also have a new LOGO!
- Retrieving Jenkins job when the server starts instead of every time when triggering a build.
- Adding support for retrieving job when changing Job name in the config.properties in run-time.
- Removing waitForResult() for every running process. Running processes was changed to observer objects and they are being notified when there is a change in the job status.
- Improved UI (looks & feel)
- Notification Emails - Change signature.
- New LOGO.
- Issue 28 - Processes are getting restarted after PASSED status
- Issue 29 - Receiving Jenkins URL is taken a long time when having few commits running in parallel
- Issue 30 - End time is not set after GIT_FAILURE status causing all new processes to stuck in NOT_STARTED
- Issue 32 - Failed commit is not saved in history after it's set to PBC
- Issue 45 - Part of the table border is missing
##########################################################################################
This is the first release that is open source.
In this release we put our efforts to rebranding the project from Evergreen to Verigreen.
- Enabling right click in the UI
- Adding (temporarily) jenkins-client project as a submodule.
###(Numbers are for internal use)
- Defect 724 - Two emails are sent for one commit
- Defect 715 - Duplication "CANCEL" line in history
#All releases before 2.0 are internal releases
In this release we put most of our efforts to create the new feature 'History List'. New feature and defects requested by various customers.
- History list - Every retry is listed and shown in the UI (internal customer request):
- Each nested job (and only them) is carrying a "+" sign on the left side to indicate that there are child jobs inside.
- By pressing the "+" sign, a subtable is shown with the commit relevant data.
- Mouse hovering over a nested job is showing a tooltip box with the number of child jobs in it.
- Merge information added to notification email - in case of MERGE_FAILED, a notification will include: Failed Reason: Conflict between commits (a) and (b) (internal customer request).
- Adding license agreement as preparations to Open Source.
- UI refresh sub-table - now, auto refresh is refreshing only sub-table (instead of the entire page)
- Defect 695 - Major defect - Temp branches are not deleted on success (in case of retries) - Detected by internal customer request
- Defect 711 - EG starts although remote branch is missing - Detected by internal customer request
- Defect 709 - Triggering failed after verification passed
- Defect 713 - NOT_STARTED zombies - getting NOT_STARTED after verification passed - Detected by internal customer request
- Minor defect - Passed by child mail notification structure was fixed. version can be found here (internal availability only)
In this release we put most of our efforts to stabilize the system tests to work with the new structure of EG. Critical defect was solved and already was patched to version 1.4.1 that got out in the progress of this release.
- N/A
- N/A
- Critical Defect 707 - temp branch (A+B) is not merged to master
System tests are now working. Explanations on how to run the tests, configure the tests, can be found in the ST page.
The following ST are available:
- testSimpleCommit() - user1 creates new file -> commit+push collector+git verification
- testSimpleCommitMultipleBranches() - user creates new file on several branches, and checks that all committed well and in the correct branches
- testPermittedUser() - a permitted user pushes and bypass EG.
- testSimpleMerge() - User 1 creates file1 and file2 and writes 1 line in each file -> commit+push wait until verification for the commit is finished user 2 adds another line to file1 -> commit+push user 3 adds another line to file2 -> commit+push collector verification for the commit of user2, collector+git verification for the commit of user3.
- permittedUserPushWhileJobIsRunning() - User 1 commits and pushes to the master branch User 2 (permitted user) also pushes to the master branch while the job of user A is running Because User 2 is a permitted user, his commit will be rejected by evergreen and will be pushed to the repository directly.
- testSimpleMergeMultipleBranches() - User 1 creates file1 and file2 and writes 1 line in each file -> commit+push wait until verification for the commit is finished user 2 adds another line to file1 -> commit+push user 3 adds another line to file2 -> commit+push collector verification for the commit of user2 collector+git verification for the commit of user3. This happens on multiple branches.
- test5Users() - 5 users pushing 4 files.
- test5UsersMultipleBranches() - User 1 commits 4 different files in 3 branches. Then other 4 users change each different file in all the branches. All should be merged in correct branches.
- testRetryTriggerFailed() - Testing the retry in case of a trigger failure. An invalid username is specified, the branch is committed and pushed, asserted as failed with the TRIGGER FAILURE status. Then the same commit id is pushed again with a valid user and asserted as PASSED AND PUSHED.
- test5UsersWithMergeFailureMultipleBranches() - User 1 commits 4 different files in 3 branches. Users 2 and 3 update file number 1 simultaneously in the same row for 3 branches. Users 4 and 5 update each different files in 3 branches. User 3 should receive FAIL_MERGE and all the rest should be committed and pushed successfully
- test5UsersWithMergeFailure().
- testCommiterNameChangesInRT() - Testing change of commiter name in real time. using real properties form collector config.properties
- testProtectedBranchesChangesInRT() - Testing change of protected branch in real time. user1 creates new file -> commit+push collector+git verification using real properties form collector config.properties
- testPermittedUsersChangesInRT().
- testMergeFailureMultipleBranches() - User 1 commits and pushes one file. User 2 adds a line in the same file at the beginning, and user 3 adds a line at the end. Both users are committing and pushing. Failure should occur. All this in 3 branches.
- testMergeFailure().
version can be found here (internal availability only)
- N/A
- N/A
- Critical Defect 707 - temp branch (A+B) is not merged to master
version can be found here (internal availability only)
- Checking if the Git repository (from config.properties) exist - sending email notification incase there is an issue with the path to the Git repository (internal customer request).
- Change Requests
- Build URL link - Open by default in a new tab (internal customer request)
- Email Notification - more detailed and clear (internal customer request)
- PASS Status color changed to Black instead of Green (temporary status) (internal customer request)
- Performance issues - combine rest call from UI to collector.
- Defect 682 - critical defect - push failed in case permitted user push while there is a job running.
- JB Email images is now taken from collector server and not from the web.
- For internal use only - ST implementations
version can be found here (internal availability only)
- Collector can be deployed over application server (internal customer request)
- Collector address can be controlled from hook.properties by using EG_HOOK environment variable.
- Columns selection (internal customer request)
- Shorter URL (internal customer request)
- Search field is now more visible (internal customer request)
- Protected branch and Parent branch are shown without refs/heads/ prefix (internal customer request)
- Commit message is shown as tooltip when hovering ID column.
- Now you can send more parameters to your Jenkins job (internal customer request) can be sent as multiple parameters or one Json parameters.
- Easier deployment process
- N/A
- Defect 694 - Critical defect - Collector is not starting due to missing version
- Defect 680 - JB end time is not displaying
- Defect 693 - Auto refresh text box location
version can be found here (internal availability only)
A patch for version 1.2.1
- Defect 694 - Critical defect - Collector is not starting due to missing version
- New cool 'look and feel' for JB UI include the following features:Full retry mode - user has the option now to retry a failed commit build from JB UI (need to be enabled from config.properties)
- Adding version number in the right corner
- Displaying EverGreen logo
- Displaying collector name
- Auto refreshed based on user choice (default 30 seconds)
- Forcing Push - enable power users to push failed commit.
Explanations:
If push gets failed due to a job failure - power user (PMO, managers, etc) have the option to force the push in, although it failed verification. This is done on their own risk and assuming they have a good reason for it.
Right click on the failed line in JB will show Force Push option. By clicking it - password will be required.
Entering correct password will force the push.
Successful push will be made without triggering Jenkins job (in the assumption that there are no merge conflicts). - New tool for creating password to power users (allowing force push), can be download here. To run the tool use the command 'java -jar hashing-password.jar '
- N/A
- Defect 683 - retry_button_enabled
- Defect 689 - Watchdir - wrong path to config file
- Forcing Push - enable power users to push failed commit.
Explanations:
If a push action fails due to a job failure - power users (such as PMO's) have the option now to brute force the push although the failure. Right clicking on the failed line in JB will show Force Push option.
By clicking it - password will be required. Entering correct password will force the push.
Successful push will be made without triggering Jenkins job (in the assumption that there are no conflicts).
New tool for creating password to power users.
To run the tool use the command 'java -jar hashing-password.jar '
- N/A
- Defect 684 - Success statuses get changed after collector restart
- Forcing Push - enable power users to push failed commit.
Explanations:
If push gets failed due to job failure - power user (PMO) can decide to take responsible on the defect and forced the push. Right click on the failed line in JB will show Force Push option. By clicking it - password will be required. Entering correct password will force the push.
Successful push will be made without triggering Jenkins job (in the assumption that there are no conflicts).
New tool for creating password to power users.
To run the tool use the command 'java -jar hashing-password.jar '
- N/A
- N/A
- Supporting versions.
- Project changed to Evergreen instead of preflight.
- Shorten commit id to 7 digit + user name.
- Logs will be prompted by changes in config.properties.
- Supporting port changes in startup.
- Combine Cache Cleaner and Branch Cleaner to work simultaneously.
- Defect 667 - JB GUI not showing committer ID
- Supporting user with 3 names.
- Extending Jgit to support Retrieve Branches List in mode All (local and remote).
- Reload Params to config.properties in runtime (JobName, ProtectedBranch, PermittedUsers).
- Retry Mechanism - allow user to push again in cases of:Retry button in JB UI - allowing user to retry commit from JB UI for failure lines in the above statuses.
- GIT_FAILURE
- TRIGGER_FAILED
- TIMEOUT
- Adding Automation Tests for the new features. -Email Sender - status emails are being sent from [email protected] instead of [email protected]
- Defect 664 - cache cleaner job stopped working
- Defect 663 - the collector is not getting the retry values from properties file - causing failure after 0 retries.
- Moving system params to properties files, including:
- JGitOperator configuration
- commited.by.collector - The name that will show up in git logs when collector is doing auto merge
- email.address - Email Address that will show up in git logs when collector is doing auto merge
- JobScheduler configuration
- repeatHourlyForever - The number of hours for the cacheCleanerJob to be execute
- repeatSecondlyForever - The number of seconds to check the queue of commits
- RetriableOperationExecutor configuration
- default_count - The number of retries in case of timeout from Jenkins
- initial_sleep_millis - Until next retry
- max_sleep_time
- Removing lt-pcqs SM
- Minimizing lt-pcqc for only relevant code
- Too many log lines in the reject message to the user.
- Adding [email protected] address mail to auto commit merge by collector
- Author name isn't displayed correctly when EG is merging