Fuci
A base gem providing the general case for running CI failures locally.
Installation
Add this line to your fuci extension's Gemspec:
Gem::Specification.new do |spec|
...
spec.add_dependency 'fuci', '~> 0.4'
...
end
Known server extensions
Native command-line options
Run the failed tests from your last fuci
command.
$ fuci --last
or
$ fuci -l
Usage
Creating server extensions
Configuring Fuci base with the server
Somewhere in the required code of the server extension, the server must be set like so:
Fuci.configure do |fu|
fu.server = Fuci::MyCiAgent::ServerClass
end
or
module Fuci
configure do |fu|
fu.server = Fuci::MyCiAgent::ServerClass
end
module MyCiAgent
...
...
end
end
The ServerClass in this example must be an initializable constant whose instance implements the server interface.
The server interface
The Fuci::Server
interface class that tells what the runner
expects of server extensions. As of this version, it expects two
methods: #build_status
and #fetch_log
. See that file for more
details on what they should return.
The binstub
Server extensions should ship with their own binstub. fuci
is
preffered. It's short and easy to type. To avoid possible conflicts
between local server extensions, prefer that users execute bundle binstubs <server-extension>
.
Fuci binstubs should do the following:
- Require the extension
- Load a configuration file, if necessary
- Call
Fuci.run
Creating tester extensions
Coming soon...
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request