Merge lp:~azzar1/unity8/dragging-cursor-on-first-press into lp:unity8
- dragging-cursor-on-first-press
- Merge into trunk
Status: | Merged |
---|---|
Approved by: | Lukáš Tinkl |
Approved revision: | 2610 |
Merged at revision: | 2711 |
Proposed branch: | lp:~azzar1/unity8/dragging-cursor-on-first-press |
Merge into: | lp:unity8 |
Prerequisite: | lp:~mzanetti/unity8/unified-stages |
Diff against target: |
215 lines (+124/-2) 6 files modified
qml/Stage/MoveHandler.qml (+8/-0) tests/mocks/Unity/Application/CMakeLists.txt (+1/-0) tests/mocks/Unity/Application/MirMock.cpp (+49/-0) tests/mocks/Unity/Application/MirMock.h (+39/-0) tests/mocks/Unity/Application/plugin.cpp (+11/-2) tests/qmltests/Stage/tst_DesktopStage.qml (+16/-0) |
To merge this branch: | bzr merge lp:~azzar1/unity8/dragging-cursor-on-first-press |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Albert Astals Cid (community) | Abstain | ||
Unity8 CI Bot | continuous-integration | Approve | |
Lukáš Tinkl (community) | Approve | ||
Review via email: mp+307830@code.launchpad.net |
This proposal supersedes a proposal from 2016-08-29.
Commit message
Set Mir.cursorName to "grabbing" on first mouse press on a window decoration. Don't wait for press+motion.
Description of the change
* Are there any related MPs required for this MP to build/function as expected?
Yes, lp:~mzanetti/unity8/unified-stages but it's merged and listed as prerequisite.
* 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?
Not a visual change. The behavior is now similar to unity7 and all major DEs.
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
Lukáš Tinkl (lukas-kde) wrote : Posted in a previous version of this proposal | # |
It doesn't work correctly when you double-click the decoration (to maximize the window)
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:2603
https:/
Executed test runs:
Click here to trigger a rebuild:
https:/
Andrea Azzarone (azzar1) wrote : Posted in a previous version of this proposal | # |
Fixed!
Albert Astals Cid (aacid) wrote : Posted in a previous version of this proposal | # |
Text conflict in qml/Stages/
1 conflicts encountered.
Also, should we have a test?
Andrea Azzarone (azzar1) wrote : Posted in a previous version of this proposal | # |
> Text conflict in qml/Stages/
> 1 conflicts encountered.
>
> Also, should we have a test?
Yeah I tried to add a test but asserting for Mir.Cursor does not work.
Albert Astals Cid (aacid) wrote : Posted in a previous version of this proposal | # |
> > Text conflict in qml/Stages/
> > 1 conflicts encountered.
> >
> > Also, should we have a test?
>
> Yeah I tried to add a test but asserting for Mir.Cursor does not work.
What do you mean it does not work?
Andrea Azzarone (azzar1) wrote : Posted in a previous version of this proposal | # |
> > > Text conflict in qml/Stages/
> > > 1 conflicts encountered.
> > >
> > > Also, should we have a test?
> >
> > Yeah I tried to add a test but asserting for Mir.Cursor does not work.
>
> What do you mean it does not work?
Mir.cursorName is always "undefined" when running tests. Likely it requires a Mir session.
Albert Astals Cid (aacid) wrote : Posted in a previous version of this proposal | # |
Conflicts with https:/
Given how unified-stages is our focus on landing ASAP i'd suggest you rebase on top of it.
Albert Astals Cid (aacid) wrote : Posted in a previous version of this proposal | # |
> Mir.cursorName is always "undefined" when running tests. Likely it requires a
> Mir session.
No, it does not, Mir.cursorName in "real life" is provided by qtmir's Unity.Application plugin (./src/
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:2605
https:/
Executed test runs:
SUCCESS: https:/
UNSTABLE: 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:/
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:2607
https:/
Executed test runs:
SUCCESS: https:/
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:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Albert Astals Cid (aacid) wrote : | # |
Should we remove the
qmlRegisterUncr
line from the mock plugin.cpp?
Declaring Mir both a singleton an uncreatable is a bit weird, no?
Andrea Azzarone (azzar1) wrote : | # |
> Should we remove the
>
> qmlRegisterUncr
> it can't be instantiated");
>
> line from the mock plugin.cpp?
>
> Declaring Mir both a singleton an uncreatable is a bit weird, no?
Fixed thanks.
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:2609
https:/
Executed test runs:
SUCCESS: https:/
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:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Albert Astals Cid (aacid) wrote : | # |
Code looks good.
BUT
When i use it on my computer i don't get a dragging icon at all and terminal says
[2016-10-
This is a realtively clean user and a relatively new install.
Any idea what may be wrong?
Lukáš Tinkl (lukas-kde) wrote : | # |
Worked fine here, just tested it
Only wondering where does this magic constant "175" for the timer coming from? :)
Andrea Azzarone (azzar1) wrote : | # |
> Worked fine here, just tested it
>
> Only wondering where does this magic constant "175" for the timer coming from?
> :)
It's the same we have in unity7.
Lukáš Tinkl (lukas-kde) wrote : | # |
OK, no objections from me then :)
Albert Astals Cid (aacid) wrote : | # |
Text conflict in tests/qmltests/
1 conflicts encountered.
Note: Was already top approved
- 2610. By Andrea Azzarone
-
Merge with trunk and resolve conflicts.
Andrea Azzarone (azzar1) wrote : | # |
> Text conflict in tests/qmltests/
> 1 conflicts encountered.
>
> Note: Was already top approved
Fixed.
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:2610
https:/
Executed test runs:
SUCCESS: https:/
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:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Albert Astals Cid (aacid) : | # |
Preview Diff
1 | === modified file 'qml/Stage/MoveHandler.qml' | |||
2 | --- qml/Stage/MoveHandler.qml 2016-09-27 15:03:00 +0000 | |||
3 | +++ qml/Stage/MoveHandler.qml 2016-10-28 12:29:16 +0000 | |||
4 | @@ -54,6 +54,11 @@ | |||
5 | 54 | property bool nearBottomLeftCorner: target.maximizedBottomLeft | 54 | property bool nearBottomLeftCorner: target.maximizedBottomLeft |
6 | 55 | property bool nearBottomRightCorner: target.maximizedBottomRight | 55 | property bool nearBottomRightCorner: target.maximizedBottomRight |
7 | 56 | 56 | ||
8 | 57 | property Timer mouseDownTimer: Timer { | ||
9 | 58 | interval: 175 | ||
10 | 59 | onTriggered: Mir.cursorName = "grabbing" | ||
11 | 60 | } | ||
12 | 61 | |||
13 | 57 | function resetEdges() { | 62 | function resetEdges() { |
14 | 58 | nearLeftEdge = false; | 63 | nearLeftEdge = false; |
15 | 59 | nearRightEdge = false; | 64 | nearRightEdge = false; |
16 | @@ -93,14 +98,17 @@ | |||
17 | 93 | } | 98 | } |
18 | 94 | 99 | ||
19 | 95 | priv.dragging = true; | 100 | priv.dragging = true; |
20 | 101 | priv.mouseDownTimer.start(); | ||
21 | 96 | } else { | 102 | } else { |
22 | 97 | priv.dragging = false; | 103 | priv.dragging = false; |
23 | 104 | priv.mouseDownTimer.stop(); | ||
24 | 98 | Mir.cursorName = ""; | 105 | Mir.cursorName = ""; |
25 | 99 | } | 106 | } |
26 | 100 | } | 107 | } |
27 | 101 | 108 | ||
28 | 102 | function handlePositionChanged(mouse, sensingPoints) { | 109 | function handlePositionChanged(mouse, sensingPoints) { |
29 | 103 | if (priv.dragging) { | 110 | if (priv.dragging) { |
30 | 111 | priv.mouseDownTimer.stop(); | ||
31 | 104 | Mir.cursorName = "grabbing"; | 112 | Mir.cursorName = "grabbing"; |
32 | 105 | 113 | ||
33 | 106 | // restore from maximized when dragging away from edges/corners; guard against inadvertent changes when going into maximized state | 114 | // restore from maximized when dragging away from edges/corners; guard against inadvertent changes when going into maximized state |
34 | 107 | 115 | ||
35 | === modified file 'tests/mocks/Unity/Application/CMakeLists.txt' | |||
36 | --- tests/mocks/Unity/Application/CMakeLists.txt 2016-06-30 13:51:32 +0000 | |||
37 | +++ tests/mocks/Unity/Application/CMakeLists.txt 2016-10-28 12:29:16 +0000 | |||
38 | @@ -5,6 +5,7 @@ | |||
39 | 5 | MirSurface.cpp | 5 | MirSurface.cpp |
40 | 6 | MirSurfaceItem.cpp | 6 | MirSurfaceItem.cpp |
41 | 7 | MirSurfaceListModel.cpp | 7 | MirSurfaceListModel.cpp |
42 | 8 | MirMock.cpp | ||
43 | 8 | ObjectListModel.h | 9 | ObjectListModel.h |
44 | 9 | SurfaceManager.cpp | 10 | SurfaceManager.cpp |
45 | 10 | VirtualKeyboard.cpp | 11 | VirtualKeyboard.cpp |
46 | 11 | 12 | ||
47 | === added file 'tests/mocks/Unity/Application/MirMock.cpp' | |||
48 | --- tests/mocks/Unity/Application/MirMock.cpp 1970-01-01 00:00:00 +0000 | |||
49 | +++ tests/mocks/Unity/Application/MirMock.cpp 2016-10-28 12:29:16 +0000 | |||
50 | @@ -0,0 +1,49 @@ | |||
51 | 1 | /* | ||
52 | 2 | * Copyright (C) 2016 Canonical, Ltd. | ||
53 | 3 | * | ||
54 | 4 | * This program is free software; you can redistribute it and/or modify | ||
55 | 5 | * it under the terms of the GNU General Public License as published by | ||
56 | 6 | * the Free Software Foundation; version 3. | ||
57 | 7 | * | ||
58 | 8 | * This program is distributed in the hope that it will be useful, | ||
59 | 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
60 | 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
61 | 11 | * GNU General Public License for more details. | ||
62 | 12 | * | ||
63 | 13 | * You should have received a copy of the GNU General Public License | ||
64 | 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
65 | 15 | */ | ||
66 | 16 | |||
67 | 17 | #include "MirMock.h" | ||
68 | 18 | |||
69 | 19 | MirMock *MirMock::the_mir = nullptr; | ||
70 | 20 | |||
71 | 21 | MirMock *MirMock::instance() | ||
72 | 22 | { | ||
73 | 23 | return the_mir; | ||
74 | 24 | } | ||
75 | 25 | |||
76 | 26 | MirMock::MirMock() | ||
77 | 27 | { | ||
78 | 28 | Q_ASSERT(the_mir == nullptr); | ||
79 | 29 | the_mir = this; | ||
80 | 30 | } | ||
81 | 31 | |||
82 | 32 | MirMock::~MirMock() | ||
83 | 33 | { | ||
84 | 34 | Q_ASSERT(the_mir == this); | ||
85 | 35 | the_mir = nullptr; | ||
86 | 36 | } | ||
87 | 37 | |||
88 | 38 | void MirMock::setCursorName(const QString &cursorName) | ||
89 | 39 | { | ||
90 | 40 | if (cursorName != m_cursorName) { | ||
91 | 41 | m_cursorName = cursorName; | ||
92 | 42 | Q_EMIT cursorNameChanged(m_cursorName); | ||
93 | 43 | } | ||
94 | 44 | } | ||
95 | 45 | |||
96 | 46 | QString MirMock::cursorName() const | ||
97 | 47 | { | ||
98 | 48 | return m_cursorName; | ||
99 | 49 | } | ||
100 | 0 | 50 | ||
101 | === added file 'tests/mocks/Unity/Application/MirMock.h' | |||
102 | --- tests/mocks/Unity/Application/MirMock.h 1970-01-01 00:00:00 +0000 | |||
103 | +++ tests/mocks/Unity/Application/MirMock.h 2016-10-28 12:29:16 +0000 | |||
104 | @@ -0,0 +1,39 @@ | |||
105 | 1 | /* | ||
106 | 2 | * Copyright (C) 2016 Canonical, Ltd. | ||
107 | 3 | * | ||
108 | 4 | * This program is free software; you can redistribute it and/or modify | ||
109 | 5 | * it under the terms of the GNU General Public License as published by | ||
110 | 6 | * the Free Software Foundation; version 3. | ||
111 | 7 | * | ||
112 | 8 | * This program is distributed in the hope that it will be useful, | ||
113 | 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
114 | 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
115 | 11 | * GNU General Public License for more details. | ||
116 | 12 | * | ||
117 | 13 | * You should have received a copy of the GNU General Public License | ||
118 | 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
119 | 15 | */ | ||
120 | 16 | |||
121 | 17 | #ifndef MIR_MOCK_H | ||
122 | 18 | #define MIR_MOCK_H | ||
123 | 19 | |||
124 | 20 | #include <unity/shell/application/Mir.h> | ||
125 | 21 | |||
126 | 22 | class MirMock : public ::Mir | ||
127 | 23 | { | ||
128 | 24 | Q_OBJECT | ||
129 | 25 | public: | ||
130 | 26 | explicit MirMock(); | ||
131 | 27 | virtual ~MirMock(); | ||
132 | 28 | |||
133 | 29 | static MirMock *instance(); | ||
134 | 30 | |||
135 | 31 | void setCursorName(const QString &cursorName) override; | ||
136 | 32 | QString cursorName() const override; | ||
137 | 33 | |||
138 | 34 | private: | ||
139 | 35 | static MirMock *the_mir; | ||
140 | 36 | QString m_cursorName; | ||
141 | 37 | }; | ||
142 | 38 | |||
143 | 39 | #endif | ||
144 | 0 | 40 | ||
145 | === modified file 'tests/mocks/Unity/Application/plugin.cpp' | |||
146 | --- tests/mocks/Unity/Application/plugin.cpp 2016-06-30 13:51:32 +0000 | |||
147 | +++ tests/mocks/Unity/Application/plugin.cpp 2016-10-28 12:29:16 +0000 | |||
148 | @@ -17,6 +17,7 @@ | |||
149 | 17 | #include "plugin.h" | 17 | #include "plugin.h" |
150 | 18 | #include "ApplicationInfo.h" | 18 | #include "ApplicationInfo.h" |
151 | 19 | #include "ApplicationManager.h" | 19 | #include "ApplicationManager.h" |
152 | 20 | #include "MirMock.h" | ||
153 | 20 | #include "MirSurfaceItem.h" | 21 | #include "MirSurfaceItem.h" |
154 | 21 | #include "SurfaceManager.h" | 22 | #include "SurfaceManager.h" |
155 | 22 | 23 | ||
156 | @@ -38,6 +39,9 @@ | |||
157 | 38 | if (!SurfaceManager::instance()) { | 39 | if (!SurfaceManager::instance()) { |
158 | 39 | new SurfaceManager; | 40 | new SurfaceManager; |
159 | 40 | } | 41 | } |
160 | 42 | if (!MirMock::instance()) { | ||
161 | 43 | new MirMock; | ||
162 | 44 | } | ||
163 | 41 | } | 45 | } |
164 | 42 | 46 | ||
165 | 43 | QObject* applicationManagerSingleton(QQmlEngine*, QJSEngine*) | 47 | QObject* applicationManagerSingleton(QQmlEngine*, QJSEngine*) |
166 | @@ -46,6 +50,12 @@ | |||
167 | 46 | return new ApplicationManager; | 50 | return new ApplicationManager; |
168 | 47 | } | 51 | } |
169 | 48 | 52 | ||
170 | 53 | QObject* mirSingleton(QQmlEngine*, QJSEngine*) | ||
171 | 54 | { | ||
172 | 55 | createUnityApplicationSharedSingletons(); | ||
173 | 56 | return MirMock::instance(); | ||
174 | 57 | } | ||
175 | 58 | |||
176 | 49 | QObject* surfaceManagerSingleton(QQmlEngine*, QJSEngine*) | 59 | QObject* surfaceManagerSingleton(QQmlEngine*, QJSEngine*) |
177 | 50 | { | 60 | { |
178 | 51 | createUnityApplicationSharedSingletons(); | 61 | createUnityApplicationSharedSingletons(); |
179 | @@ -78,9 +88,8 @@ | |||
180 | 78 | qmlRegisterType<ApplicationInfo>(uri, 0, 1, "ApplicationInfo"); | 88 | qmlRegisterType<ApplicationInfo>(uri, 0, 1, "ApplicationInfo"); |
181 | 79 | 89 | ||
182 | 80 | qmlRegisterSingletonType<ApplicationManager>(uri, 0, 1, "ApplicationManager", applicationManagerSingleton); | 90 | qmlRegisterSingletonType<ApplicationManager>(uri, 0, 1, "ApplicationManager", applicationManagerSingleton); |
183 | 91 | qmlRegisterSingletonType<MirMock>(uri, 0, 1, "Mir", mirSingleton); | ||
184 | 81 | qmlRegisterSingletonType<SurfaceManager>(uri, 0, 1, "SurfaceManager", surfaceManagerSingleton); | 92 | qmlRegisterSingletonType<SurfaceManager>(uri, 0, 1, "SurfaceManager", surfaceManagerSingleton); |
185 | 82 | |||
186 | 83 | qmlRegisterUncreatableType<Mir>(uri, 0, 1, "Mir", "Mir provides enum values, it can't be instantiated"); | ||
187 | 84 | } | 93 | } |
188 | 85 | 94 | ||
189 | 86 | void FakeUnityApplicationQmlPlugin::initializeEngine(QQmlEngine *engine, const char *uri) | 95 | void FakeUnityApplicationQmlPlugin::initializeEngine(QQmlEngine *engine, const char *uri) |
190 | 87 | 96 | ||
191 | === modified file 'tests/qmltests/Stage/tst_DesktopStage.qml' | |||
192 | --- tests/qmltests/Stage/tst_DesktopStage.qml 2016-09-27 15:03:00 +0000 | |||
193 | +++ tests/qmltests/Stage/tst_DesktopStage.qml 2016-10-28 12:29:16 +0000 | |||
194 | @@ -788,5 +788,21 @@ | |||
195 | 788 | 788 | ||
196 | 789 | tryCompare(dialerAppDelegate, "state", "maximized"); | 789 | tryCompare(dialerAppDelegate, "state", "maximized"); |
197 | 790 | } | 790 | } |
198 | 791 | |||
199 | 792 | function test_grabbingCursorOnDecorationPress() { | ||
200 | 793 | var appDelegate = startApplication("dialer-app"); | ||
201 | 794 | verify(appDelegate); | ||
202 | 795 | var decoration = findChild(appDelegate, "appWindowDecoration"); | ||
203 | 796 | verify(decoration); | ||
204 | 797 | |||
205 | 798 | mousePress(decoration, decoration.width/2, decoration.height/2, Qt.LeftButton); | ||
206 | 799 | tryCompare(Mir, "cursorName", "grabbing"); | ||
207 | 800 | |||
208 | 801 | mouseMove(decoration, decoration.width/2 + 1, decoration.height/2 + 1); | ||
209 | 802 | tryCompare(Mir, "cursorName", "grabbing"); | ||
210 | 803 | |||
211 | 804 | mouseRelease(decoration); | ||
212 | 805 | tryCompare(Mir, "cursorName", ""); | ||
213 | 806 | } | ||
214 | 791 | } | 807 | } |
215 | 792 | } | 808 | } |
FAILED: Continuous integration, rev:2602 /unity8- jenkins. ubuntu. com/job/ lp-unity8- ci/2053/ /unity8- jenkins. ubuntu. com/job/ build/2697 /unity8- jenkins. ubuntu. com/job/ test-0- autopkgtest/ label=amd64, release= vivid+overlay, testname= qmluitests. sh/1484 /unity8- jenkins. ubuntu. com/job/ test-0- autopkgtest/ label=amd64, release= xenial+ overlay, testname= qmluitests. sh/1484 /unity8- jenkins. ubuntu. com/job/ test-0- autopkgtest/ label=amd64, release= yakkety, testname= qmluitests. sh/1484 /unity8- jenkins. ubuntu. com/job/ build-0- fetch/2725 /unity8- jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= vivid+overlay/ 2598 /unity8- jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= xenial+ overlay/ 2598 /unity8- jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= yakkety/ 2598 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=amd64, release= vivid+overlay/ 2591 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=amd64, release= vivid+overlay/ 2591/artifact/ output/ *zip*/output. zip /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=amd64, release= xenial+ overlay/ 2591 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=amd64, release= xenial+ overlay/ 2591/artifact/ output/ *zip*/output. zip /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=amd64, release= yakkety/ 2591 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=amd64, release= yakkety/ 2591/artifact/ output/ *zip*/output. zip /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=armhf, release= vivid+overlay/ 2591 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=armhf, release= vivid+overlay/ 2591/artifact/ output/ *zip*/output. zip /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=armhf, release= xenial+ overlay/ 2591 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=armhf, release= xenial+ overlay/ 2591/artifact/ output/ *zip*/output. zip /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=armhf, release= yakkety/ 2591 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=armhf, release= yakkety/ 2591/artifact/ output/ *zip*/output. zip /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=i386, release= vivid+overlay/ 2591 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=i386, release= vivid+overlay/ 2591/artifact/ output/ *zip*/output. zip /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=i386, release= xenial+ overlay/ 2591 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=i386, release= xenial+ overlay/ 2591/artifact/ output/ *zip*/output. zip /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=i386, release= yakkety/ 2591 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=i386, release= yakkety/ 2591/artifact/ output/ *zip*/output. zip
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
UNSTABLE: https:/
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:/
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/2053/ rebuild
https:/