a8bfe20d0d
These new checks can be used to check if migrations require downtime or not (as tagged by their authors). In CI this compares the current branch with master so migrations added by merge requests are automatically verified. To check the migrations added since a Git reference simply run: bundle exec rake gitlab:db:downtime_check[GIT_REF]
26 lines
837 B
Ruby
26 lines
837 B
Ruby
desc 'Checks if migrations in a branch require downtime'
|
|
task downtime_check: :environment do
|
|
# First we'll want to make sure we're comparing with the right upstream
|
|
# repository/branch.
|
|
current_branch = `git rev-parse --abbrev-ref HEAD`.strip
|
|
|
|
# Either the developer ran this task directly on the master branch, or they're
|
|
# making changes directly on the master branch.
|
|
if current_branch == 'master'
|
|
if defined?(Gitlab::License)
|
|
repo = 'gitlab-ee'
|
|
else
|
|
repo = 'gitlab-ce'
|
|
end
|
|
|
|
`git fetch https://gitlab.com/gitlab-org/#{repo}.git --depth 1`
|
|
|
|
compare_with = 'FETCH_HEAD'
|
|
# The developer is working on a different branch, in this case we can just
|
|
# compare with the master branch.
|
|
else
|
|
compare_with = 'master'
|
|
end
|
|
|
|
Rake::Task['gitlab:db:downtime_check'].invoke(compare_with)
|
|
end
|