Return a fake application settings OpenStruct when this is not the case.
Also, use ActiveRecord::Base.connection_pool.active_connection? instead
of ActiveRecord::Base.connection.active? to avoid driver exception.
Fix CI runner version not being properly updated when asked for a build
Due to broken implementation of attribute_for_keys the runner information was not updated correctly.
This MR adds test to check that such scenario will never happen again.
See merge request !2618
Due to broken implementation of attribute_for_keys the runner information was not updated correctly.
This MR adds test to check that such scenario will never happen again.
When using ActiveRecord::Base.connection.active? without a DB
connection, we get a "PG::ConnectionBad: could not connect to server"
error because ActiveRecord::Base.connection doesn't exist. By using
ActiveRecord::Base.connected? we ensure we don't get this error if
the connection is missing, which is the all point of the
Gitlab::CurrentSettings#connect_to_db? method!
This ensures that an instrumented method that doesn't take arguments
reports an arity of 0, instead of -1.
If Ruby had a proper method for finding out the required arguments of a
method (e.g. Method#required_arguments) this would not have been an
issue. Sadly the only two methods we have are Method#parameters and
Method#arity, and both are equally painful to use.
Fixesgitlab-org/gitlab-ce#12450
Added cache:key to .gitlab-ci.yml allowing to fine tune the caching
The `cache:key` allows you to define the affinity mask of caching, allowing to have single cache for all jobs, or cache per-job, or per-branch, or any other way you would need:
1. Cache per-build for all branches:
```
cache:
key: "$CI_BUILD_NAME"
untracked: true
```
2. Cache per-branch for all jobs:
```
cache:
key: "$CI_BUILD_REF"
untracked: true
```
/cc @DouweM @grzesiek @axil
See merge request !2436
Added X-GitLab-... headers to emails from CI and Email On Push services
Fixes#2098
This adds the 'X-GitLab-Project', 'X-GitLab-Project-Id' and
'X-GitLab-Project-Path' headers to emails from CI and Email On Push in a way
that it is done currently for merge requests and issues emails.
Additionally, CI emails will have 'X-GitLab-Build-Status' header with either
'fail' or 'success'.
Emails from Email On Push will include 'X-Gitlab-Author' header containing the
username of user who did the push.
See merge request !2159