tree 24a99ddeba2ca73515ab98f67887828d9adfef13
parent c3299a83c71ac9f7d57c3963e61b2ef4ce2f53b9
author cdmikechen <cdmikechen@hotmail.com> 1659190527 +0800
committer Kevin <pingsutw@apache.org> 1660019235 +0000

SUBMARINE-1287. Experiment codes refactoring

### What is this PR for?
Based on the modified refactored notebook codes, the experiment codes are also need to be refactored.

### What type of PR is it?
Refactoring

### Todos
* [x] - Experiment codes refactoring in K8sSubmitter
* [x] - Add experiment test cases
* [x] - Fix some test cases error (Add h2 database dependency for test)
* [x] - Add `submarine-submitter-k8s` package test cases to workflow

### What is the Jira issue?
https://issues.apache.org/jira/browse/SUBMARINE-1287

### How should this be tested?
Add experiment test cases (tensorflow, pytorch, xgboots)

### Screenshots (if appropriate)
No

### Questions:
* Do the license files need updating? No
* Are there breaking changes for older versions? Yes
* Does this need new documentation? No

Author: cdmikechen <cdmikechen@hotmail.com>

Signed-off-by: Kevin <pingsutw@apache.org>

Closes #974 from cdmikechen/SUBMARINE-1287 and squashes the following commits:

01e2828f [cdmikechen] add jacoco cache
4b50fe23 [cdmikechen] Fix codecov error
09f19423 [cdmikechen] add submarine-submitter-k8s codecov
4f761d75 [cdmikechen] Add submarine-submitter-k8s to build
4d8fee16 [cdmikechen] Add test workflow
580e2cce [cdmikechen] Fix SubmitterTransactionTest error
25b3a088 [cdmikechen] Add PyTorch/XGBoost test
d0d9b55a [cdmikechen] Change agent name
a62e6117 [cdmikechen] Add SubmitterPyTorchApiTest
f857521f [cdmikechen] Fix NotebookSpecParserTest error
5401e2a5 [cdmikechen] Refactor Experiment
