Merge lp:~lukas-kde/unity8/unsnap-from-panel into lp:unity8
- unsnap-from-panel
- Merge into trunk
Status: | Merged |
---|---|
Approved by: | Michał Sawicz |
Approved revision: | 2851 |
Merged at revision: | 2877 |
Proposed branch: | lp:~lukas-kde/unity8/unsnap-from-panel |
Merge into: | lp:unity8 |
Prerequisite: | lp:~lukas-kde/unity8/fix-window-buttons-touch |
Diff against target: |
194 lines (+104/-11) 3 files modified
qml/ApplicationMenus/MenuBar.qml (+5/-0) qml/Panel/Panel.qml (+8/-2) tests/qmltests/tst_Shell.qml (+91/-9) |
To merge this branch: | bzr merge lp:~lukas-kde/unity8/unsnap-from-panel |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Unity8 CI Bot | continuous-integration | Approve | |
Michał Sawicz | Approve | ||
Albert Astals Cid (community) | Approve | ||
Review via email: mp+319558@code.launchpad.net |
Commit message
Fix unsnapping a maximized window from the panel
Description of the change
Fix unsnapping a maximized window from the panel
Load the menubar only if the call hint isn't active
* Are there any related MPs required for this MP to build/function as expected? Please list.
Yes, prereq
* Did you perform an exploratory manual test run of your code change and any related functionality?
Yes
* If you changed the packaging (debian), did you subscribe the ubuntu-unity team to this MP?
N/A
* If you changed the UI, has there been a design review?
N/A
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:2843
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:2844
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Albert Astals Cid (aacid) wrote : | # |
Two minor things in the tests:
+ mouseMove(panel, panel.width/2, panel.panelHeig
Maybe we can add a try compare here to actaully check the menu is shown here?
+ // start dialer, maximize it
You're not starting the dialer, s/dialer/app ?
Lukáš Tinkl (lukas-kde) wrote : | # |
> Two minor things in the tests:
>
> + mouseMove(panel, panel.width/2, panel.panelHeig
> reveal the menus
> Maybe we can add a try compare here to actaully check the menu is shown here?
Done, removed the delay
> + // start dialer, maximize it
>
> You're not starting the dialer, s/dialer/app ?
Yup fixed. Originally it was dialer but then I realized dialer-app has some special treatment in shell, such as it wouldn't show the call hint in the panel.
Albert Astals Cid (aacid) wrote : | # |
I can't open the menus anymore on maximized windows
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:2845
https:/
Executed test runs:
SUCCESS: https:/
UNSTABLE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:2846
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Lukáš Tinkl (lukas-kde) wrote : | # |
> I can't open the menus anymore on maximized windows
Fixed \o/
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:2848
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
UNSTABLE: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Albert Astals Cid (aacid) wrote : | # |
Can you add a test for the thing that broke and you just fixed (i.e. showing menus while maximized)
Lukáš Tinkl (lukas-kde) wrote : | # |
> Can you add a test for the thing that broke and you just fixed (i.e. showing
> menus while maximized)
Test added
Albert Astals Cid (aacid) wrote : | # |
test failed here http://
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:2849
https:/
Executed test runs:
SUCCESS: https:/
UNSTABLE: https:/
UNSTABLE: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Albert Astals Cid (aacid) wrote : | # |
* Did you perform an exploratory manual test run of the code change and any related functionality?
Yes, works good
* Did CI run pass? If not, please explain why.
Let's wait before top approving
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:2850
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
UNSTABLE: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:2850
https:/
Executed test runs:
SUCCESS: https:/
UNSTABLE: https:/
UNSTABLE: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Albert Astals Cid (aacid) wrote : | # |
The newly added test failed on CI :/
Lukáš Tinkl (lukas-kde) wrote : | # |
It's not the new one, just flaky run imo, will restart CI
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:2850
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Michał Sawicz (saviq) wrote : | # |
The touch version of test_dragPanelT
$ sh ./builddir/
[...]
QINFO : qmltestrunner:
FAIL! : qmltestrunner:
Actual (): maximized
Expected (): restored
Loc: [/home/
Michał Sawicz (saviq) wrote : | # |
Same with just this branch, the touch version of the test fails.
Albert Astals Cid (aacid) wrote : | # |
Fails here too (with xvfbtestShell works quite reliably but with testShell fails, seems to be dragging the wrong window)
- 2851. By Lukáš Tinkl
-
stabilize test
Albert Astals Cid (aacid) wrote : | # |
Yep, testfix fixes it :)
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:2851
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Preview Diff
1 | === modified file 'qml/ApplicationMenus/MenuBar.qml' | |||
2 | --- qml/ApplicationMenus/MenuBar.qml 2017-03-08 09:53:21 +0000 | |||
3 | +++ qml/ApplicationMenus/MenuBar.qml 2017-03-21 10:44:49 +0000 | |||
4 | @@ -52,6 +52,10 @@ | |||
5 | 52 | d.dismissAll(); | 52 | d.dismissAll(); |
6 | 53 | } | 53 | } |
7 | 54 | 54 | ||
8 | 55 | function invokeMenu(mouseEvent) { | ||
9 | 56 | mouseArea.onClicked(mouseEvent); | ||
10 | 57 | } | ||
11 | 58 | |||
12 | 55 | GlobalShortcut { | 59 | GlobalShortcut { |
13 | 56 | shortcut: Qt.Key_Alt|Qt.AltModifier | 60 | shortcut: Qt.Key_Alt|Qt.AltModifier |
14 | 57 | active: enableKeyFilter | 61 | active: enableKeyFilter |
15 | @@ -226,6 +230,7 @@ | |||
16 | 226 | } // Row | 230 | } // Row |
17 | 227 | 231 | ||
18 | 228 | MouseArea { | 232 | MouseArea { |
19 | 233 | id: mouseArea | ||
20 | 229 | anchors.fill: parent | 234 | anchors.fill: parent |
21 | 230 | hoverEnabled: d.currentItem | 235 | hoverEnabled: d.currentItem |
22 | 231 | 236 | ||
23 | 232 | 237 | ||
24 | === modified file 'qml/Panel/Panel.qml' | |||
25 | --- qml/Panel/Panel.qml 2017-03-08 09:53:35 +0000 | |||
26 | +++ qml/Panel/Panel.qml 2017-03-21 10:44:49 +0000 | |||
27 | @@ -174,6 +174,10 @@ | |||
28 | 174 | // let it fall through to the window decoration of the maximized window behind, if any | 174 | // let it fall through to the window decoration of the maximized window behind, if any |
29 | 175 | mouse.accepted = false; | 175 | mouse.accepted = false; |
30 | 176 | } | 176 | } |
31 | 177 | var menubar = menuBarLoader.item; | ||
32 | 178 | if (menubar) { | ||
33 | 179 | menubar.invokeMenu(mouse); | ||
34 | 180 | } | ||
35 | 177 | } | 181 | } |
36 | 178 | 182 | ||
37 | 179 | Row { | 183 | Row { |
38 | @@ -200,16 +204,17 @@ | |||
39 | 200 | 204 | ||
40 | 201 | Loader { | 205 | Loader { |
41 | 202 | id: menuBarLoader | 206 | id: menuBarLoader |
42 | 207 | objectName: "menuBarLoader" | ||
43 | 203 | height: parent.height | 208 | height: parent.height |
44 | 204 | enabled: d.enablePointerMenu | 209 | enabled: d.enablePointerMenu |
45 | 205 | opacity: d.showPointerMenu ? 1 : 0 | 210 | opacity: d.showPointerMenu ? 1 : 0 |
46 | 206 | visible: opacity != 0 | 211 | visible: opacity != 0 |
47 | 207 | Behavior on opacity { UbuntuNumberAnimation { duration: UbuntuAnimation.SnapDuration } } | 212 | Behavior on opacity { UbuntuNumberAnimation { duration: UbuntuAnimation.SnapDuration } } |
49 | 208 | active: __applicationMenus.model | 213 | active: __applicationMenus.model && !callHint.visible |
50 | 209 | 214 | ||
51 | 210 | width: parent.width - windowControlButtons.width - units.gu(2) - __indicators.barWidth | 215 | width: parent.width - windowControlButtons.width - units.gu(2) - __indicators.barWidth |
52 | 211 | 216 | ||
54 | 212 | property bool menusRequested: menuBarLoader.item ? menuBarLoader.item.showRequested : false | 217 | readonly property bool menusRequested: menuBarLoader.item ? menuBarLoader.item.showRequested : false |
55 | 213 | 218 | ||
56 | 214 | sourceComponent: MenuBar { | 219 | sourceComponent: MenuBar { |
57 | 215 | id: bar | 220 | id: bar |
58 | @@ -231,6 +236,7 @@ | |||
59 | 231 | } | 236 | } |
60 | 232 | 237 | ||
61 | 233 | onDoubleClicked: PanelState.restoreClicked() | 238 | onDoubleClicked: PanelState.restoreClicked() |
62 | 239 | onPressed: mouse.accepted = false // let the parent mouse area handle this, so it can both unsnap window and show menu | ||
63 | 234 | } | 240 | } |
64 | 235 | } | 241 | } |
65 | 236 | } | 242 | } |
66 | 237 | 243 | ||
67 | === modified file 'tests/qmltests/tst_Shell.qml' | |||
68 | --- tests/qmltests/tst_Shell.qml 2017-03-08 09:54:00 +0000 | |||
69 | +++ tests/qmltests/tst_Shell.qml 2017-03-21 10:44:49 +0000 | |||
70 | @@ -2513,27 +2513,44 @@ | |||
71 | 2513 | tryCompare(app2Surface, "keymap", "fr"); | 2513 | tryCompare(app2Surface, "keymap", "fr"); |
72 | 2514 | } | 2514 | } |
73 | 2515 | 2515 | ||
75 | 2516 | function test_dragPanelToRestoreMaximizedWindow() { | 2516 | function test_dragPanelToRestoreMaximizedWindow_data() { |
76 | 2517 | return [ | ||
77 | 2518 | { tag: "with mouse", mouse: true }, | ||
78 | 2519 | { tag: "with touch", mouse: false } | ||
79 | 2520 | ] | ||
80 | 2521 | } | ||
81 | 2522 | |||
82 | 2523 | function test_dragPanelToRestoreMaximizedWindow(data) { | ||
83 | 2517 | loadShell("desktop"); | 2524 | loadShell("desktop"); |
84 | 2518 | shell.usageScenario = "desktop"; | 2525 | shell.usageScenario = "desktop"; |
85 | 2519 | waitForRendering(shell); | 2526 | waitForRendering(shell); |
86 | 2520 | var panel = findChild(shell, "windowControlArea"); | 2527 | var panel = findChild(shell, "windowControlArea"); |
87 | 2521 | verify(panel); | 2528 | verify(panel); |
88 | 2522 | 2529 | ||
89 | 2523 | var appSurfaceId = topLevelSurfaceList.nextId; | ||
90 | 2524 | var app = ApplicationManager.startApplication("dialer-app") | ||
91 | 2525 | waitUntilAppWindowIsFullyLoaded(appSurfaceId); | ||
92 | 2526 | |||
93 | 2527 | // start dialer, maximize it | 2530 | // start dialer, maximize it |
96 | 2528 | var appContainer = findChild(shell, "appContainer"); | 2531 | var appDelegate = startApplication("dialer-app"); |
95 | 2529 | var appDelegate = findChild(appContainer, "appDelegate_" + appSurfaceId); | ||
97 | 2530 | verify(appDelegate); | 2532 | verify(appDelegate); |
98 | 2533 | |||
99 | 2531 | var maximizeButton = findChild(appDelegate, "maximizeWindowButton"); | 2534 | var maximizeButton = findChild(appDelegate, "maximizeWindowButton"); |
101 | 2532 | mouseClick(maximizeButton); | 2535 | if (data.mouse) { |
102 | 2536 | mouseClick(maximizeButton); | ||
103 | 2537 | } else { | ||
104 | 2538 | tap(maximizeButton); | ||
105 | 2539 | } | ||
106 | 2533 | 2540 | ||
107 | 2541 | waitUntilTransitionsEnd(appDelegate); | ||
108 | 2534 | tryCompare(appDelegate, "state", "maximized"); | 2542 | tryCompare(appDelegate, "state", "maximized"); |
109 | 2535 | 2543 | ||
111 | 2536 | mouseDrag(panel, panel.width/2, panel.height/2, 0, shell.height/3, Qt.LeftButton, Qt.NoModifier, 500); | 2544 | if (data.mouse) { |
112 | 2545 | mouseMove(panel, panel.width/2, panel.panelHeight/2); // to reveal the menus | ||
113 | 2546 | var menuBarLoader = findInvisibleChild(panel, "menuBarLoader"); | ||
114 | 2547 | verify(menuBarLoader); | ||
115 | 2548 | tryCompare(menuBarLoader.item, "visible", true); | ||
116 | 2549 | mouseDrag(panel, panel.width/2, panel.height/2, 0, shell.height/3, Qt.LeftButton, Qt.NoModifier, 500); | ||
117 | 2550 | } else { | ||
118 | 2551 | touchFlick(panel, panel.width/2, panel.panelHeight/2, panel.width/2, shell.height/3); | ||
119 | 2552 | } | ||
120 | 2553 | |||
121 | 2537 | tryCompare(appDelegate, "state", "restored"); | 2554 | tryCompare(appDelegate, "state", "restored"); |
122 | 2538 | } | 2555 | } |
123 | 2539 | 2556 | ||
124 | @@ -2964,5 +2981,70 @@ | |||
125 | 2964 | mouseDoubleClickSequence(panel, panel.width/2, PanelState.panelHeight/2, Qt.LeftButton, Qt.NoModifier, 300); | 2981 | mouseDoubleClickSequence(panel, panel.width/2, PanelState.panelHeight/2, Qt.LeftButton, Qt.NoModifier, 300); |
126 | 2965 | tryCompare(appDelegate, "state", "restored"); | 2982 | tryCompare(appDelegate, "state", "restored"); |
127 | 2966 | } | 2983 | } |
128 | 2984 | |||
129 | 2985 | function test_noMenusWithActiveCall() { | ||
130 | 2986 | loadShell("desktop"); | ||
131 | 2987 | shell.usageScenario = "desktop"; | ||
132 | 2988 | waitForRendering(shell); | ||
133 | 2989 | swipeAwayGreeter(); | ||
134 | 2990 | |||
135 | 2991 | // start music-app, maximize it | ||
136 | 2992 | var appDelegate = startApplication("music-app") | ||
137 | 2993 | verify(appDelegate); | ||
138 | 2994 | appDelegate.requestMaximize(); | ||
139 | 2995 | |||
140 | 2996 | // move the mouse over panel to reveal the menus | ||
141 | 2997 | var panel = findChild(shell, "panel"); | ||
142 | 2998 | verify(panel); | ||
143 | 2999 | mouseMove(panel, panel.width/2, panel.panelHeight/2); // to reveal the menus | ||
144 | 3000 | var menuBarLoader = findInvisibleChild(panel, "menuBarLoader"); | ||
145 | 3001 | verify(menuBarLoader); | ||
146 | 3002 | tryCompare(menuBarLoader.item, "visible", true); | ||
147 | 3003 | |||
148 | 3004 | // place a phone call | ||
149 | 3005 | callManager.foregroundCall = phoneCall; | ||
150 | 3006 | |||
151 | 3007 | // menu bar should be hidden | ||
152 | 3008 | tryCompare(menuBarLoader, "active", false); | ||
153 | 3009 | tryCompare(menuBarLoader, "item", null); | ||
154 | 3010 | |||
155 | 3011 | // remove call | ||
156 | 3012 | callManager.foregroundCall = null; | ||
157 | 3013 | |||
158 | 3014 | // menu bar should be revealed | ||
159 | 3015 | tryCompare(menuBarLoader, "active", true); | ||
160 | 3016 | tryCompare(menuBarLoader.item, "visible", true); | ||
161 | 3017 | } | ||
162 | 3018 | |||
163 | 3019 | function test_maximizedWindowAndMenuInPanel() { | ||
164 | 3020 | loadShell("desktop"); | ||
165 | 3021 | shell.usageScenario = "desktop"; | ||
166 | 3022 | waitForRendering(shell); | ||
167 | 3023 | swipeAwayGreeter(); | ||
168 | 3024 | |||
169 | 3025 | // start music-app, maximize it | ||
170 | 3026 | var appDelegate = startApplication("music-app") | ||
171 | 3027 | verify(appDelegate); | ||
172 | 3028 | appDelegate.requestMaximize(); | ||
173 | 3029 | tryCompare(appDelegate, "state", "maximized"); | ||
174 | 3030 | |||
175 | 3031 | // move the mouse over panel to reveal the menus | ||
176 | 3032 | var panel = findChild(shell, "panel"); | ||
177 | 3033 | verify(panel); | ||
178 | 3034 | mouseMove(panel, panel.width/2, panel.panelHeight/2); // to reveal the menus | ||
179 | 3035 | var menuBar = findChild(panel, "menuBar"); | ||
180 | 3036 | verify(menuBar); | ||
181 | 3037 | tryCompare(menuBar, "visible", true); | ||
182 | 3038 | |||
183 | 3039 | // check that the menu popup appears | ||
184 | 3040 | var priv = findInvisibleChild(menuBar, "d"); | ||
185 | 3041 | var menuItem0 = findChild(menuBar, "menuBar-item0"); | ||
186 | 3042 | verify(menuItem0); | ||
187 | 3043 | mouseMove(menuItem0, menuItem0.width/2, menuItem0.height/2, 200); | ||
188 | 3044 | tryCompare(menuItem0, "visible", true); | ||
189 | 3045 | mouseClick(menuItem0); | ||
190 | 3046 | tryCompare(priv, "currentItem", menuItem0); | ||
191 | 3047 | tryCompare(priv.currentItem, "popupVisible", true); | ||
192 | 3048 | } | ||
193 | 2967 | } | 3049 | } |
194 | 2968 | } | 3050 | } |
PASSED: Continuous integration, rev:2842 /unity8- jenkins. ubuntu. com/job/ lp-unity8- ci/3337/ /unity8- jenkins. ubuntu. com/job/ build/4391 /unity8- jenkins. ubuntu. com/job/ test-0- autopkgtest/ label=amd64, release= xenial+ overlay, testname= qmluitests. sh/2628 /unity8- jenkins. ubuntu. com/job/ test-0- autopkgtest/ label=amd64, release= zesty,testname= qmluitests. sh/2628 /unity8- jenkins. ubuntu. com/job/ build-0- fetch/4419 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=amd64, release= xenial+ overlay/ 4252 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=amd64, release= xenial+ overlay/ 4252/artifact/ output/ *zip*/output. zip /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=amd64, release= zesty/4252 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=amd64, release= zesty/4252/ artifact/ output/ *zip*/output. zip /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=armhf, release= xenial+ overlay/ 4252 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=armhf, release= xenial+ overlay/ 4252/artifact/ output/ *zip*/output. zip /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=armhf, release= zesty/4252 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=armhf, release= zesty/4252/ artifact/ output/ *zip*/output. zip /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=i386, release= xenial+ overlay/ 4252 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=i386, release= xenial+ overlay/ 4252/artifact/ output/ *zip*/output. zip /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=i386, release= zesty/4252 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=i386, release= zesty/4252/ artifact/ output/ *zip*/output. zip
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild: /unity8- jenkins. ubuntu. com/job/ lp-unity8- ci/3337/ rebuild
https:/