Branch: refs/heads/rest-api
Home: https://github.com/jenkinsci/btc-embeddedplatform-plugin
Commit: 6e1637325425b6de5cbd1597b687b2553a035f91
https://github.com/jenkinsci/btc-embeddedplatform-plugin/commit/6e1637325425b6de5cbd1597b687b2553a035f91
Author: Thabo Krick <[email protected]>
Date: 2022-09-29 (Thu, 29 Sep 2022)
Changed paths:
M .classpath
M .gitignore
M .project
M .settings/org.eclipse.core.resources.prefs
M .settings/org.eclipse.jdt.core.prefs
M Jenkinsfile
A mvn_build_plugin.bat
A mvn_build_plugin.sh
A mvn_debug_plugin.bat
A mvn_run_plugin.bat
M pom.xml
M src/main/java/com/btc/ep/plugins/embeddedplatform/http/HttpRequester.java
M src/main/resources/dsl/btc.groovy
Log Message:
-----------
Ep rest api (#4)
* Fixed redundant basePath in HttpRequester
* added a few steps #wip
* Added Profile Load Step (basic)
* gitignore and original profileload implementation
* Local Testing + Enhanced Step template
- local testing can now be done without running Jenkins (using a fake
StepContext)
- BtcStepExecution.java has been added to take care of certain boilerplate code
in a common way and making the code of the individual StepExecution classes
much easier
- BtcExampleStep has been adapted to reflect the changes and serve as a template
* Reporting
* simplified reporting
* Create BtcVectorImportStep.java
* Simulink and C-Code Profile creation steps
* Added Tolerance Import Step
* Requirements-based Testing + Simulink Architecture Import
additionally:
- updated the vectorImportStep (now mentions the JIRA ticket for the missing
vectorFormat option)
- updated HttpRequester.waitForCompletion(...) to allow queries including the
expected response object (the API is weird here...). This way we can have
things like the ImportStatus for test case imports, the results of test
executions, etc.
* Profile Creation steps + comments regarding blocking tickets
* Added InputRestrictions Import/Export
* clean up + migration suite
* created BtcAddDomainCheckGoals according to specifications on asana. Function
runs but fails on call to domainApi.createDomainChecksRanges() in line 122.
* added minor bug fixes to BtcAddDomainCheckGoals along with jenkins info.
updated jenkinsfile
* more bug fixes
* added VectorImport error handling
* more bug fixes and error-handling updates
* more of the same
* EP22.1 API compatibility (sprint increment 2022-04-02)
* v22.1 + arch-import + cleanup
* Adapted BtcStart step for launching external processes in a way Jenkins likes
* HttpRequester.waitForCompletion(): result objects with specified class
changed HttpRequester.waitForCompletion() so it can take a class argument in
addition to the field name. It then tries to convert the result object into
that class which makes it much easier to work with it (compared to generic
nested maps).
* minor changes
* more changes
* more error handling
* more error handling around API calls
* refactoring to make profilePath optional
* A whole lotta fixing
- HttpRequester: fixed sporadic timeouts
- ReportService: fixed resource handling (only worked in IDE until now)
- Switched to proper stuff for file operations using the node's execution
context rather than trying to detect this the pojo way. This affects almost all
steps (a lot of Paths replaced by Strings)
- Fixed result processing for RBT execution
- Added GCC to list of known compilers (linux support)
* Added convenience method to invoke the HtmlPublisher plugin
* Preparing yaml-based approach using single config + a single pipeline step
instead of individual pipeline steps
* Added some log messages, fixed bug in RBT step, skip support for TestWithBTC
* Changed name of steps in report
* error handling + removal of test files
* Applied common formatting
* improved error handling and introduced method for calling matlab functions
* Windows-Registry support, refactoring, fixes
- HttpRequester now properly reuses the HttpClient
- AbstractBtcStepExecution: improved error handling and moved spawnProcess
method into its own helper class
- Removed obsolete checks for an active profile from some steps
- Removed scope queries that could be replaced with "Util.getToplevelScope()"
- Moved filterting features into their own helper class
- Moved compiler stuff into its own helper class
- Added auto-detection of active ep version (incl. installPath) for windows
agents (via registry)
- Replaced dangerous File operations with the proper FilePath implementations
(hudson.remoting)
- Some general improvements on error handling
* fixed reporting issues
* migrated to BTC 22.1; JUnitXML added but untested due to plugin building
issues
* JUnit created in Jenkins root under program files
* Changed JUnitXMLHelper to use Jenkins remote file access
- Paths.get(filename) --> getContext().get(FilePath.class).child(filename)
- removed a couple of "toString" calls: ("some-string" + someObject) ->
someObject is autocast to String
- changed API calls to work with the generated v22.1 api
* now also invoking JUnit plugin step to analyze the junit xml file that we
generate
* minor formatting fix on xml
* HttpRequester fix, refactoring
* tolerance reset
* Adapted to EP22.2 REST API Java SDK, fixed severe issues with reporting and
HTTP connection to EP
* latest changes + BtcStartupStep2 (experiments regarding master-agent
communication)
* new approach: now executing main calls on agent
- btc.groovy: added helper function to get the IP address of the container (to
pass to btcStart command)
- BtcExecution: replacement for AbstractBtcStepExecution, superclass for the
new MasterToSlaveCallables that contain the main logic
- DataTransferObject: added to allow passing data between the different
execution contexts (controller/agent)
- StepExecutionHelper: new helper class with some of the methods of the
AbstractBtcStepExecution that need to run on the Jenkins controller, plus
convenience method to run the MasterToSlaveCallables on the agent (via remote
channel)
* partial migration
* Support for docker-based agents
Refactored communication concept with agent-based execution
* fixed some classes that were not serializable due to non transient fields
with RestAPI services
* fixed broken startup and added first example of compatibility function
(btc.vectorImport)
As long as the field names match exactly, the compatibility method can directly
pass on the resolved closure to the new method. Otherwise, the values need to
be parsed explicitly:
def foo(body) {
// transform the closure into a key value structure
def config = resolveConfig(body)
// call new step with explicit values
btcFoo(newFieldName1: config.oldFieldName1, newFieldName2:
config.oldFieldName2)
}
* started documenting btc.groovy with backwards compatability wrappers
* skeleton for groovy compatability wrapper, and translated to agent-
* transferred all steps to new execute-on-agent format
* fixed btc.groovy plus some minor updates
* v22.2.1-beta4 - syntax fixes in btc.groovy
Co-authored-by: Thabo Krick <[email protected]>
Co-authored-by: Scott-Reeves <[email protected]>
Co-authored-by: Nathan Drasovean <[email protected]>
--
You received this message because you are subscribed to the Google Groups
"Jenkins Commits" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/jenkinsci-commits/jenkinsci/btc-embeddedplatform-plugin/push/refs/heads/rest-api/cba426-6e1637%40github.com.