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.

Reply via email to