* pipeline-hooks-without-slack: (156 commits)
Fix test failures
Make pipeline to be in created state for hooks tests
Make `execute_methods` public
Added specs for started_at and finished_at
Use explicit events to transition between states
Fix tests. We cannot reload unless it's already saved:
Have trait all_events_enabled so that's easier to reuse, feedback:
Simplify the name for data builder, feedback:
Prefer extend self over module_function, feedback:
Make it more grammatically correct, feedback:
if -> when; when -> `when`; %w() -> %w[]; and fix some typos:
Prefer described_class, feedback:
Make the comment more clear, feedback:
Update CHANGELOG
render only commit title
Fix test failures, that did occur because of missing previously used `reload_status!` call
Use state machine for pipeline event processing
Upgrade Rails to 4.2.7.1 for security fixes.
Update gitlab-shell to v3.3.3
Verify the pipeline status after executing events on builds
...
This change simplifies a Pipeline processing by introducing a special new status: created.
This status is used for all builds that are created for a pipeline.
We are then processing next stages and queueing some of the builds (created -> pending) or skipping them (created -> skipped).
This makes it possible to simplify and solve a few ordering problems with how previously builds were scheduled.
This also allows us to visualise a full pipeline (with created builds).
This also removes an after_touch used for updating a pipeline state parameters.
Right now in various places we explicitly call a reload_status! on pipeline to force it to be updated and saved.