All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Added a footer link to the new test driver that provides a link to the build on Jenkins for convenience in the email.
- Add
format_duration_hms
toResultsUtility.genResultDetails()
which causes the duration value to be reported asDD:HH:MM:SS.SS
- For JSONL output, the
duration
field will be a string if using HMS. - For JSONL output, the
duration
field remains a float if not using HMS. - Resolves Issue #34
- For JSONL output, the
- Add new parameter
in_place
toJenkinsTools.spifi_checked_get_parameter()
which enables in-place setting of Aparameters.
- Completed testing overhaul.
- v2.0.0 branch released as the first branch in the 2.x line.
- deprecations from v1.x are removed.
- v1.3.2 branch released as the final branch in the 1.x line.
- Update
ResultsUtility
functions to usegov.sandia.sems.spifi.impl.Tools.spifi_parameter_check()
- Add
verbose
parameter to ResultsUtility.genResultSummaryTable() parameter list. - Add
verbose
parameter to ResultsUtility.genResultDetails() parameter list. - Add
verbose
parameter to HTMLUtility.generate() - Add
verbose
paramter to HTMLUtility.generateList() - Add a new optional
verbose
parameter toJobLauncher.appendJob()
for use by SPiFI developers to turn on additional debugging messages. Currently this is only used bygov.sandia.sems.spifi.impl.Tools.spifi_parameter_check()
but we could expand its use later if we want to.- This will not affect any backwards compatibility or deprecate anything.
- Update
HTMLUtility
functions to usegov.sandia.sems.spifi.impl.Tools.spifi_parameter_check()
- Bug fix for Issue 27 : Fixed alternating color bug in the HTML generated tables.
- Add new parameters to
Git.clone()
recurse_submodules
- enable recursive submodule clone of the given repository.shallow
- enable a shallow clone of the repositories (limit depth to 50)
-
Adding a new "spifi-only" job completion label, "TIMEOUT" which will be set if a job is timed-out via the timeout set in
JobLauncher.appendJob()
. Detection of this is via stacktrace processing when we handle the exception that gets kicked off, so it may be brittle down the line. -
Add new function to JenkinsTools:
/** * Pretty print a Groovy exception StackTrace * * @param env [REQUIRED] Object - Jenkins environment (use 'this' from the Jenkins pipeline). * @param exception [REQUIRED] Exception - Groovy exception object. * * @return */ def spifi_get_exception_stacktrace_pretty(Map args)
- FEATURE: Add
dry_run
entry to theMap
returned byJobLauncher.launchInParallel()
as a boolean value to capture whether or not the build was in DRY-RUN mode. - FEATURE: If in
dry_run
mode, theduration
entry returned byJobLauncher.launchInParallel()
will reflect the value ofdry_run_delay
. - STYLE: Minor tweaks to ResultsUtility
- Don't add a link to HTML, Markdown entries if the job was run in dry run and indicate it
was a dry-run by formatting the usual build-id (
#<build_id>
) to show dry-run as#dry_run
.
- Don't add a link to HTML, Markdown entries if the job was run in dry run and indicate it
was a dry-run by formatting the usual build-id (
- Issue #7 fixes.
- ISSUE #23: Address issue where aborted dry-run jobs report 0 time for duration and provided a bogus link.
- Deprecation:
JenkinsTools.checked_get_parameter
is nowJenkinsTools.spifi_checked_get_parameter
- FEATURE: Add
JenkinsTools
source file- New function:
checked_get_parameter()
- provides a convenience wrapper for dealing with Jenkins parameters provided to jobs.
- New function:
- FEATURE: Adds JSONL option to
ResultsUtility::genResultDetails()
- FEATURE: Add optional Boolean parameter
beautify
toResultsUtility::genResultDetails()
- Only used by JSONL format currently.
- Default is false.
- If set to true, it tries to beautify the output to make it more human readable.
- Is NOT available to
ResultsUtility::genResultDetailTable()
since that is going away.
- class
ParallelJobLauncher
changed toJobLauncher
ResultsUtility::genResultDetailTable()
replaced withResultsUtility::genResultDetails()
- NEW CLASS:
gov.sandia.sems.spifi.DelayedRetryOnRegex
contains a single regular expression condition for checking.- File location:
src/gov/sandia/sems/spifi/DelayedRetryOnRegex.groovy
- Support class for the retry-on-regex-in-console-log
- Required parameters:
env: environment
contains the Jenkins environment so sandboxed things can work. Usethis
from the jenkinsfile. REQUIREDretry_regex: String
contains the regular expression we're searching for. REQUIREDretry_delay: Integer
contains the retry delay amount to use if this expression is matched. Default: 90retry_delay_units: String
contains the units of the retry delay. Allowable: [SECONDS, MINUTES, HOURS] Default: SECONDS.
- File location:
- FEATURE: Added retry-on-regex-in-console-log option for ParallelJobLauncher jobs.
- This allows individual jobs launched by a ParallelJobLauncher to be retried if one of a set of user provided regular expressions are matched in the console log. The purpose of this is to allow the job launcher to retry jobs when intermittent errors occur such as "failure to clone repo from github" or "not enough compiler licenses available". A regex-specific retry delay can be added to allow different delays between retries based on the condition matched, but the total number of retries is fixed based on the job, regardless of which errors are matched. Retry conditions are provided in a list and the first matched is used.
- New parameters to
ParallelJobLauncher::appendJob()
:retry_lines_to_check: Integer
: Maximum console log lines from subjob to check. Minimum = 0, Default = 200retry_max_count: Integer
: Maximum number of retries allowed (note: total attempts is retries+1). Default=0retry_conditions: List<gov.sandia.sems.spifi.DelayedRetryOnRegex>
: List of conditions to check.
- Omitting retry-on-regex-in-console-log options does not change previous behavior.
- DEPRECATION: ParallelJobLauncher constructor with signature
ParallelJobLauncher(env)
will be replaced by a variant that uses a Map parameter to be consistent with the other classes and functions in SPiFI. Use the form:ParallelJobLauncher(env: <env>)
This consturctor will be deprecated in version 2.0.0 - REMOVE PLUGIN DEPENDENCY:
gov.sandia.sems.spifi.Git()
no longer uses the Git plugin, which didn't work with timeouts. we now just use the Jenkinscheckout()
function that comes with Jenkins.- DEPRECATION: The only deprecation notice for this change is that the timeouts are always using MINUTES so we're removing
the
timeout_delay_units
parameter, which doesn't really change anything since it was ignored previously anyways. Nothing will break if it's added however.
- DEPRECATION: The only deprecation notice for this change is that the timeouts are always using MINUTES so we're removing
the