tag:help.appveyor.com,2012-11-13:/discussions/problems/462-allow-failures-behavior-is-problematicAppVeyor: Discussion 2018-08-25T01:46:35Ztag:help.appveyor.com,2012-11-13:Comment/334850852014-06-20T16:33:38Z2014-06-20T16:33:38ZAllow failures behavior is problematic<div><p>I'm having a lot of trouble getting the allow_failures behavior
they way I'd like. As someone coming from travis I'm obviously
biased by that experience so let me describe.</p>
<p>I use appveyor to build binary packages with <a href=
"https://github.com/mapbox/node-pre-gyp">node-pre-gyp</a>. It is
common for a build for one node.js version to fail while others
might succeed. So I don't want a single build, say against node
v0.11.x, to stop all the other jobs.</p>
<p>One request is that if one build fails and stops other jobs
(independent of the allow_failures setting) it would be great,
through the appveyor UI, to be able to click on a job and (re)start
it. Currently it appears you can only do this (hitting the "new
build" button) for jobs that once ran and not for jobs that never
ran because other ones failed. If I try to click "new build" for a
job that was blocked by another job failing I get the error of
<code>Project not found or access denied.</code>.</p>
<p>The above is a common desire because I'm having a lot of trouble
figuring out the right syntax for <code>allow_failures</code> so
that all jobs run no matter whether others fail. On recent example
is node-srs. With this appveyor config (<a href=
"https://github.com/mapbox/node-srs/blob/f39498c309499ca904de088934c4029dd089934f/appveyor.yml">https://github.com/mapbox/node-srs/blob/f39498c309499ca904de088934c...</a>)
I saw the build do this: <a href=
"https://ci.appveyor.com/project/springmeyer/node-srs/build/1.0.91">
https://ci.appveyor.com/project/springmeyer/node-srs/build/1.0.91</a>.
That is not what I expected because 1) the overall color of the
build is green (seemingly indicating that either all jobs succeeded
or all were allowed to fail), and 2) only one job ran (despite the
allow_failures setting) and I want all jobs to run.</p>
<p>I'm currently testing this modification: <a href=
"https://github.com/mapbox/node-srs/commit/ac3b5a48a8b6dffc1cb78a8f2794ef35d0d291f7">
https://github.com/mapbox/node-srs/commit/ac3b5a48a8b6dffc1cb78a8f2...</a></p>
<p>So, to recap: I think the allow_failures syntax either is not
working or is too hard to use. It should be much easier to achieve
the travis behavior of all jobs running. I would really prefer that
all jobs running be the default, but until then I'd love to hear
ideas of what I'm doing wrong or what I'm missing.</p>
<p>Thanks1</p></div>danetag:help.appveyor.com,2012-11-13:Comment/334850852014-06-20T16:44:41Z2014-06-20T16:44:41ZAllow failures behavior is problematic<div><p>Latest build with:</p>
<pre>
matrix:
allow_failures:
- platform: x86
nodejs_version: 0.10
- platform: x86
nodejs_version: 0.11
- platform: x64
nodejs_version: 0.10
- platform: x64
nodejs_version: 0.11
</pre>
<p>Does not quite work yet. It appears that a failing in one node
v0.11.x version did not prevent node v0.10.x from building (yay)
but did prevent the other node v0.11.x build from running. This is
a problem because all node v0.11.x build are know to fail, but not
till the very end due to <a href=
"https://github.com/aws/aws-sdk-js/issues/303">this aws-sdk bug</a>
and before that failure I'm posting build artifacts that are
important to work around the aws-sdk bug.</p>
<p>Here is the build: <a href=
"https://ci.appveyor.com/project/springmeyer/node-srs/build/1.0.92">
https://ci.appveyor.com/project/springmeyer/node-srs/build/1.0.92</a></p></div>danetag:help.appveyor.com,2012-11-13:Comment/334850852014-06-23T17:56:01Z2014-06-23T17:56:12ZAllow failures behavior is problematic<div><p>So, if I correctly understand the main issue right now is
default "fail fast" strategy in build matrix where first failed job
immediately fails the entire build with running/queued jobs. You
need "run all" behavior where all jobs run no matter what and the
build is considered failed if at least on job has failed.
Correct?</p></div>Feodor Fitsnertag:help.appveyor.com,2012-11-13:Comment/334850852014-06-24T03:24:17Z2014-06-24T03:24:17ZAllow failures behavior is problematic<div><p>Yes, that's exactly what I'm looking for.</p></div>danetag:help.appveyor.com,2012-11-13:Comment/334850852014-06-24T03:34:21Z2014-06-24T03:34:21ZAllow failures behavior is problematic<div><p>I see. Looks like it's better moving in this direction. I will
add a new item - don't think it's hard to implement.</p></div>Feodor Fitsnertag:help.appveyor.com,2012-11-13:Comment/334850852014-07-15T19:18:43Z2014-07-15T19:18:43ZAllow failures behavior is problematic<div><p>Hello Feodor,</p>
<p>Have you had a chance to fix this? It is still feeling quite
problematic. Most recently I've seen this type of error (<a href=
"http://help.appveyor.com/discussions/problems/539-cloning-gyp-fails">http://help.appveyor.com/discussions/problems/539-cloning-gyp-fails</a>)
randomly and that cancels all the other builds all of a sudden.
Ideally I would only need to restart the one build that fails
randomly due to a network problem.</p>
<p>Thanks, Dane</p></div>danetag:help.appveyor.com,2012-11-13:Comment/334850852014-07-15T20:39:20Z2014-07-15T20:39:20ZAllow failures behavior is problematic<div><p>Will try delivering that this week, sorry for the delay.</p></div>Feodor Fitsnertag:help.appveyor.com,2012-11-13:Comment/334850852014-07-15T20:55:36Z2014-07-15T20:55:36ZAllow failures behavior is problematic<div><p>Okay, thank you for the update!</p>
<p>Dane</p></div>danetag:help.appveyor.com,2012-11-13:Comment/334850852014-07-17T09:02:06Z2014-07-17T09:02:06ZAllow failures behavior is problematic<div><p>Hi Dane,</p>
<p>A new update with <code>fast_finish</code> feature (sorry for
borrowing the name from Travis) has been just deployed. Now, unlike
it was done before, all build jobs run to the end no matter what.
To make a build fail immediately once one of the jobs fails add to
<code>appveyor.yml</code>:</p>
<pre>
<code>matrix:
fast_finish: true</code>
</pre>
<p>Sample output:</p>
<ul>
<li>Default mode (all jobs run, build is red): <a href=
"https://ci.appveyor.com/project/appvyr/grunt/build/1">https://ci.appveyor.com/project/appvyr/grunt/build/1</a></li>
<li>Fast finish (last job fails build, build is red): <a href=
"https://ci.appveyor.com/project/appvyr/grunt/build/2">https://ci.appveyor.com/project/appvyr/grunt/build/2</a></li>
<li>Allow failures for the last job (build is green): <a href=
"https://ci.appveyor.com/project/appvyr/grunt/build/3">https://ci.appveyor.com/project/appvyr/grunt/build/3</a></li>
</ul></div>Feodor Fitsner