travis-after-all
travis-after-all
is a script that can help you execute code only once
in a build matrix
based on whether the build has succeeded or failed.
Or to put it in another way, travis-after-all
is basically a temporary
workaround for: travis-ci/travis-ci#929
.
Usage
[1] Include the command that executes the travis-after-all
script
inside after_script
(or inside of a script that is included inside after_script
).
[2] Based on the (exit) code returned by travis-after-all
, run
your custom code.
See examples.
--
Terminology:
-
A job passed if either the tests passed, or the tests failed,
but the job was allowed to fail.
-
A build succeeded if all jobs passed and there is at least one
job who's tests passed.
-
A build failed if there is at least one job that didn't pass,
or if all jobs passed, but for all of them the tests failed.
--
Meaning of (exit) codes:
-
0
- is returned to the job that was assigned to run the code if
the build succeeded
-
1
- is returned to the job that was assigned to run the code if
the build failed
-
2
- is returned to the jobs that where not assigned to do anything
-
3
- is returned if something went wrong (e.g.: travis-after-all
failed to connect to Travis CI's API)
Usage examples
Using npm
Install travis-after-all
as a devDependency
.
npm install --save-dev travis-after-all
Then, in your .travis.yml
file, add:
after_script:
- |
declare exitCode;
$(npm bin)/travis-after-all
exitCode=$?
if [ $exitCode -eq 0 ]; then
fi
if [ $exitCode -eq 1 ]; then
fi
You can also run travis-after-all
from within your node
script,
e.g.:
var travisAfterAll = require('travis-after-all');
function callback(code, error) {
if ( error !== undefined ) {
} else {
if ( code === 0 ) {
} else if ( code === 1) {
}
}
}
travisAfterAll(callback);
General usage
:warning: If your using this method, please try to keep up with the
releases and update the version number once a new version is released.
In your .travis.yml
file add:
after_script:
- |
declare exitCode
curl -sSL https://raw.githubusercontent.com/alrra/travis-after-all/1.4.1/lib/travis-after-all.js | node
exitCode=$?
if [ $exitCode -eq 0 ]; then
fi
if [ $exitCode -eq 1 ]; then
fi
Note: travis-after-all
is written in JavaScript, however, since
Travis includes the Node runtime by default,
it can be use no matter what build environment
you have.
License
The code is available under the MIT license.