Key: |
QB-3219
|
Type: |
Improvement
|
Status: |
Closed
|
Resolution: |
Won't Fix
|
Priority: |
Major
|
Assignee: |
Robin Shen
|
Reporter: |
Robin Shen
|
Votes: |
0
|
Watchers: |
0
|
If you were logged in you would be able to see more operations.
|
|
|
QuickBuild
Created: 14/Jul/18 12:28 AM
Updated: 25/Jan/19 08:48 AM
|
|
|
Component/s: |
None
|
Affects Version/s: |
8.0.10
|
Fix Version/s: |
None
|
|
Original Estimate:
|
Unknown
|
Remaining Estimate:
|
Unknown
|
Time Spent:
|
Unknown
|
File Attachments:
|
None
|
Image Attachments:
|
|
|
Tizen use rpm packages, so user have to select base rpm snapshot version to build thier own package.
snapshot information is dynamically changed.
So if user select snapshot info, then QB display possible build package list.
("BUILD_PKG_LIST" is 'repo_name commit_id')
==============================================
///// BUILD_PKG_LIST variable's Choices value. (multi-selection box)
${groovy:
def choice = "";
def snapshotinfo = new XmlParser().parse(new File("/home/build.qb/build_meta/snapshot_info"));
def url = snapshotinfo.reference[0].'@url';
def target = "";
if("${vars.get("BUILD_REFERENCE")\}" == "Ref. Snapshot"){
target = snapshotinfo.reference[0].'@target';
\}else if("${vars.get("BUILD_REFERENCE")\}" == "Snapshot Number"){
if(vars.get("SNAPSHOT_NUM").isEmpty() || vars.get("SNAPSHOT_NUM").getValue().equals("do not need select"))
return choice;
target = vars.get("SNAPSHOT_NUM").getValue();
\}else if ("${vars.get("BUILD_REFERENCE")\}" == "Live"){
def manifest = new XmlParser().parse(new File("/home/build.qb/build_meta/manifest.xml"));
manifest.project.each{ it->
if(!it.'@groups'.equals("meta"))
choice += it.'@name' + ' ' + it.'@revision' + '\n';
\}
return choice;
\}else{
return choice;
\}
def String cmd = "curl " + url + target + "/builddata/manifest/" + target + "_standard.xml";
def String [] command = ["/bin/sh", "-c", cmd];
Process p = Runtime.getRuntime().exec(command, null, null);
def result = p.text;
def manifest = new XmlParser().parseText(result);
manifest.project.each{ it->
choice += it.'@name' + ' ' + it.'@revision' + '\n';
\}
return choice;
}
=======================================
Problem situation is that user want to change commit_id in selected "BUILD_PKG_LIST",
As you know, prompt as multi-selection box's value cannot ne changed.
So, I made "BUILD_PKG_LIST_MODIFY" variable by prompt as a textbox.
Me : "If you write your own repo's path and commit information in BUILD_PKG_LIST_MODIFY field, then QB will override BUILD_PKG_LIST's selected info."
Test User 1 : "Hm... But 'Ctrl+C' is not work on selected field. Should I type full path on text box? it's very hard."
Test User 2 : "Number of package list is over 1,000. Is there no search function?"
If prompt as a textbox's value can be changed dynamically like prompt as a select box and multi-select box,
I can provide package list("BUILD_PKG_LIST") by textbox.
Then user just can modify or delete package which is not needed to build.
Sum up the my request,
1. Apply dynamic change function to 'prompt as a textbox' variable. (It is best case)
(If no.1 is impossible,)
2-1. Apply edit function on selected field to 'prompt as a multi-select' variable.
2-2. Apply Ctrl+C key can be work on selected field to 'prompt as a multi-select' variable.
(by the way,)
3. Apply search function to 'prompt as select' and 'prompt as a multi-select' variable.
|
Description
|
Tizen use rpm packages, so user have to select base rpm snapshot version to build thier own package.
snapshot information is dynamically changed.
So if user select snapshot info, then QB display possible build package list.
("BUILD_PKG_LIST" is 'repo_name commit_id')
==============================================
///// BUILD_PKG_LIST variable's Choices value. (multi-selection box)
${groovy:
def choice = "";
def snapshotinfo = new XmlParser().parse(new File("/home/build.qb/build_meta/snapshot_info"));
def url = snapshotinfo.reference[0].'@url';
def target = "";
if("${vars.get("BUILD_REFERENCE")\}" == "Ref. Snapshot"){
target = snapshotinfo.reference[0].'@target';
\}else if("${vars.get("BUILD_REFERENCE")\}" == "Snapshot Number"){
if(vars.get("SNAPSHOT_NUM").isEmpty() || vars.get("SNAPSHOT_NUM").getValue().equals("do not need select"))
return choice;
target = vars.get("SNAPSHOT_NUM").getValue();
\}else if ("${vars.get("BUILD_REFERENCE")\}" == "Live"){
def manifest = new XmlParser().parse(new File("/home/build.qb/build_meta/manifest.xml"));
manifest.project.each{ it->
if(!it.'@groups'.equals("meta"))
choice += it.'@name' + ' ' + it.'@revision' + '\n';
\}
return choice;
\}else{
return choice;
\}
def String cmd = "curl " + url + target + "/builddata/manifest/" + target + "_standard.xml";
def String [] command = ["/bin/sh", "-c", cmd];
Process p = Runtime.getRuntime().exec(command, null, null);
def result = p.text;
def manifest = new XmlParser().parseText(result);
manifest.project.each{ it->
choice += it.'@name' + ' ' + it.'@revision' + '\n';
\}
return choice;
}
=======================================
Problem situation is that user want to change commit_id in selected "BUILD_PKG_LIST",
As you know, prompt as multi-selection box's value cannot ne changed.
So, I made "BUILD_PKG_LIST_MODIFY" variable by prompt as a textbox.
Me : "If you write your own repo's path and commit information in BUILD_PKG_LIST_MODIFY field, then QB will override BUILD_PKG_LIST's selected info."
Test User 1 : "Hm... But 'Ctrl+C' is not work on selected field. Should I type full path on text box? it's very hard."
Test User 2 : "Number of package list is over 1,000. Is there no search function?"
If prompt as a textbox's value can be changed dynamically like prompt as a select box and multi-select box,
I can provide package list("BUILD_PKG_LIST") by textbox.
Then user just can modify or delete package which is not needed to build.
Sum up the my request,
1. Apply dynamic change function to 'prompt as a textbox' variable. (It is best case)
(If no.1 is impossible,)
2-1. Apply edit function on selected field to 'prompt as a multi-select' variable.
2-2. Apply Ctrl+C key can be work on selected field to 'prompt as a multi-select' variable.
(by the way,)
3. Apply search function to 'prompt as select' and 'prompt as a multi-select' variable. |
Show » |
|