Commit 2ad0f22d authored by GitLab Bot's avatar GitLab Bot

Merge remote-tracking branch 'upstream/master' into ce-to-ee-2018-05-09

# Conflicts:
#	locale/gitlab.pot

[ci skip]
parents 729321ed e9609318
...@@ -14,12 +14,12 @@ export default class Model { ...@@ -14,12 +14,12 @@ export default class Model {
(this.originalModel = this.monaco.editor.createModel( (this.originalModel = this.monaco.editor.createModel(
head ? head.content : this.file.raw, head ? head.content : this.file.raw,
undefined, undefined,
new this.monaco.Uri(null, null, `original/${this.file.key}`), new this.monaco.Uri(null, null, `original/${this.path}`),
)), )),
(this.model = this.monaco.editor.createModel( (this.model = this.monaco.editor.createModel(
this.content, this.content,
undefined, undefined,
new this.monaco.Uri(null, null, this.file.key), new this.monaco.Uri(null, null, this.path),
)), )),
); );
if (this.file.mrChange) { if (this.file.mrChange) {
...@@ -27,7 +27,7 @@ export default class Model { ...@@ -27,7 +27,7 @@ export default class Model {
(this.baseModel = this.monaco.editor.createModel( (this.baseModel = this.monaco.editor.createModel(
this.file.baseRaw, this.file.baseRaw,
undefined, undefined,
new this.monaco.Uri(null, null, `target/${this.file.path}`), new this.monaco.Uri(null, null, `target/${this.path}`),
)), )),
); );
} }
......
...@@ -196,6 +196,8 @@ export const unstageChange = ({ commit }, path) => { ...@@ -196,6 +196,8 @@ export const unstageChange = ({ commit }, path) => {
}; };
export const openPendingTab = ({ commit, getters, dispatch, state }, { file, keyPrefix }) => { export const openPendingTab = ({ commit, getters, dispatch, state }, { file, keyPrefix }) => {
if (getters.activeFile && getters.activeFile.key === `${keyPrefix}-${file.key}`) return false;
state.openFiles.forEach(f => eventHub.$emit(`editor.update.model.dispose.${f.key}`)); state.openFiles.forEach(f => eventHub.$emit(`editor.update.model.dispose.${f.key}`));
commit(types.ADD_PENDING_TAB, { file, keyPrefix }); commit(types.ADD_PENDING_TAB, { file, keyPrefix });
......
...@@ -36,7 +36,9 @@ ul.notes-form, ...@@ -36,7 +36,9 @@ ul.notes-form,
.gutter-toggle, .gutter-toggle,
.issuable-details .content-block-small, .issuable-details .content-block-small,
.edit-link, .edit-link,
.note-action-button { .note-action-button,
.right-sidebar,
.flash-container {
display: none !important; display: none !important;
} }
...@@ -53,3 +55,7 @@ pre { ...@@ -53,3 +55,7 @@ pre {
.right-sidebar { .right-sidebar {
top: 0; top: 0;
} }
a[href]::after {
content: none !important;
}
...@@ -59,6 +59,7 @@ module Ci ...@@ -59,6 +59,7 @@ module Ci
validate :tag_constraints validate :tag_constraints
validate :either_projects_or_group validate :either_projects_or_group
validates :access_level, presence: true validates :access_level, presence: true
validates :runner_type, presence: true
acts_as_taggable acts_as_taggable
......
...@@ -43,12 +43,20 @@ module Clusters ...@@ -43,12 +43,20 @@ module Clusters
def create_and_assign_runner def create_and_assign_runner
transaction do transaction do
project.runners.create!(name: 'kubernetes-cluster', tag_list: %w(kubernetes cluster)).tap do |runner| project.runners.create!(runner_create_params).tap do |runner|
update!(runner_id: runner.id) update!(runner_id: runner.id)
end end
end end
end end
def runner_create_params
{
name: 'kubernetes-cluster',
runner_type: :project_type,
tag_list: %w(kubernetes cluster)
}
end
def gitlab_url def gitlab_url
Gitlab::Routing.url_helpers.root_url(only_path: false) Gitlab::Routing.url_helpers.root_url(only_path: false)
end end
......
- link = link_to 'Runners API', help_page_path('api/runners.md') - link = link_to _('Runners API'), help_page_path('api/runners.md')
%h3 %h3
= _('Group Runners') = _('Group Runners')
......
- page_title "Edit", "#{@runner.description} ##{@runner.id}", "Runners" - page_title _('Edit'), "#{@runner.description} ##{@runner.id}", 'Runners'
%h4 Runner ##{@runner.id} %h4 Runner ##{@runner.id}
......
- link = link_to 'Runners API', help_page_path('api/runners.md') - link = link_to _('Runners API'), help_page_path('api/runners.md')
%h3 %h3
= _('Group Runners') = _('Group Runners')
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
= _('This group does not provide any group Runners yet.') = _('This group does not provide any group Runners yet.')
- if can?(current_user, :admin_pipeline, @project.group) - if can?(current_user, :admin_pipeline, @project.group)
- group_link = link_to 'Group CI/CD settings', group_settings_ci_cd_path(@project.group) - group_link = link_to _('Group CI/CD settings'), group_settings_ci_cd_path(@project.group)
= _('Group masters can register group runners in the %{link}').html_safe % { link: group_link } = _('Group masters can register group runners in the %{link}').html_safe % { link: group_link }
- else - else
= _('Ask your group master to setup a group Runner.') = _('Ask your group master to setup a group Runner.')
......
%h3 Shared Runners %h3
= _('Shared Runners')
.bs-callout.shared-runners-description .bs-callout.shared-runners-description
- if Gitlab::CurrentSettings.shared_runners_text.present? - if Gitlab::CurrentSettings.shared_runners_text.present?
...@@ -17,8 +18,7 @@ ...@@ -17,8 +18,7 @@
  for this project   for this project
- if @shared_runners_count.zero? - if @shared_runners_count.zero?
This GitLab instance does not provide any shared Runners yet. Instance = _('This GitLab instance does not provide any shared Runners yet. Instance administrators can register shared Runners in the admin area.')
administrators can register shared Runners in the admin area.
- else - else
%h4.underlined-title Available shared Runners : #{@shared_runners_count} %h4.underlined-title Available shared Runners : #{@shared_runners_count}
%ul.bordered-list.available-shared-runners %ul.bordered-list.available-shared-runners
......
%h3 Specific Runners %h3
= _('Specific Runners')
= render partial: 'ci/runner/how_to_setup_specific_runner', = render partial: 'ci/runner/how_to_setup_specific_runner',
locals: { registration_token: @project.runners_token } locals: { registration_token: @project.runners_token }
......
- page_title "Edit", "#{@runner.description} ##{@runner.id}", "Runners" - page_title _('Edit'), "#{@runner.description} ##{@runner.id}", 'Runners'
%h4 Runner ##{@runner.id} %h4 Runner ##{@runner.id}
......
...@@ -20,11 +20,11 @@ ...@@ -20,11 +20,11 @@
%span.light Indicates whether this runner can pick jobs without tags %span.light Indicates whether this runner can pick jobs without tags
- unless runner.group_type? - unless runner.group_type?
.form-group .form-group
= label :locked, 'Lock to current projects', class: 'control-label' = label :locked, _('Lock to current projects'), class: 'control-label'
.col-sm-10 .col-sm-10
.checkbox .checkbox
= f.check_box :locked = f.check_box :locked
%span.light When a runner is locked, it cannot be assigned to other projects %span.light= _('When a runner is locked, it cannot be assigned to other projects')
.form-group .form-group
= label_tag :token, class: 'control-label' do = label_tag :token, class: 'control-label' do
Token Token
......
...@@ -21,17 +21,17 @@ ...@@ -21,17 +21,17 @@
%th Value %th Value
%tr %tr
%td Active %td Active
%td= @runner.active? ? 'Yes' : 'No' %td= @runner.active? ? _('Yes') : _('No')
%tr %tr
%td Protected %td Protected
%td= @runner.ref_protected? ? 'Yes' : 'No' %td= @runner.ref_protected? ? _('Yes') : _('No')
%tr %tr
%td Can run untagged jobs %td= _('Can run untagged jobs')
%td= @runner.run_untagged? ? 'Yes' : 'No' %td= @runner.run_untagged? ? _('Yes') : _('No')
- unless @runner.group_type? - unless @runner.group_type?
%tr %tr
%td Locked to this project %td= _('Locked to this project')
%td= @runner.locked? ? 'Yes' : 'No' %td= @runner.locked? ? _('Yes') : _('No')
%tr %tr
%td Tags %td Tags
%td %td
...@@ -60,7 +60,7 @@ ...@@ -60,7 +60,7 @@
%td Description %td Description
%td= @runner.description %td= @runner.description
%tr %tr
%td Maximum job timeout %td= _('Maximum job timeout')
%td= @runner.maximum_timeout_human_readable %td= @runner.maximum_timeout_human_readable
%tr %tr
%td Last contact %td Last contact
......
---
title: Fix print styles for markdown pages
merge_request:
author:
type: fixed
---
title: 'Replace the `project/ff_merge_requests.feature` spinach test with an rspec analog'
merge_request: 18800
author: '@blackst0ne'
type: other
class InitSchema < ActiveRecord::Migration class InitSchema < ActiveRecord::Migration
DOWNTIME = true
def up def up
create_table "broadcast_messages", force: :cascade do |t| create_table "broadcast_messages", force: :cascade do |t|
t.text "message", null: false t.text "message", null: false
......
class SetRunnerTypeNotNull < ActiveRecord::Migration
include Gitlab::Database::MigrationHelpers
DOWNTIME = false
def change
change_column_null(:ci_runners, :runner_type, false)
end
end
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
# #
# It's strongly recommended that you check this file into your version control system. # It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 20180508055821) do ActiveRecord::Schema.define(version: 20180508135515) do
# These are extensions that must be enabled in order to support this database # These are extensions that must be enabled in order to support this database
enable_extension "plpgsql" enable_extension "plpgsql"
...@@ -593,7 +593,7 @@ ActiveRecord::Schema.define(version: 20180508055821) do ...@@ -593,7 +593,7 @@ ActiveRecord::Schema.define(version: 20180508055821) do
t.integer "access_level", default: 0, null: false t.integer "access_level", default: 0, null: false
t.string "ip_address" t.string "ip_address"
t.integer "maximum_timeout" t.integer "maximum_timeout"
t.integer "runner_type", limit: 2 t.integer "runner_type", limit: 2, null: false
end end
add_index "ci_runners", ["contacted_at"], name: "index_ci_runners_on_contacted_at", using: :btree add_index "ci_runners", ["contacted_at"], name: "index_ci_runners_on_contacted_at", using: :btree
......
...@@ -23,7 +23,7 @@ container_scanning: ...@@ -23,7 +23,7 @@ container_scanning:
- docker:stable-dind - docker:stable-dind
script: script:
- docker run -d --name db arminc/clair-db:latest - docker run -d --name db arminc/clair-db:latest
- docker run -p 6060:6060 --link db:postgres -d --name clair arminc/clair-local-scan:v2.0.1 - docker run -p 6060:6060 --link db:postgres -d --name clair --restart on-failure arminc/clair-local-scan:v2.0.1
- apk add -U wget ca-certificates - apk add -U wget ca-certificates
- docker pull ${CI_APPLICATION_REPOSITORY}:${CI_APPLICATION_TAG} - docker pull ${CI_APPLICATION_REPOSITORY}:${CI_APPLICATION_TAG}
- wget https://github.com/arminc/clair-scanner/releases/download/v8/clair-scanner_linux_amd64 - wget https://github.com/arminc/clair-scanner/releases/download/v8/clair-scanner_linux_amd64
......
...@@ -11,7 +11,7 @@ Ideally, the GitLab Runner should not be installed on the same machine as GitLab ...@@ -11,7 +11,7 @@ Ideally, the GitLab Runner should not be installed on the same machine as GitLab
Read the [requirements documentation](../../install/requirements.md#gitlab-runner) Read the [requirements documentation](../../install/requirements.md#gitlab-runner)
for more information. for more information.
## Shared vs specific Runners ## Shared, specific and group Runners
After [installing the Runner][install], you can either register it as shared or After [installing the Runner][install], you can either register it as shared or
specific. You can only register a shared Runner if you have admin access to specific. You can only register a shared Runner if you have admin access to
...@@ -32,6 +32,9 @@ are: ...@@ -32,6 +32,9 @@ are:
Runners. For example, if you want to deploy a certain project, you can setup Runners. For example, if you want to deploy a certain project, you can setup
a specific Runner to have the right credentials for this. The [usage of tags](#using-tags) a specific Runner to have the right credentials for this. The [usage of tags](#using-tags)
may be useful in this case. Specific Runners process jobs using a [FIFO] queue. may be useful in this case. Specific Runners process jobs using a [FIFO] queue.
- **Group Runners** are useful when you have multiple projects under one group
and would like all projects to have access to a set of Runners. Group Runners
process jobs using a [FIFO] queue.
A Runner that is specific only runs for the specified project(s). A shared Runner A Runner that is specific only runs for the specified project(s). A shared Runner
can run jobs for every project that has enabled the option **Allow shared Runners** can run jobs for every project that has enabled the option **Allow shared Runners**
...@@ -66,7 +69,7 @@ Runners to disabled. ...@@ -66,7 +69,7 @@ Runners to disabled.
## Registering a specific Runner ## Registering a specific Runner
Registering a specific can be done in two ways: Registering a specific Runner can be done in two ways:
1. Creating a Runner with the project registration token 1. Creating a Runner with the project registration token
1. Converting a shared Runner into a specific Runner (one-way, admin only) 1. Converting a shared Runner into a specific Runner (one-way, admin only)
...@@ -79,6 +82,14 @@ visit the project you want to make the Runner work for in GitLab: ...@@ -79,6 +82,14 @@ visit the project you want to make the Runner work for in GitLab:
1. Go to **Settings > CI/CD** to obtain the token 1. Go to **Settings > CI/CD** to obtain the token
1. [Register the Runner][register] 1. [Register the Runner][register]
## Registering a group Runner
Creating a group Runner requires Master permissions for the group. To create a
group Runner visit the group you want to make the Runner work for in GitLab:
1. Go to **Settings > CI/CD** to obtain the token
1. [Register the Runner][register]
### Making an existing shared Runner specific ### Making an existing shared Runner specific
If you are an admin on your GitLab instance, you can turn any shared Runner into If you are an admin on your GitLab instance, you can turn any shared Runner into
...@@ -121,7 +132,7 @@ To enable/disable a Runner in your project: ...@@ -121,7 +132,7 @@ To enable/disable a Runner in your project:
> **Note**: > **Note**:
Consider that if you don't lock your specific Runner to a specific project, any Consider that if you don't lock your specific Runner to a specific project, any
user with Master role in you project can assign your runner to another arbitrary user with Master role in you project can assign your Runner to another arbitrary
project without requiring your authorization, so use it with caution. project without requiring your authorization, so use it with caution.
An admin can enable/disable a specific Runner for projects: An admin can enable/disable a specific Runner for projects:
......
...@@ -205,6 +205,19 @@ Things to note: ...@@ -205,6 +205,19 @@ Things to note:
built-in help page, that's why we omit it in `git grep`. built-in help page, that's why we omit it in `git grep`.
- Use the checklist on the documentation MR description template. - Use the checklist on the documentation MR description template.
#### Alternative redirection method
Alternatively to the method described above, you can simply replace the content
of the old file with a frontmatter containing a redirect link:
```yaml
---
redirect_to: '../path/to/file/README.md'
---
```
It supports both full and relative URLs, e.g. `https://docs.gitlab.com/ee/path/to/file.html`, `../path/to/file.html`, `path/to/file.md`. Note that any `*.md` paths will be compiled to `*.html`.
### Redirections for pages with Disqus comments ### Redirections for pages with Disqus comments
If the documentation page being relocated already has any Disqus comments, If the documentation page being relocated already has any Disqus comments,
......
Feature: Project Ff Merge Requests
Background:
Given I sign in as a user
And I own project "Shop"
And project "Shop" have "Bug NS-05" open merge request with diffs inside
And merge request "Bug NS-05" is mergeable
@javascript
Scenario: I do ff-only merge for rebased branch
Given ff merge enabled
And merge request "Bug NS-05" is rebased
When I visit merge request page "Bug NS-05"
Then I should see ff-only merge button
When I accept this merge request
Then I should see merged request
@javascript
Scenario: I do ff-only merge for merged branch
Given ff merge enabled
And merge request "Bug NS-05" merged target
When I visit merge request page "Bug NS-05"
Then I should see ff-only merge button
When I accept this merge request
Then I should see merged request
@javascript
Scenario: I do rebase before ff-only merge
Given ff merge enabled
And rebase before merge enabled
When I visit merge request page "Bug NS-05"
Then I should see rebase button
When I press rebase button
Then I should see rebase in progress message
@javascript
Scenario: I do rebase before regular merge
Given rebase before merge enabled
When I visit merge request page "Bug NS-05"
Then I should see rebase button
When I press rebase button
Then I should see rebase in progress message
class Spinach::Features::ProjectFfMergeRequests < Spinach::FeatureSteps
include SharedAuthentication
include SharedIssuable
include SharedProject
include SharedNote
include SharedPaths
include SharedMarkdown
include SharedDiffNote
include SharedUser
include WaitForRequests
step 'project "Shop" have "Bug NS-05" open merge request with diffs inside' do
create(:merge_request_with_diffs,
title: "Bug NS-05",
source_project: project,
target_project: project,
author: project.users.first)
end
step 'merge request is mergeable' do
expect(page).to have_button 'Merge'
end
step 'I should see ff-only merge button' do
expect(page).to have_content "Fast-forward merge without a merge commit"
expect(page).to have_button 'Merge'
end
step 'merge request "Bug NS-05" is mergeable' do
merge_request.mark_as_mergeable
end
step 'I accept this merge request' do
page.within '.mr-state-widget' do
click_button "Merge"
end
end
step 'I should see merged request' do
page.within '.status-box' do
expect(page).to have_content "Merged"
wait_for_requests
end
end
step 'ff merge enabled' do
project = merge_request.target_project
project.merge_requests_ff_only_enabled = true
project.save!
end
step 'I should see rebase button' do
expect(page).to have_button "Rebase"
end
step 'merge request "Bug NS-05" is rebased' do
merge_request.source_branch = 'flatten-dir'
merge_request.target_branch = 'improve/awesome'
merge_request.reload_diff
merge_request.save!
end
step 'merge request "Bug NS-05" merged target' do
merge_request.source_branch = 'merged-target'
merge_request.target_branch = 'improve/awesome'
merge_request.reload_diff
merge_request.save!
end
step 'rebase before merge enabled' do
project = merge_request.target_project
project.merge_requests_rebase_enabled = true
project.save!
end
step 'I press rebase button' do
click_button "Rebase"
end
step "I should see rebase in progress message" do
expect(page).to have_content("Rebase in progress")
end
def merge_request
@merge_request ||= MergeRequest.find_by!(title: "Bug NS-05")
end
end
...@@ -344,11 +344,6 @@ module SharedPaths ...@@ -344,11 +344,6 @@ module SharedPaths
wait_for_requests wait_for_requests
end end
step 'I visit merge request page "Bug NS-05"' do
visit merge_request_path("Bug NS-05")
wait_for_requests
end
step 'I visit merge request page "Bug NS-07"' do step 'I visit merge request page "Bug NS-07"' do
visit merge_request_path("Bug NS-07") visit merge_request_path("Bug NS-07")
wait_for_requests wait_for_requests
......
...@@ -8,8 +8,13 @@ msgid "" ...@@ -8,8 +8,13 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gitlab 1.0.0\n" "Project-Id-Version: gitlab 1.0.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
<<<<<<< HEAD
"POT-Creation-Date: 2018-05-04 17:37+0200\n" "POT-Creation-Date: 2018-05-04 17:37+0200\n"
"PO-Revision-Date: 2018-05-04 17:37+0200\n" "PO-Revision-Date: 2018-05-04 17:37+0200\n"
=======
"POT-Creation-Date: 2018-05-09 09:24+0200\n"
"PO-Revision-Date: 2018-05-09 09:24+0200\n"
>>>>>>> upstream/master
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n" "Language: \n"
...@@ -143,6 +148,12 @@ msgstr "" ...@@ -143,6 +148,12 @@ msgstr ""
msgid "+ %{moreCount} more" msgid "+ %{moreCount} more"
msgstr "" msgstr ""
msgid "- Runner is active and can process any new jobs"
msgstr ""
msgid "- Runner is paused and will not receive any new jobs"
msgstr ""
msgid "- show less" msgid "- show less"
msgstr "" msgstr ""
...@@ -195,6 +206,9 @@ msgstr "" ...@@ -195,6 +206,9 @@ msgstr ""
msgid "<strong>Removes</strong> source branch" msgid "<strong>Removes</strong> source branch"
msgstr "" msgstr ""
msgid "A 'Runner' is a process which runs a job. You can setup as many Runners as you need."
msgstr ""
msgid "A collection of graphs regarding Continuous Integration" msgid "A collection of graphs regarding Continuous Integration"
msgstr "" msgstr ""
...@@ -477,10 +491,14 @@ msgstr "" ...@@ -477,10 +491,14 @@ msgstr ""
msgid "Artifacts" msgid "Artifacts"
msgstr "" msgstr ""
<<<<<<< HEAD
msgid "Ascending" msgid "Ascending"
msgstr "" msgstr ""
msgid "Assertion consumer service URL" msgid "Assertion consumer service URL"
=======
msgid "Ask your group master to setup a group Runner."
>>>>>>> upstream/master
msgstr "" msgstr ""
msgid "Assign custom color like #FF0000" msgid "Assign custom color like #FF0000"
...@@ -570,6 +588,12 @@ msgstr "" ...@@ -570,6 +588,12 @@ msgstr ""
msgid "Available" msgid "Available"
msgstr "" msgstr ""
msgid "Available group Runners : %{runners}"
msgstr ""
msgid "Available group Runners : %{runners}."
msgstr ""
msgid "Avatar will be removed. Are you sure?" msgid "Avatar will be removed. Are you sure?"
msgstr "" msgstr ""
...@@ -884,7 +908,11 @@ msgstr "" ...@@ -884,7 +908,11 @@ msgstr ""
msgid "CI/CD configuration" msgid "CI/CD configuration"
msgstr "" msgstr ""
<<<<<<< HEAD
msgid "CI/CD for external repo" msgid "CI/CD for external repo"
=======
msgid "CI/CD settings"
>>>>>>> upstream/master
msgstr "" msgstr ""
msgid "CICD|An explicit %{ci_file} needs to be specified before you can begin using Continuous Integration and Delivery." msgid "CICD|An explicit %{ci_file} needs to be specified before you can begin using Continuous Integration and Delivery."
...@@ -920,6 +948,9 @@ msgstr "" ...@@ -920,6 +948,9 @@ msgstr ""
msgid "CICD|You need to specify a domain if you want to use Auto Review Apps and Auto Deploy stages." msgid "CICD|You need to specify a domain if you want to use Auto Review Apps and Auto Deploy stages."
msgstr "" msgstr ""
msgid "Can run untagged jobs"
msgstr ""
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr ""
...@@ -1919,6 +1950,15 @@ msgstr "" ...@@ -1919,6 +1950,15 @@ msgstr ""
msgid "Disable" msgid "Disable"
msgstr "" msgstr ""
<<<<<<< HEAD
=======
msgid "Disable for this project"
msgstr ""
msgid "Disable group Runners"
msgstr ""
>>>>>>> upstream/master
msgid "Discard changes" msgid "Discard changes"
msgstr "" msgstr ""
...@@ -1979,7 +2019,11 @@ msgstr "" ...@@ -1979,7 +2019,11 @@ msgstr ""
msgid "Due date" msgid "Due date"
msgstr "" msgstr ""
<<<<<<< HEAD
msgid "During this process, you’ll be asked for URLs from GitLab’s side. Use the URLs shown below." msgid "During this process, you’ll be asked for URLs from GitLab’s side. Use the URLs shown below."
=======
msgid "Each Runner can be in one of the following states:"
>>>>>>> upstream/master
msgstr "" msgstr ""
msgid "Edit" msgid "Edit"
...@@ -2027,7 +2071,14 @@ msgstr "" ...@@ -2027,7 +2071,14 @@ msgstr ""
msgid "Enable and configure Prometheus metrics." msgid "Enable and configure Prometheus metrics."
msgstr "" msgstr ""
<<<<<<< HEAD
msgid "Enable classification control using an external service" msgid "Enable classification control using an external service"
=======
msgid "Enable for this project"
msgstr ""
msgid "Enable group Runners"
>>>>>>> upstream/master
msgstr "" msgstr ""
msgid "Enable or disable version check and usage ping." msgid "Enable or disable version check and usage ping."
...@@ -2323,7 +2374,14 @@ msgstr "" ...@@ -2323,7 +2374,14 @@ msgstr ""
msgid "GeoNodes|Checksummed" msgid "GeoNodes|Checksummed"
msgstr "" msgstr ""
<<<<<<< HEAD
msgid "GeoNodes|Data replication lag:" msgid "GeoNodes|Data replication lag:"
=======
msgid "GitLab Group Runners can execute code for all the projects in this group."
msgstr ""
msgid "GitLab Runner section"
>>>>>>> upstream/master
msgstr "" msgstr ""
msgid "GeoNodes|Disabling a node stops the sync process. Are you sure?" msgid "GeoNodes|Disabling a node stops the sync process. Are you sure?"
...@@ -2347,10 +2405,26 @@ msgstr "" ...@@ -2347,10 +2405,26 @@ msgstr ""
msgid "GeoNodes|Health status:" msgid "GeoNodes|Health status:"
msgstr "" msgstr ""
<<<<<<< HEAD
msgid "GeoNodes|Last event ID seen from primary:" msgid "GeoNodes|Last event ID seen from primary:"
msgstr "" msgstr ""
msgid "GeoNodes|Latest event log status:" msgid "GeoNodes|Latest event log status:"
=======
msgid "Group CI/CD settings"
msgstr ""
msgid "Group ID"
msgstr ""
msgid "Group Runners"
msgstr ""
msgid "Group masters can register group runners in the %{link}"
msgstr ""
msgid "GroupSettings|Prevent sharing a project within %{group} with other groups"
>>>>>>> upstream/master
msgstr "" msgstr ""
msgid "GeoNodes|Loading nodes" msgid "GeoNodes|Loading nodes"
...@@ -2908,16 +2982,27 @@ msgstr "" ...@@ -2908,16 +2982,27 @@ msgstr ""
msgid "Lock %{issuableDisplayName}" msgid "Lock %{issuableDisplayName}"
msgstr "" msgstr ""
<<<<<<< HEAD
msgid "Lock not found" msgid "Lock not found"
=======
msgid "Lock to current projects"
>>>>>>> upstream/master
msgstr "" msgstr ""
msgid "Locked" msgid "Locked"
msgstr "" msgstr ""
<<<<<<< HEAD
msgid "Locked Files" msgid "Locked Files"
msgstr "" msgstr ""
msgid "Locks give the ability to lock specific file or folder." msgid "Locks give the ability to lock specific file or folder."
=======
msgid "Locked to current projects"
msgstr ""
msgid "Locked to this project"
>>>>>>> upstream/master
msgstr "" msgstr ""
msgid "Login" msgid "Login"
...@@ -2956,6 +3041,9 @@ msgstr "" ...@@ -2956,6 +3041,9 @@ msgstr ""
msgid "Maximum git storage failures" msgid "Maximum git storage failures"
msgstr "" msgstr ""
msgid "Maximum job timeout"
msgstr ""
msgid "May" msgid "May"
msgstr "" msgstr ""
...@@ -3183,7 +3271,11 @@ msgstr "" ...@@ -3183,7 +3271,11 @@ msgstr ""
msgid "New tag" msgid "New tag"
msgstr "" msgstr ""
<<<<<<< HEAD
msgid "No Label" msgid "No Label"
=======
msgid "No"
>>>>>>> upstream/master
msgstr "" msgstr ""
msgid "No assignee" msgid "No assignee"
...@@ -3402,6 +3494,9 @@ msgstr "" ...@@ -3402,6 +3494,9 @@ msgstr ""
msgid "Password" msgid "Password"
msgstr "" msgstr ""
msgid "Pause"
msgstr ""
msgid "Pending" msgid "Pending"
msgstr "" msgstr ""
...@@ -3942,7 +4037,11 @@ msgstr "" ...@@ -3942,7 +4037,11 @@ msgstr ""
msgid "Register / Sign In" msgid "Register / Sign In"
msgstr "" msgstr ""
<<<<<<< HEAD
msgid "Registry" msgid "Registry"
=======
msgid "Register and see your runners for this group."
>>>>>>> upstream/master
msgstr "" msgstr ""
msgid "Related Commits" msgid "Related Commits"
...@@ -3972,6 +4071,12 @@ msgstr "" ...@@ -3972,6 +4071,12 @@ msgstr ""
msgid "Remove" msgid "Remove"
msgstr "" msgstr ""
<<<<<<< HEAD
=======
msgid "Remove Runner"
msgstr ""
>>>>>>> upstream/master
msgid "Remove avatar" msgid "Remove avatar"
msgstr "" msgstr ""
...@@ -4020,7 +4125,11 @@ msgstr "" ...@@ -4020,7 +4125,11 @@ msgstr ""
msgid "Resolve discussion" msgid "Resolve discussion"
msgstr "" msgstr ""
<<<<<<< HEAD
msgid "Response metrics (Custom)" msgid "Response metrics (Custom)"
=======
msgid "Resume"
>>>>>>> upstream/master
msgstr "" msgstr ""
msgid "Retry" msgid "Retry"
...@@ -4064,6 +4173,15 @@ msgstr "" ...@@ -4064,6 +4173,15 @@ msgstr ""
msgid "Runners" msgid "Runners"
msgstr "" msgstr ""
msgid "Runners API"
msgstr ""
msgid "Runners can be placed on separate users, servers, and even on your local machine."
msgstr ""
msgid "Runners settings"
msgstr ""
msgid "Running" msgid "Running"
msgstr "" msgstr ""
...@@ -4238,6 +4356,9 @@ msgstr "" ...@@ -4238,6 +4356,9 @@ msgstr ""
msgid "SharedRunnersMinutesSettings|Reset used pipeline minutes" msgid "SharedRunnersMinutesSettings|Reset used pipeline minutes"
msgstr "" msgstr ""
msgid "Shared Runners"
msgstr ""
msgid "Show command" msgid "Show command"
msgstr "" msgstr ""
...@@ -4429,6 +4550,9 @@ msgstr "" ...@@ -4429,6 +4550,9 @@ msgstr ""
msgid "Spam and Anti-bot Protection" msgid "Spam and Anti-bot Protection"
msgstr "" msgstr ""
msgid "Specific Runners"
msgstr ""
msgid "Specify the following URL during the Runner setup:" msgid "Specify the following URL during the Runner setup:"
msgstr "" msgstr ""
...@@ -4719,13 +4843,24 @@ msgstr "" ...@@ -4719,13 +4843,24 @@ msgstr ""
msgid "There was an error when unsubscribing from this label." msgid "There was an error when unsubscribing from this label."
msgstr "" msgstr ""
<<<<<<< HEAD
msgid "This board\\'s scope is reduced" msgid "This board\\'s scope is reduced"
=======
msgid "They can be managed using the %{link}."
msgstr ""
msgid "This GitLab instance does not provide any shared Runners yet. Instance administrators can register shared Runners in the admin area."
>>>>>>> upstream/master
msgstr "" msgstr ""
msgid "This directory" msgid "This directory"
msgstr "" msgstr ""
<<<<<<< HEAD
msgid "This group allows you to sign in with your %{group_name} Single Sign-On account. This will redirect you to an external sign in page." msgid "This group allows you to sign in with your %{group_name} Single Sign-On account. This will redirect you to an external sign in page."
=======
msgid "This group does not provide any group Runners yet."
>>>>>>> upstream/master
msgstr "" msgstr ""
msgid "This is a confidential issue." msgid "This is a confidential issue."
...@@ -4785,6 +4920,9 @@ msgstr "" ...@@ -4785,6 +4920,9 @@ msgstr ""
msgid "This project" msgid "This project"
msgstr "" msgstr ""
msgid "This project does not belong to a group and can therefore not make use of group Runners."
msgstr ""
msgid "This repository" msgid "This repository"
msgstr "" msgstr ""
...@@ -4993,10 +5131,14 @@ msgstr "" ...@@ -4993,10 +5131,14 @@ msgstr ""
msgid "To import an SVN repository, check out %{svn_link}." msgid "To import an SVN repository, check out %{svn_link}."
msgstr "" msgstr ""
<<<<<<< HEAD
msgid "To only use CI/CD features for an external repository, choose <strong>CI/CD for external repo</strong>." msgid "To only use CI/CD features for an external repository, choose <strong>CI/CD for external repo</strong>."
msgstr "" msgstr ""
msgid "To set up SAML authentication for your group through an identity provider like Azure, Okta, Onelogin, Ping Identity, or your custom SAML 2.0 provider:" msgid "To set up SAML authentication for your group through an identity provider like Azure, Okta, Onelogin, Ping Identity, or your custom SAML 2.0 provider:"
=======
msgid "To start serving your jobs you can add Runners to your group"
>>>>>>> upstream/master
msgstr "" msgstr ""
msgid "To validate your GitLab CI configurations, go to 'CI/CD → Pipelines' inside your project, and click on the 'CI Lint' button." msgid "To validate your GitLab CI configurations, go to 'CI/CD → Pipelines' inside your project, and click on the 'CI Lint' button."
...@@ -5218,6 +5360,7 @@ msgstr "" ...@@ -5218,6 +5360,7 @@ msgstr ""
msgid "Web terminal" msgid "Web terminal"
msgstr "" msgstr ""
<<<<<<< HEAD
msgid "Webhooks allow you to trigger a URL if, for example, new code is pushed or a new issue is created. You can configure webhooks to listen for specific events like pushes, issues or merge requests. Group webhooks will apply to all projects in a group, allowing you to standardize webhook functionality across your entire group." msgid "Webhooks allow you to trigger a URL if, for example, new code is pushed or a new issue is created. You can configure webhooks to listen for specific events like pushes, issues or merge requests. Group webhooks will apply to all projects in a group, allowing you to standardize webhook functionality across your entire group."
msgstr "" msgstr ""
...@@ -5225,6 +5368,9 @@ msgid "Weight" ...@@ -5225,6 +5368,9 @@ msgid "Weight"
msgstr "" msgstr ""
msgid "Weight %{weight}" msgid "Weight %{weight}"
=======
msgid "When a runner is locked, it cannot be assigned to other projects"
>>>>>>> upstream/master
msgstr "" msgstr ""
msgid "When enabled, users cannot use GitLab until the terms have been accepted." msgid "When enabled, users cannot use GitLab until the terms have been accepted."
...@@ -5350,6 +5496,9 @@ msgstr "" ...@@ -5350,6 +5496,9 @@ msgstr ""
msgid "Write a commit message..." msgid "Write a commit message..."
msgstr "" msgstr ""
msgid "Yes"
msgstr ""
msgid "You are going to remove %{group_name}. Removed groups CANNOT be restored! Are you ABSOLUTELY sure?" msgid "You are going to remove %{group_name}. Removed groups CANNOT be restored! Are you ABSOLUTELY sure?"
msgstr "" msgstr ""
...@@ -5655,7 +5804,11 @@ msgstr "" ...@@ -5655,7 +5804,11 @@ msgstr ""
msgid "estimateCommand|%{slash_command} will update the estimated time with the latest command." msgid "estimateCommand|%{slash_command} will update the estimated time with the latest command."
msgstr "" msgstr ""
<<<<<<< HEAD
msgid "here" msgid "here"
=======
msgid "for this project"
>>>>>>> upstream/master
msgstr "" msgstr ""
msgid "importing" msgid "importing"
......
...@@ -6,6 +6,7 @@ FactoryBot.define do ...@@ -6,6 +6,7 @@ FactoryBot.define do
is_shared false is_shared false
active true active true
access_level :not_protected access_level :not_protected
runner_type :project_type
trait :online do trait :online do
contacted_at Time.now contacted_at Time.now
...@@ -13,6 +14,7 @@ FactoryBot.define do ...@@ -13,6 +14,7 @@ FactoryBot.define do
trait :shared do trait :shared do
is_shared true is_shared true
runner_type :instance_type
end end
trait :specific do trait :specific do
......
...@@ -41,6 +41,11 @@ FactoryBot.define do ...@@ -41,6 +41,11 @@ FactoryBot.define do
state :merged state :merged
end end
trait :merged_target do
source_branch "merged-target"
target_branch "improve/awesome"
end
trait :closed do trait :closed do
state :closed state :closed
end end
......
require "spec_helper"
describe "User merges a merge request", :js do
let(:user) { project.owner }
before do
sign_in(user)
end
shared_examples "fast forward merge a merge request" do
it "merges a merge request" do
expect(page).to have_content("Fast-forward merge without a merge commit").and have_button("Merge")
page.within(".mr-state-widget") do
click_button("Merge")
end
page.within(".status-box") do
expect(page).to have_content("Merged")
end
end
end
context "ff-only merge" do
let(:project) { create(:project, :public, :repository, merge_requests_ff_only_enabled: true) }
before do
visit(merge_request_path(merge_request))
end
context "when branch is rebased" do
let!(:merge_request) { create(:merge_request, :rebased, source_project: project) }
it_behaves_like "fast forward merge a merge request"
end
context "when branch is merged" do
let!(:merge_request) { create(:merge_request, :merged_target, source_project: project) }
it_behaves_like "fast forward merge a merge request"
end
end
end
require "spec_helper"
describe "User rebases a merge request", :js do
let(:merge_request) { create(:merge_request, :simple, source_project: project) }
let(:user) { project.owner }
before do
sign_in(user)
end
shared_examples "rebases" do
it "rebases" do
visit(merge_request_path(merge_request))
expect(page).to have_button("Rebase")
click_button("Rebase")
expect(page).to have_content("Rebase in progress")
end
end
context "when merge is regular" do
let(:project) { create(:project, :public, :repository, merge_requests_rebase_enabled: true) }
it_behaves_like "rebases"
end
context "when merge is ff-only" do
let(:project) { create(:project, :public, :repository, merge_requests_ff_only_enabled: true) }
it_behaves_like "rebases"
end
end
...@@ -28,6 +28,10 @@ describe('Multi-file editor library model', () => { ...@@ -28,6 +28,10 @@ describe('Multi-file editor library model', () => {
expect(model.originalModel).not.toBeNull(); expect(model.originalModel).not.toBeNull();
expect(model.model).not.toBeNull(); expect(model.model).not.toBeNull();
expect(model.baseModel).not.toBeNull(); expect(model.baseModel).not.toBeNull();
expect(model.originalModel.uri.path).toBe('original/path--path');
expect(model.model.uri.path).toBe('path--path');
expect(model.baseModel.uri.path).toBe('target/path--path');
}); });
it('creates model with head file to compare against', () => { it('creates model with head file to compare against', () => {
......
...@@ -569,6 +569,22 @@ describe('IDE store file actions', () => { ...@@ -569,6 +569,22 @@ describe('IDE store file actions', () => {
.catch(done.fail); .catch(done.fail);
}); });
it('returns false when already opened', done => {
store.state.openFiles.push({
...f,
active: true,
key: `pending-${f.key}`,
});
store
.dispatch('openPendingTab', { file: f, keyPrefix: 'pending' })
.then(added => {
expect(added).toBe(false);
})
.then(done)
.catch(done.fail);
});
it('pushes router URL when added', done => { it('pushes router URL when added', done => {
store.state.currentBranchId = 'master'; store.state.currentBranchId = 'master';
......
...@@ -3,6 +3,7 @@ require 'spec_helper' ...@@ -3,6 +3,7 @@ require 'spec_helper'
describe Ci::Runner do describe Ci::Runner do
describe 'validation' do describe 'validation' do
it { is_expected.to validate_presence_of(:access_level) } it { is_expected.to validate_presence_of(:access_level) }
it { is_expected.to validate_presence_of(:runner_type) }
context 'when runner is not allowed to pick untagged jobs' do context 'when runner is not allowed to pick untagged jobs' do
context 'when runner does not have tags' do context 'when runner does not have tags' do
......
...@@ -70,9 +70,8 @@ describe Clusters::Applications::Runner do ...@@ -70,9 +70,8 @@ describe Clusters::Applications::Runner do
it 'assigns the new runner to runner' do it 'assigns the new runner to runner' do
subject subject
gitlab_runner.reload
expect(gitlab_runner.runner).not_to be_nil expect(gitlab_runner.reload.runner).to be_project_type
end end
end end
......
...@@ -4,7 +4,8 @@ ...@@ -4,7 +4,8 @@
# User-specific stuff # User-specific stuff
.idea/**/workspace.xml .idea/**/workspace.xml
.idea/**/tasks.xml .idea/**/tasks.xml
.idea/dictionaries .idea/**/dictionaries
.idea/**/shelf
# Sensitive or high-churn files # Sensitive or high-churn files
.idea/**/dataSources/ .idea/**/dataSources/
......
...@@ -12,3 +12,5 @@ Session.vim ...@@ -12,3 +12,5 @@ Session.vim
*~ *~
# Auto-generated tag files # Auto-generated tag files
tags tags
# Persistent undo
[._]*.un~
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
# Package Files # # Package Files #
*.jar *.jar
*.war *.war
*.nar
*.ear *.ear
*.zip *.zip
*.tar.gz *.tar.gz
......
...@@ -52,7 +52,7 @@ Carthage/Build ...@@ -52,7 +52,7 @@ Carthage/Build
fastlane/report.xml fastlane/report.xml
fastlane/Preview.html fastlane/Preview.html
fastlane/screenshots fastlane/screenshots/**/*.png
fastlane/test_output fastlane/test_output
# Code Injection # Code Injection
......
...@@ -64,5 +64,5 @@ Carthage/Build ...@@ -64,5 +64,5 @@ Carthage/Build
fastlane/report.xml fastlane/report.xml
fastlane/Preview.html fastlane/Preview.html
fastlane/screenshots fastlane/screenshots/**/*.png
fastlane/test_output fastlane/test_output
...@@ -198,6 +198,9 @@ pythontex-files-*/ ...@@ -198,6 +198,9 @@ pythontex-files-*/
# easy-todo # easy-todo
*.lod *.lod
# xmpincl
*.xmpi
# xindy # xindy
*.xdy *.xdy
...@@ -234,3 +237,6 @@ TSWLatexianTemp* ...@@ -234,3 +237,6 @@ TSWLatexianTemp*
# standalone packages # standalone packages
*.sta *.sta
# generated if using elsarticle.cls
*.spl
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
Assets/AssetStoreTools* Assets/AssetStoreTools*
# Visual Studio cache directory # Visual Studio cache directory
/.vs/ .vs/
# Autogenerated VS/MD/Consulo solution and project files # Autogenerated VS/MD/Consulo solution and project files
ExportedObj/ ExportedObj/
...@@ -22,6 +22,7 @@ ExportedObj/ ...@@ -22,6 +22,7 @@ ExportedObj/
*.booproj *.booproj
*.svd *.svd
*.pdb *.pdb
*.opendb
# Unity3D generated meta files # Unity3D generated meta files
*.pidb.meta *.pidb.meta
......
...@@ -240,6 +240,7 @@ Backup*/ ...@@ -240,6 +240,7 @@ Backup*/
UpgradeLog*.XML UpgradeLog*.XML
UpgradeLog*.htm UpgradeLog*.htm
ServiceFabricBackup/ ServiceFabricBackup/
*.rptproj.bak
# SQL Server files # SQL Server files
*.mdf *.mdf
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
image: "chef/chefdk" image: "chef/chefdk"
services: services:
- docker:stable-dind - docker:dind
variables: variables:
DOCKER_HOST: "tcp://docker:2375" DOCKER_HOST: "tcp://docker:2375"
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
image: docker:latest image: docker:latest
services: services:
- docker:stable-dind - docker:dind
before_script: before_script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
......
...@@ -24,7 +24,7 @@ variables: ...@@ -24,7 +24,7 @@ variables:
MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end --show-version -DinstallAtEnd=true -DdeployAtEnd=true" MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end --show-version -DinstallAtEnd=true -DdeployAtEnd=true"
# Cache downloaded dependencies and plugins between builds. # Cache downloaded dependencies and plugins between builds.
# To keep cache across branches add 'key: "$CI_JOB_REF_NAME"' # To keep cache across branches add 'key: "$CI_JOB_NAME"'
cache: cache:
paths: paths:
- .m2/repository - .m2/repository
......
# Lifted from: https://about.gitlab.com/2016/03/10/setting-up-gitlab-ci-for-ios-projects/ # Lifted from: https://about.gitlab.com/2016/03/10/setting-up-gitlab-ci-for-ios-projects/
# This file assumes an own GitLab CI runner, setup on an OS X system. # This file assumes an own GitLab CI runner, setup on an macOS system.
stages: stages:
- build - build
- archive - archive
...@@ -8,11 +8,11 @@ build_project: ...@@ -8,11 +8,11 @@ build_project:
stage: build stage: build
script: script:
- xcodebuild clean -project ProjectName.xcodeproj -scheme SchemeName | xcpretty - xcodebuild clean -project ProjectName.xcodeproj -scheme SchemeName | xcpretty
- xcodebuild test -project ProjectName.xcodeproj -scheme SchemeName -destination 'platform=iOS Simulator,name=iPhone 6s,OS=9.2' | xcpretty -s - xcodebuild test -project ProjectName.xcodeproj -scheme SchemeName -destination 'platform=iOS Simulator,name=iPhone 8,OS=11.3' | xcpretty -s
tags: tags:
- ios_9-2 - ios_11-3
- xcode_7-2 - xcode_9-3
- osx_10-11 - macos_10-13
archive_project: archive_project:
stage: archive stage: archive
...@@ -25,6 +25,6 @@ archive_project: ...@@ -25,6 +25,6 @@ archive_project:
paths: paths:
- build/ProjectName.ipa - build/ProjectName.ipa
tags: tags:
- ios_9-2 - ios_11-3
- xcode_7-2 - xcode_9-3
- osx_10-11 - macos_10-13
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment