BigW Consortium Gitlab
Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gitlab-ce
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Forest Godfrey
gitlab-ce
Commits
30c78e70
Commit
30c78e70
authored
Sep 28, 2015
by
Kamil Trzcinski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
WIP
parent
1530f68c
Show whitespace changes
Inline
Side-by-side
Showing
29 changed files
with
121 additions
and
102 deletions
+121
-102
application_controller.rb
app/controllers/ci/application_controller.rb
+4
-4
build.rb
app/models/ci/build.rb
+1
-2
commit.rb
app/models/ci/commit.rb
+5
-5
project.rb
app/models/ci/project.rb
+7
-4
project.rb
app/models/project.rb
+1
-0
schema.rb
db/schema.rb
+19
-13
commits_controller_spec.rb
spec/controllers/ci/commits_controller_spec.rb
+4
-8
commits.rb
spec/factories/ci/commits.rb
+2
-0
projects.rb
spec/factories/ci/projects.rb
+1
-1
builds_spec.rb
spec/features/ci/admin/builds_spec.rb
+1
-2
builds_spec.rb
spec/features/ci/builds_spec.rb
+10
-9
commits_spec.rb
spec/features/ci/commits_spec.rb
+6
-5
notify_spec.rb
spec/mailers/ci/notify_spec.rb
+1
-2
build_spec.rb
spec/models/ci/build_spec.rb
+2
-1
commit_spec.rb
spec/models/ci/commit_spec.rb
+13
-10
mail_service_spec.rb
spec/models/ci/mail_service_spec.rb
+12
-6
hip_chat_service_spec.rb
spec/models/ci/project_services/hip_chat_service_spec.rb
+1
-2
slack_service_spec.rb
spec/models/ci/project_services/slack_service_spec.rb
+1
-2
project_spec.rb
spec/models/ci/project_spec.rb
+2
-1
service_spec.rb
spec/models/ci/service_spec.rb
+1
-2
builds_spec.rb
spec/requests/ci/api/builds_spec.rb
+9
-7
commits_spec.rb
spec/requests/ci/api/commits_spec.rb
+2
-1
triggers_spec.rb
spec/requests/ci/api/triggers_spec.rb
+2
-1
builds_spec.rb
spec/requests/ci/builds_spec.rb
+1
-2
commits_spec.rb
spec/requests/ci/commits_spec.rb
+1
-2
create_trigger_request_service_spec.rb
spec/services/ci/create_trigger_request_service_spec.rb
+6
-5
image_for_build_service_spec.rb
spec/services/ci/image_for_build_service_spec.rb
+2
-1
register_build_service_spec.rb
spec/services/ci/register_build_service_spec.rb
+2
-3
web_hook_service_spec.rb
spec/services/ci/web_hook_service_spec.rb
+2
-1
No files found.
app/controllers/ci/application_controller.rb
View file @
30c78e70
...
...
@@ -11,10 +11,10 @@ module Ci
private
def
check_enable_flag!
unless
current_application_settings
.
ci_enabled
redirect_to
(
disabled_ci_projects_path
)
return
end
#
unless current_application_settings.ci_enabled
#
redirect_to(disabled_ci_projects_path)
#
return
#
end
end
def
authenticate_public_page!
...
...
app/models/ci/build.rb
View file @
30c78e70
...
...
@@ -79,7 +79,6 @@ module Ci
new_build
.
commands
=
build
.
commands
new_build
.
tag_list
=
build
.
tag_list
new_build
.
commit_id
=
build
.
commit_id
new_build
.
project_id
=
build
.
project_id
new_build
.
name
=
build
.
name
new_build
.
allow_failure
=
build
.
allow_failure
new_build
.
stage
=
build
.
stage
...
...
@@ -187,7 +186,7 @@ module Ci
end
def
project_id
commit
.
project
_id
commit
.
gl_project
.
gitlab
_id
end
def
project_name
...
...
app/models/ci/commit.rb
View file @
30c78e70
...
...
@@ -32,14 +32,15 @@ module Ci
sha
[
0
...
8
]
end
def
project
@project
||=
gl_project
.
gitlab_ci_project
end
def
to_param
sha
end
def
project
@project
||=
gl_project
.
gitlab_ci_project
@project
||=
gl_project
.
create_gitlab_ci_project
end
def
last_build
builds
.
order
(
:id
).
last
end
...
...
@@ -115,7 +116,6 @@ module Ci
builds_attrs
=
config_processor
.
builds_for_stage_and_ref
(
stage
,
ref
,
tag
)
builds_attrs
.
map
do
|
build_attrs
|
builds
.
create!
({
project:
project
,
name:
build_attrs
[
:name
],
commands:
build_attrs
[
:script
],
tag_list:
build_attrs
[
:tags
],
...
...
app/models/ci/project.rb
View file @
30c78e70
...
...
@@ -33,15 +33,12 @@ module Ci
belongs_to
:gl_project
,
class_name:
'::Project'
,
foreign_key: :gitlab_id
has_many
:commits
,
through: :gl_project
,
class_name:
'Ci::Commit'
,
foreign_key: :gl_project_id
has_many
:builds
,
through: :commits
,
dependent: :destroy
,
class_name:
'Ci::Build'
has_many
:runner_projects
,
dependent: :destroy
,
class_name:
'Ci::RunnerProject'
has_many
:runners
,
through: :runner_projects
,
class_name:
'Ci::Runner'
has_many
:web_hooks
,
dependent: :destroy
,
class_name:
'Ci::WebHook'
has_many
:events
,
dependent: :destroy
,
class_name:
'Ci::Event'
has_many
:variables
,
dependent: :destroy
,
class_name:
'Ci::Variable'
has_many
:triggers
,
dependent: :destroy
,
class_name:
'Ci::Trigger'
has_one
:last_commit
,
through: :gl_project
,
class_name:
'Ci::Commit'
# Project services
has_many
:services
,
dependent: :destroy
,
class_name:
'Ci::Service'
...
...
@@ -51,6 +48,8 @@ module Ci
accepts_nested_attributes_for
:variables
,
allow_destroy:
true
delegate
:commits
,
:builds
,
:last_commit
,
to: :gl_project
#
# Validations
#
...
...
@@ -125,10 +124,14 @@ module Ci
def
set_default_values
self
.
token
=
SecureRandom
.
hex
(
15
)
if
self
.
token
.
blank?
self
.
default_ref
||=
'master'
self
.
name
||=
gl_project
.
name_with_namespace
self
.
path
||=
gl_project
.
path_with_namespace
self
.
ssh_url_to_repo
||=
gl_project
.
ssh_url_to_repo
end
def
tracked_refs
@tracked_refs
||=
default_ref
.
split
(
","
).
map
{
|
ref
|
ref
.
strip
}
@tracked_refs
||=
default_ref
.
split
(
","
).
map
{
|
ref
|
ref
.
strip
}
end
def
valid_token?
token
...
...
app/models/project.rb
View file @
30c78e70
...
...
@@ -119,6 +119,7 @@ class Project < ActiveRecord::Base
has_many
:users_star_projects
,
dependent: :destroy
has_many
:starrers
,
through: :users_star_projects
,
source: :user
has_many
:commits
,
->
()
{
order
(
'CASE WHEN ci_commits.committed_at IS NULL THEN 0 ELSE 1 END'
,
:committed_at
,
:id
)
},
dependent: :destroy
,
class_name:
'Ci::Commit'
,
foreign_key: :gl_project_id
has_many
:builds
,
through: :commits
,
dependent: :destroy
,
class_name:
'Ci::Build'
has_one
:last_commit
,
->
{
order
'ci_commits.created_at DESC'
},
class_name:
'Ci::Commit'
,
foreign_key: :gl_project_id
has_one
:import_data
,
dependent: :destroy
,
class_name:
"ProjectImportData"
...
...
db/schema.rb
View file @
30c78e70
...
...
@@ -11,10 +11,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord
::
Schema
.
define
(
version:
20150920161119
)
do
# These are extensions that must be enabled in order to support this database
enable_extension
"plpgsql"
ActiveRecord
::
Schema
.
define
(
version:
20150924131004
)
do
create_table
"abuse_reports"
,
force:
true
do
|
t
|
t
.
integer
"reporter_id"
...
...
@@ -45,8 +42,8 @@ ActiveRecord::Schema.define(version: 20150920161119) do
t
.
string
"after_sign_out_path"
t
.
integer
"session_expire_delay"
,
default:
10080
,
null:
false
t
.
text
"import_sources"
t
.
text
"help_page_text"
t
.
boolean
"ci_enabled"
,
default:
true
,
null:
false
t
.
text
"help_page_text"
end
create_table
"audit_events"
,
force:
true
do
|
t
|
...
...
@@ -85,12 +82,12 @@ ActiveRecord::Schema.define(version: 20150920161119) do
t
.
integer
"project_id"
t
.
string
"status"
t
.
datetime
"finished_at"
t
.
text
"trace"
t
.
text
"trace"
,
limit:
2147483647
t
.
datetime
"created_at"
t
.
datetime
"updated_at"
t
.
datetime
"started_at"
t
.
integer
"runner_id"
t
.
float
"coverage"
t
.
float
"coverage"
,
limit:
24
t
.
integer
"commit_id"
t
.
text
"commands"
t
.
integer
"job_id"
...
...
@@ -100,6 +97,7 @@ ActiveRecord::Schema.define(version: 20150920161119) do
t
.
boolean
"allow_failure"
,
default:
false
,
null:
false
t
.
string
"stage"
t
.
integer
"trigger_request_id"
t
.
integer
"gl_project_id"
end
add_index
"ci_builds"
,
[
"commit_id"
],
name:
"index_ci_builds_on_commit_id"
,
using: :btree
...
...
@@ -112,12 +110,13 @@ ActiveRecord::Schema.define(version: 20150920161119) do
t
.
string
"ref"
t
.
string
"sha"
t
.
string
"before_sha"
t
.
text
"push_data"
t
.
text
"push_data"
,
limit:
16777215
t
.
datetime
"created_at"
t
.
datetime
"updated_at"
t
.
boolean
"tag"
,
default:
false
t
.
text
"yaml_errors"
t
.
datetime
"committed_at"
t
.
integer
"gl_project_id"
end
add_index
"ci_commits"
,
[
"project_id"
,
"committed_at"
,
"id"
],
name:
"index_ci_commits_on_project_id_and_committed_at_and_id"
,
using: :btree
...
...
@@ -133,6 +132,7 @@ ActiveRecord::Schema.define(version: 20150920161119) do
t
.
text
"description"
t
.
datetime
"created_at"
t
.
datetime
"updated_at"
t
.
integer
"gl_project_id"
end
add_index
"ci_events"
,
[
"created_at"
],
name:
"index_ci_events_on_created_at"
,
using: :btree
...
...
@@ -184,6 +184,7 @@ ActiveRecord::Schema.define(version: 20150920161119) do
t
.
integer
"project_id"
,
null:
false
t
.
datetime
"created_at"
t
.
datetime
"updated_at"
t
.
integer
"gl_project_id"
end
add_index
"ci_runner_projects"
,
[
"project_id"
],
name:
"index_ci_runner_projects_on_project_id"
,
using: :btree
...
...
@@ -212,6 +213,7 @@ ActiveRecord::Schema.define(version: 20150920161119) do
t
.
datetime
"updated_at"
t
.
boolean
"active"
,
default:
false
,
null:
false
t
.
text
"properties"
t
.
integer
"gl_project_id"
end
add_index
"ci_services"
,
[
"project_id"
],
name:
"index_ci_services_on_project_id"
,
using: :btree
...
...
@@ -260,6 +262,7 @@ ActiveRecord::Schema.define(version: 20150920161119) do
t
.
datetime
"deleted_at"
t
.
datetime
"created_at"
t
.
datetime
"updated_at"
t
.
integer
"gl_project_id"
end
add_index
"ci_triggers"
,
[
"deleted_at"
],
name:
"index_ci_triggers_on_deleted_at"
,
using: :btree
...
...
@@ -271,6 +274,7 @@ ActiveRecord::Schema.define(version: 20150920161119) do
t
.
text
"encrypted_value"
t
.
string
"encrypted_value_salt"
t
.
string
"encrypted_value_iv"
t
.
integer
"gl_project_id"
end
add_index
"ci_variables"
,
[
"project_id"
],
name:
"index_ci_variables_on_project_id"
,
using: :btree
...
...
@@ -280,6 +284,7 @@ ActiveRecord::Schema.define(version: 20150920161119) do
t
.
integer
"project_id"
,
null:
false
t
.
datetime
"created_at"
t
.
datetime
"updated_at"
t
.
integer
"gl_project_id"
end
create_table
"deploy_keys_projects"
,
force:
true
do
|
t
|
...
...
@@ -425,8 +430,8 @@ ActiveRecord::Schema.define(version: 20150920161119) do
create_table
"merge_request_diffs"
,
force:
true
do
|
t
|
t
.
string
"state"
t
.
text
"st_commits"
t
.
text
"st_diffs"
t
.
text
"st_commits"
,
limit:
2147483647
t
.
text
"st_diffs"
,
limit:
2147483647
t
.
integer
"merge_request_id"
,
null:
false
t
.
datetime
"created_at"
t
.
datetime
"updated_at"
...
...
@@ -510,7 +515,7 @@ ActiveRecord::Schema.define(version: 20150920161119) do
t
.
string
"commit_id"
t
.
integer
"noteable_id"
t
.
boolean
"system"
,
default:
false
,
null:
false
t
.
text
"st_diff"
t
.
text
"st_diff"
,
limit:
2147483647
t
.
integer
"updated_by_id"
end
...
...
@@ -593,11 +598,12 @@ ActiveRecord::Schema.define(version: 20150920161119) do
t
.
boolean
"archived"
,
default:
false
,
null:
false
t
.
string
"avatar"
t
.
string
"import_status"
t
.
float
"repository_size"
,
default:
0.0
t
.
float
"repository_size"
,
limit:
24
,
default:
0.0
t
.
integer
"star_count"
,
default:
0
,
null:
false
t
.
string
"import_type"
t
.
string
"import_source"
t
.
integer
"commit_count"
,
default:
0
t
.
boolean
"shared_runners_enabled"
,
default:
false
end
add_index
"projects"
,
[
"created_at"
,
"id"
],
name:
"index_projects_on_created_at_and_id"
,
using: :btree
...
...
@@ -649,7 +655,7 @@ ActiveRecord::Schema.define(version: 20150920161119) do
create_table
"snippets"
,
force:
true
do
|
t
|
t
.
string
"title"
t
.
text
"content"
t
.
text
"content"
,
limit:
2147483647
t
.
integer
"author_id"
,
null:
false
t
.
integer
"project_id"
t
.
datetime
"created_at"
...
...
spec/controllers/ci/commits_controller_spec.rb
View file @
30c78e70
require
"spec_helper"
describe
Ci
::
CommitsController
do
before
do
@project
=
FactoryGirl
.
create
:ci_project
end
describe
"GET /status"
do
it
"returns status of commit"
do
commit
=
FactoryGirl
.
create
:ci_commit
,
project:
@project
get
:status
,
id:
commit
.
sha
,
ref_id:
commit
.
ref
,
project_id:
@
project
.
id
commit
=
FactoryGirl
.
create
:ci_commit
get
:status
,
id:
commit
.
sha
,
ref_id:
commit
.
ref
,
project_id:
commit
.
project
.
id
expect
(
response
).
to
be_success
expect
(
response
.
code
).
to
eq
(
'200'
)
...
...
@@ -16,8 +12,8 @@ describe Ci::CommitsController do
end
it
"returns not_found status"
do
commit
=
FactoryGirl
.
create
:ci_commit
,
project:
@project
get
:status
,
id:
commit
.
sha
,
ref_id:
"deploy"
,
project_id:
@
project
.
id
commit
=
FactoryGirl
.
create
:ci_commit
get
:status
,
id:
commit
.
sha
,
ref_id:
"deploy"
,
project_id:
commit
.
project
.
id
expect
(
response
).
to
be_success
expect
(
response
.
code
).
to
eq
(
'200'
)
...
...
spec/factories/ci/commits.rb
View file @
30c78e70
...
...
@@ -51,6 +51,8 @@ FactoryGirl.define do
}
end
gl_project
factory: :empty_project
factory
:ci_commit_without_jobs
do
after
(
:create
)
do
|
commit
,
evaluator
|
commit
.
push_data
[
:ci_yaml_file
]
=
YAML
.
dump
({})
...
...
spec/factories/ci/projects.rb
View file @
30c78e70
...
...
@@ -43,7 +43,7 @@ FactoryGirl.define do
"git@demo.gitlab.com:gitlab/gitlab-shell
#{
n
}
.git"
end
gl_project
factory: :project
gl_project
factory: :
empty_
project
factory
:ci_project
do
token
'iPWx6WM4lhHNedGfBpPJNP'
...
...
spec/features/ci/admin/builds_spec.rb
View file @
30c78e70
require
'spec_helper'
describe
"Admin Builds"
do
let
(
:project
)
{
FactoryGirl
.
create
:ci_project
}
let
(
:commit
)
{
FactoryGirl
.
create
:ci_commit
,
project:
project
}
let
(
:commit
)
{
FactoryGirl
.
create
:ci_commit
}
let
(
:build
)
{
FactoryGirl
.
create
:ci_build
,
commit:
commit
}
before
do
...
...
spec/features/ci/builds_spec.rb
View file @
30c78e70
...
...
@@ -3,16 +3,15 @@ require 'spec_helper'
describe
"Builds"
do
context
:private_project
do
before
do
@project
=
FactoryGirl
.
create
:ci_project
@commit
=
FactoryGirl
.
create
:ci_commit
,
project:
@project
@commit
=
FactoryGirl
.
create
:ci_commit
@build
=
FactoryGirl
.
create
:ci_build
,
commit:
@commit
login_as
:user
@project
.
gl_project
.
team
<<
[
@user
,
:master
]
@
commit
.
project
.
gl_project
.
team
<<
[
@user
,
:master
]
end
describe
"GET /:project/builds/:id"
do
before
do
visit
ci_project_build_path
(
@project
,
@build
)
visit
ci_project_build_path
(
@
commit
.
project
,
@build
)
end
it
{
expect
(
page
).
to
have_content
@commit
.
sha
[
0
..
7
]
}
...
...
@@ -23,7 +22,7 @@ describe "Builds" do
describe
"GET /:project/builds/:id/cancel"
do
before
do
@build
.
run!
visit
cancel_ci_project_build_path
(
@project
,
@build
)
visit
cancel_ci_project_build_path
(
@
commit
.
project
,
@build
)
end
it
{
expect
(
page
).
to
have_content
'canceled'
}
...
...
@@ -33,7 +32,7 @@ describe "Builds" do
describe
"POST /:project/builds/:id/retry"
do
before
do
@build
.
cancel!
visit
ci_project_build_path
(
@project
,
@build
)
visit
ci_project_build_path
(
@
commit
.
project
,
@build
)
click_link
'Retry'
end
...
...
@@ -45,13 +44,15 @@ describe "Builds" do
context
:public_project
do
describe
"Show page public accessible"
do
before
do
@project
=
FactoryGirl
.
create
:ci_public_project
@commit
=
FactoryGirl
.
create
:ci_commit
,
project:
@project
@commit
=
FactoryGirl
.
create
:ci_commit
@commit
.
project
.
public
=
true
@commit
.
project
.
save
@runner
=
FactoryGirl
.
create
:ci_specific_runner
@build
=
FactoryGirl
.
create
:ci_build
,
commit:
@commit
,
runner:
@runner
stub_gitlab_calls
visit
ci_project_build_path
(
@project
,
@build
)
visit
ci_project_build_path
(
@
commit
.
project
,
@build
)
end
it
{
expect
(
page
).
to
have_content
@commit
.
sha
[
0
..
7
]
}
...
...
spec/features/ci/commits_spec.rb
View file @
30c78e70
...
...
@@ -5,11 +5,10 @@ describe "Commits" do
context
"Authenticated user"
do
before
do
@project
=
FactoryGirl
.
create
:ci_project
@commit
=
FactoryGirl
.
create
:ci_commit
,
project:
@project
@commit
=
FactoryGirl
.
create
:ci_commit
@build
=
FactoryGirl
.
create
:ci_build
,
commit:
@commit
login_as
:user
@project
.
gl_project
.
team
<<
[
@user
,
:master
]
@
commit
.
project
.
gl_project
.
team
<<
[
@user
,
:master
]
end
describe
"GET /:project/commits/:sha"
do
...
...
@@ -51,8 +50,10 @@ describe "Commits" do
context
"Public pages"
do
before
do
@project
=
FactoryGirl
.
create
:ci_public_project
@commit
=
FactoryGirl
.
create
:ci_commit
,
project:
@project
@commit
=
FactoryGirl
.
create
:ci_commit
@commit
.
project
.
public
=
true
@commit
.
project
.
save
@build
=
FactoryGirl
.
create
:ci_build
,
commit:
@commit
end
...
...
spec/mailers/ci/notify_spec.rb
View file @
30c78e70
...
...
@@ -5,8 +5,7 @@ describe Ci::Notify do
include
EmailSpec
::
Matchers
before
do
@project
=
FactoryGirl
.
create
:ci_project
@commit
=
FactoryGirl
.
create
:ci_commit
,
project:
@project
@commit
=
FactoryGirl
.
create
:ci_commit
@build
=
FactoryGirl
.
create
:ci_build
,
commit:
@commit
end
...
...
spec/models/ci/build_spec.rb
View file @
30c78e70
...
...
@@ -27,7 +27,8 @@ require 'spec_helper'
describe
Ci
::
Build
do
let
(
:project
)
{
FactoryGirl
.
create
:ci_project
}
let
(
:commit
)
{
FactoryGirl
.
create
:ci_commit
,
project:
project
}
let
(
:gl_project
)
{
FactoryGirl
.
create
:empty_project
,
gitlab_ci_project:
project
}
let
(
:commit
)
{
FactoryGirl
.
create
:ci_commit
,
gl_project:
gl_project
}
let
(
:build
)
{
FactoryGirl
.
create
:ci_build
,
commit:
commit
}
it
{
is_expected
.
to
belong_to
(
:commit
)
}
...
...
spec/models/ci/commit_spec.rb
View file @
30c78e70
...
...
@@ -18,9 +18,8 @@
require
'spec_helper'
describe
Ci
::
Commit
do
let
(
:project
)
{
FactoryGirl
.
create
:ci_project
}
let
(
:commit
)
{
FactoryGirl
.
create
:ci_commit
,
project:
project
}
let
(
:commit_with_project
)
{
FactoryGirl
.
create
:ci_commit
,
project:
project
}
let
(
:commit
)
{
FactoryGirl
.
create
:ci_commit
}
let
(
:commit_with_project
)
{
FactoryGirl
.
create
:ci_commit
}
let
(
:config_processor
)
{
Ci
::
GitlabCiYamlProcessor
.
new
(
gitlab_ci_yaml
)
}
it
{
is_expected
.
to
belong_to
(
:project
)
}
...
...
@@ -65,7 +64,8 @@ describe Ci::Commit do
project
=
FactoryGirl
.
create
:ci_project
,
email_add_pusher:
true
,
email_recipients:
''
commit
=
FactoryGirl
.
create
:ci_commit
,
project:
project
gl_project
=
FactoryGirl
.
create
:empty_project
,
gitlab_ci_project:
project
commit
=
FactoryGirl
.
create
:ci_commit
,
gl_project:
gl_project
expected
=
'commit_pusher_email'
allow
(
commit
).
to
receive
(
:push_data
)
{
{
user_email:
expected
}
}
expect
(
commit
.
project_recipients
).
to
eq
([
expected
])
...
...
@@ -75,7 +75,8 @@ describe Ci::Commit do
project
=
FactoryGirl
.
create
:ci_project
,
email_add_pusher:
true
,
email_recipients:
'rec1 rec2'
commit
=
FactoryGirl
.
create
:ci_commit
,
project:
project
gl_project
=
FactoryGirl
.
create
:empty_project
,
gitlab_ci_project:
project
commit
=
FactoryGirl
.
create
:ci_commit
,
gl_project:
gl_project
expected
=
'commit_pusher_email'
allow
(
commit
).
to
receive
(
:push_data
)
{
{
user_email:
expected
}
}
expect
(
commit
.
project_recipients
).
to
eq
([
'rec1'
,
'rec2'
,
expected
])
...
...
@@ -85,7 +86,8 @@ describe Ci::Commit do
project
=
FactoryGirl
.
create
:ci_project
,
email_add_pusher:
false
,
email_recipients:
'rec1 rec2'
commit
=
FactoryGirl
.
create
:ci_commit
,
project:
project
gl_project
=
FactoryGirl
.
create
:empty_project
,
gitlab_ci_project:
project
commit
=
FactoryGirl
.
create
:ci_commit
,
project:
gl_project
expect
(
commit
.
project_recipients
).
to
eq
([
'rec1'
,
'rec2'
])
end
...
...
@@ -93,7 +95,8 @@ describe Ci::Commit do
project
=
FactoryGirl
.
create
:ci_project
,
email_add_pusher:
true
,
email_recipients:
'rec1 rec1 rec2'
commit
=
FactoryGirl
.
create
:ci_commit
,
project:
project
gl_project
=
FactoryGirl
.
create
:empty_project
,
gitlab_ci_project:
project
commit
=
FactoryGirl
.
create
:ci_commit
,
project:
gl_project
expected
=
'rec2'
allow
(
commit
).
to
receive
(
:push_data
)
{
{
user_email:
expected
}
}
expect
(
commit
.
project_recipients
).
to
eq
([
'rec1'
,
'rec2'
])
...
...
@@ -219,8 +222,7 @@ describe Ci::Commit do
end
describe
"#finished_at"
do
let
(
:project
)
{
FactoryGirl
.
create
:ci_project
}
let
(
:commit
)
{
FactoryGirl
.
create
:ci_commit
,
project:
project
}
let
(
:commit
)
{
FactoryGirl
.
create
:ci_commit
}
it
"returns finished_at of latest build"
do
build
=
FactoryGirl
.
create
:ci_build
,
commit:
commit
,
finished_at:
Time
.
now
-
60
...
...
@@ -238,7 +240,8 @@ describe Ci::Commit do
describe
"coverage"
do
let
(
:project
)
{
FactoryGirl
.
create
:ci_project
,
coverage_regex:
"/.*/"
}
let
(
:commit
)
{
FactoryGirl
.
create
:ci_commit
,
project:
project
}
let
(
:gl_project
)
{
FactoryGirl
.
create
:empty_project
,
gitlab_ci_project:
project
}
let
(
:commit
)
{
FactoryGirl
.
create
:ci_commit
,
gl_project:
gl_project
}
it
"calculates average when there are two builds with coverage"
do
FactoryGirl
.
create
:ci_build
,
name:
"rspec"
,
coverage:
30
,
commit:
commit
...
...
spec/models/ci/mail_service_spec.rb
View file @
30c78e70
...
...
@@ -32,7 +32,8 @@ describe Ci::MailService do
describe
'failed build'
do
let
(
:project
)
{
FactoryGirl
.
create
(
:ci_project
,
email_add_pusher:
true
)
}
let
(
:commit
)
{
FactoryGirl
.
create
(
:ci_commit
,
project:
project
)
}
let
(
:gl_project
)
{
FactoryGirl
.
create
(
:empty_project
,
gitlab_ci_project:
project
)
}
let
(
:commit
)
{
FactoryGirl
.
create
(
:ci_commit
,
gl_project:
gl_project
)
}
let
(
:build
)
{
FactoryGirl
.
create
(
:ci_build
,
status: :failed
,
commit:
commit
)
}
before
do
...
...
@@ -54,7 +55,8 @@ describe Ci::MailService do
describe
'successfull build'
do
let
(
:project
)
{
FactoryGirl
.
create
(
:ci_project
,
email_add_pusher:
true
,
email_only_broken_builds:
false
)
}
let
(
:commit
)
{
FactoryGirl
.
create
(
:ci_commit
,
project:
project
)
}
let
(
:gl_project
)
{
FactoryGirl
.
create
(
:empty_project
,
gitlab_ci_project:
project
)
}
let
(
:commit
)
{
FactoryGirl
.
create
(
:ci_commit
,
gl_project:
gl_project
)
}
let
(
:build
)
{
FactoryGirl
.
create
(
:ci_build
,
status: :success
,
commit:
commit
)
}
before
do
...
...
@@ -81,7 +83,8 @@ describe Ci::MailService do
email_only_broken_builds:
false
,
email_recipients:
"jeroen@example.com"
)
end
let
(
:commit
)
{
FactoryGirl
.
create
(
:ci_commit
,
project:
project
)
}
let
(
:gl_project
)
{
FactoryGirl
.
create
(
:empty_project
,
gitlab_ci_project:
project
)
}
let
(
:commit
)
{
FactoryGirl
.
create
(
:ci_commit
,
gl_project:
gl_project
)
}
let
(
:build
)
{
FactoryGirl
.
create
(
:ci_build
,
status: :success
,
commit:
commit
)
}
before
do
...
...
@@ -109,7 +112,8 @@ describe Ci::MailService do
email_only_broken_builds:
true
,
email_recipients:
"jeroen@example.com"
)
end
let
(
:commit
)
{
FactoryGirl
.
create
(
:ci_commit
,
project:
project
)
}
let
(
:gl_project
)
{
FactoryGirl
.
create
(
:empty_project
,
gitlab_ci_project:
project
)
}
let
(
:commit
)
{
FactoryGirl
.
create
(
:ci_commit
,
gl_project:
gl_project
)
}
let
(
:build
)
{
FactoryGirl
.
create
(
:ci_build
,
status: :success
,
commit:
commit
)
}
before
do
...
...
@@ -137,7 +141,8 @@ describe Ci::MailService do
email_only_broken_builds:
false
,
email_recipients:
"jeroen@example.com"
)
end
let
(
:commit
)
{
FactoryGirl
.
create
(
:ci_commit
,
project:
project
)
}
let
(
:gl_project
)
{
FactoryGirl
.
create
(
:empty_project
,
gitlab_ci_project:
project
)
}
let
(
:commit
)
{
FactoryGirl
.
create
(
:ci_commit
,
gl_project:
gl_project
)
}
let
(
:build
)
{
FactoryGirl
.
create
(
:ci_build
,
status: :success
,
commit:
commit
)
}
before
do
...
...
@@ -159,7 +164,8 @@ describe Ci::MailService do
email_only_broken_builds:
true
,
email_recipients:
"jeroen@example.com"
)
end
let
(
:commit
)
{
FactoryGirl
.
create
(
:ci_commit
,
project:
project
)
}
let
(
:gl_project
)
{
FactoryGirl
.
create
(
:empty_project
,
gitlab_ci_project:
project
)
}
let
(
:commit
)
{
FactoryGirl
.
create
(
:ci_commit
,
gl_project:
gl_project
)
}
let
(
:build
)
{
FactoryGirl
.
create
(
:ci_build
,
status: :failed
,
commit:
commit
)
}
before
do
...
...
spec/models/ci/project_services/hip_chat_service_spec.rb
View file @
30c78e70
...
...
@@ -33,8 +33,7 @@ describe Ci::HipChatService do
describe
"Execute"
do
let
(
:service
)
{
Ci
::
HipChatService
.
new
}
let
(
:project
)
{
FactoryGirl
.
create
:ci_project
}
let
(
:commit
)
{
FactoryGirl
.
create
:ci_commit
,
project:
project
}
let
(
:commit
)
{
FactoryGirl
.
create
:ci_commit
}
let
(
:build
)
{
FactoryGirl
.
create
:ci_build
,
commit:
commit
,
status:
'failed'
}
let
(
:api_url
)
{
'https://api.hipchat.com/v2/room/123/notification?auth_token=a1b2c3d4e5f6'
}
...
...
spec/models/ci/project_services/slack_service_spec.rb
View file @
30c78e70
...
...
@@ -31,8 +31,7 @@ describe Ci::SlackService do
describe
"Execute"
do
let
(
:slack
)
{
Ci
::
SlackService
.
new
}
let
(
:project
)
{
FactoryGirl
.
create
:ci_project
}
let
(
:commit
)
{
FactoryGirl
.
create
:ci_commit
,
project:
project
}
let
(
:commit
)
{
FactoryGirl
.
create
:ci_commit
}
let
(
:build
)
{
FactoryGirl
.
create
:ci_build
,
commit:
commit
,
status:
'failed'
}
let
(
:webhook_url
)
{
'https://hooks.slack.com/services/SVRWFV0VVAR97N/B02R25XN3/ZBqu7xMupaEEICInN685'
}
let
(
:notify_only_broken_builds
)
{
false
}
...
...
spec/models/ci/project_spec.rb
View file @
30c78e70
...
...
@@ -81,10 +81,11 @@ describe Ci::Project do
context
:valid_project
do
let
(
:project
)
{
FactoryGirl
.
create
:ci_project
}
let
(
:gl_project
)
{
FactoryGirl
.
create
(
:empty_project
,
gitlab_ci_project:
project
)
}
let
(
:commit
)
{
FactoryGirl
.
create
(
:ci_commit
,
gl_project:
gl_project
)
}
context
:project_with_commit_and_builds
do
before
do
commit
=
FactoryGirl
.
create
(
:ci_commit
,
project:
project
)
FactoryGirl
.
create
(
:ci_build
,
commit:
commit
)
end
...
...
spec/models/ci/service_spec.rb
View file @
30c78e70
...
...
@@ -29,8 +29,7 @@ describe Ci::Service do
end
describe
"Testable"
do
let
(
:project
)
{
FactoryGirl
.
create
:ci_project
}
let
(
:commit
)
{
FactoryGirl
.
create
:ci_commit
,
project:
project
}
let
(
:commit
)
{
FactoryGirl
.
create
:ci_commit
}
let
(
:build
)
{
FactoryGirl
.
create
:ci_build
,
commit:
commit
}
before
do
...
...
spec/requests/ci/api/builds_spec.rb
View file @
30c78e70
...
...
@@ -5,10 +5,12 @@ describe Ci::API::API do
let
(
:runner
)
{
FactoryGirl
.
create
(
:ci_runner
,
tag_list:
[
"mysql"
,
"ruby"
])
}
let
(
:project
)
{
FactoryGirl
.
create
(
:ci_project
)
}
let
(
:gl_project
)
{
FactoryGirl
.
create
(
:empty_project
,
gitlab_ci_project:
project
)
}
describe
"Builds API for runners"
do
let
(
:shared_runner
)
{
FactoryGirl
.
create
(
:ci_runner
,
token:
"SharedRunner"
)
}
let
(
:shared_project
)
{
FactoryGirl
.
create
(
:ci_project
,
name:
"SharedProject"
)
}
let
(
:shared_gl_project
)
{
FactoryGirl
.
create
(
:empty_project
,
gitlab_ci_project:
shared_project
)
}
before
do
FactoryGirl
.
create
:ci_runner_project
,
project_id:
project
.
id
,
runner_id:
runner
.
id
...
...
@@ -16,7 +18,7 @@ describe Ci::API::API do
describe
"POST /builds/register"
do
it
"should start a build"
do
commit
=
FactoryGirl
.
create
(
:ci_commit
,
project:
project
)
commit
=
FactoryGirl
.
create
(
:ci_commit
,
gl_project:
gl_
project
)
commit
.
create_builds
build
=
commit
.
builds
.
first
...
...
@@ -34,7 +36,7 @@ describe Ci::API::API do
end
it
"should return 404 error if no builds for specific runner"
do
commit
=
FactoryGirl
.
create
(
:ci_commit
,
project:
shared
_project
)
commit
=
FactoryGirl
.
create
(
:ci_commit
,
gl_project:
shared_gl
_project
)
FactoryGirl
.
create
(
:ci_build
,
commit:
commit
,
status:
'pending'
)
post
ci_api
(
"/builds/register"
),
token:
runner
.
token
...
...
@@ -43,7 +45,7 @@ describe Ci::API::API do
end
it
"should return 404 error if no builds for shared runner"
do
commit
=
FactoryGirl
.
create
(
:ci_commit
,
project:
project
)
commit
=
FactoryGirl
.
create
(
:ci_commit
,
gl_project:
gl_
project
)
FactoryGirl
.
create
(
:ci_build
,
commit:
commit
,
status:
'pending'
)
post
ci_api
(
"/builds/register"
),
token:
shared_runner
.
token
...
...
@@ -52,7 +54,7 @@ describe Ci::API::API do
end
it
"returns options"
do
commit
=
FactoryGirl
.
create
(
:ci_commit
,
project:
project
)
commit
=
FactoryGirl
.
create
(
:ci_commit
,
gl_project:
gl_
project
)
commit
.
create_builds
post
ci_api
(
"/builds/register"
),
token:
runner
.
token
,
info:
{
platform: :darwin
}
...
...
@@ -62,7 +64,7 @@ describe Ci::API::API do
end
it
"returns variables"
do
commit
=
FactoryGirl
.
create
(
:ci_commit
,
project:
project
)
commit
=
FactoryGirl
.
create
(
:ci_commit
,
gl_project:
gl_
project
)
commit
.
create_builds
project
.
variables
<<
Ci
::
Variable
.
new
(
key:
"SECRET_KEY"
,
value:
"secret_value"
)
...
...
@@ -77,7 +79,7 @@ describe Ci::API::API do
it
"returns variables for triggers"
do
trigger
=
FactoryGirl
.
create
(
:ci_trigger
,
project:
project
)
commit
=
FactoryGirl
.
create
(
:ci_commit
,
project:
project
)
commit
=
FactoryGirl
.
create
(
:ci_commit
,
gl_project:
gl_
project
)
trigger_request
=
FactoryGirl
.
create
(
:ci_trigger_request_with_variables
,
commit:
commit
,
trigger:
trigger
)
commit
.
create_builds
(
trigger_request
)
...
...
@@ -95,7 +97,7 @@ describe Ci::API::API do
end
describe
"PUT /builds/:id"
do
let
(
:commit
)
{
FactoryGirl
.
create
(
:ci_commit
,
project:
project
)}
let
(
:commit
)
{
FactoryGirl
.
create
(
:ci_commit
,
gl_project:
gl_
project
)}
let
(
:build
)
{
FactoryGirl
.
create
(
:ci_build
,
commit:
commit
,
runner_id:
runner
.
id
)
}
it
"should update a running build"
do
...
...
spec/requests/ci/api/commits_spec.rb
View file @
30c78e70
...
...
@@ -4,7 +4,8 @@ describe Ci::API::API, 'Commits' do
include
ApiHelpers
let
(
:project
)
{
FactoryGirl
.
create
(
:ci_project
)
}
let
(
:commit
)
{
FactoryGirl
.
create
(
:ci_commit
,
project:
project
)
}
let
(
:gl_project
)
{
FactoryGirl
.
create
(
:empty_project
,
gitlab_ci_project:
project
)
}
let
(
:commit
)
{
FactoryGirl
.
create
(
:ci_commit
,
gl_project:
gl_project
)
}
let
(
:options
)
do
{
...
...
spec/requests/ci/api/triggers_spec.rb
View file @
30c78e70
...
...
@@ -6,6 +6,7 @@ describe Ci::API::API do
describe
'POST /projects/:project_id/refs/:ref/trigger'
do
let!
(
:trigger_token
)
{
'secure token'
}
let!
(
:project
)
{
FactoryGirl
.
create
(
:ci_project
)
}
let!
(
:gl_project
)
{
FactoryGirl
.
create
(
:empty_project
,
gitlab_ci_project:
project
)
}
let!
(
:project2
)
{
FactoryGirl
.
create
(
:ci_project
)
}
let!
(
:trigger
)
{
FactoryGirl
.
create
(
:ci_trigger
,
project:
project
,
token:
trigger_token
)
}
let
(
:options
)
do
...
...
@@ -33,7 +34,7 @@ describe Ci::API::API do
context
'Have a commit'
do
before
do
@commit
=
FactoryGirl
.
create
(
:ci_commit
,
project:
project
)
@commit
=
FactoryGirl
.
create
(
:ci_commit
,
gl_project:
gl_
project
)
end
it
'should create builds'
do
...
...
spec/requests/ci/builds_spec.rb
View file @
30c78e70
...
...
@@ -2,8 +2,7 @@ require 'spec_helper'
describe
"Builds"
do
before
do
@project
=
FactoryGirl
.
create
:ci_project
@commit
=
FactoryGirl
.
create
:ci_commit
,
project:
@project
@commit
=
FactoryGirl
.
create
:ci_commit
@build
=
FactoryGirl
.
create
:ci_build
,
commit:
@commit
end
...
...
spec/requests/ci/commits_spec.rb
View file @
30c78e70
...
...
@@ -2,8 +2,7 @@ require 'spec_helper'
describe
"Commits"
do
before
do
@project
=
FactoryGirl
.
create
:ci_project
@commit
=
FactoryGirl
.
create
:ci_commit
,
project:
@project
@commit
=
FactoryGirl
.
create
:ci_commit
end
describe
"GET /:project/refs/:ref_name/commits/:id/status.json"
do
...
...
spec/services/ci/create_trigger_request_service_spec.rb
View file @
30c78e70
...
...
@@ -3,6 +3,7 @@ require 'spec_helper'
describe
Ci
::
CreateTriggerRequestService
do
let
(
:service
)
{
Ci
::
CreateTriggerRequestService
.
new
}
let
(
:project
)
{
FactoryGirl
.
create
:ci_project
}
let
(
:gl_project
)
{
FactoryGirl
.
create
:empty_project
,
gitlab_ci_project:
project
}
let
(
:trigger
)
{
FactoryGirl
.
create
:ci_trigger
,
project:
project
}
describe
:execute
do
...
...
@@ -10,7 +11,7 @@ describe Ci::CreateTriggerRequestService do
subject
{
service
.
execute
(
project
,
trigger
,
'master'
)
}
before
do
@commit
=
FactoryGirl
.
create
:ci_commit
,
project:
project
@commit
=
FactoryGirl
.
create
:ci_commit
,
gl_project:
gl_
project
end
it
{
expect
(
subject
).
to
be_kind_of
(
Ci
::
TriggerRequest
)
}
...
...
@@ -27,7 +28,7 @@ describe Ci::CreateTriggerRequestService do
subject
{
service
.
execute
(
project
,
trigger
,
'master'
)
}
before
do
FactoryGirl
.
create
:ci_commit_without_jobs
,
project:
project
FactoryGirl
.
create
:ci_commit_without_jobs
,
gl_project:
gl_
project
end
it
{
expect
(
subject
).
to
be_nil
}
...
...
@@ -37,9 +38,9 @@ describe Ci::CreateTriggerRequestService do
subject
{
service
.
execute
(
project
,
trigger
,
'master'
)
}
before
do
@commit1
=
FactoryGirl
.
create
:ci_commit
,
committed_at:
2
.
hour
.
ago
,
project:
project
@commit2
=
FactoryGirl
.
create
:ci_commit
,
committed_at:
1
.
hour
.
ago
,
project:
project
@commit3
=
FactoryGirl
.
create
:ci_commit
,
committed_at:
3
.
hour
.
ago
,
project:
project
@commit1
=
FactoryGirl
.
create
:ci_commit
,
committed_at:
2
.
hour
.
ago
,
gl_project:
gl_
project
@commit2
=
FactoryGirl
.
create
:ci_commit
,
committed_at:
1
.
hour
.
ago
,
gl_project:
gl_
project
@commit3
=
FactoryGirl
.
create
:ci_commit
,
committed_at:
3
.
hour
.
ago
,
gl_project:
gl_
project
end
context
'retries latest one'
do
...
...
spec/services/ci/image_for_build_service_spec.rb
View file @
30c78e70
...
...
@@ -4,7 +4,8 @@ module Ci
describe
ImageForBuildService
do
let
(
:service
)
{
ImageForBuildService
.
new
}
let
(
:project
)
{
FactoryGirl
.
create
(
:ci_project
)
}
let
(
:commit
)
{
FactoryGirl
.
create
(
:ci_commit
,
project:
project
,
ref:
'master'
)
}
let
(
:gl_project
)
{
FactoryGirl
.
create
(
:empty_project
,
gitlab_ci_project:
project
)
}
let
(
:commit
)
{
FactoryGirl
.
create
(
:ci_commit
,
gl_project:
gl_project
,
ref:
'master'
)
}
let
(
:build
)
{
FactoryGirl
.
create
(
:ci_build
,
commit:
commit
)
}
describe
:execute
do
...
...
spec/services/ci/register_build_service_spec.rb
View file @
30c78e70
...
...
@@ -3,9 +3,8 @@ require 'spec_helper'
module
Ci
describe
RegisterBuildService
do
let!
(
:service
)
{
RegisterBuildService
.
new
}
let!
(
:project
)
{
FactoryGirl
.
create
:ci_project
}
let!
(
:commit
)
{
FactoryGirl
.
create
:ci_commit
,
project:
project
}
let!
(
:pending_build
)
{
FactoryGirl
.
create
:ci_build
,
project:
project
,
commit:
commit
}
let!
(
:commit
)
{
FactoryGirl
.
create
:ci_commit
}
let!
(
:pending_build
)
{
FactoryGirl
.
create
:ci_build
,
commit:
commit
}
let!
(
:shared_runner
)
{
FactoryGirl
.
create
(
:ci_runner
,
is_shared:
true
)
}
let!
(
:specific_runner
)
{
FactoryGirl
.
create
(
:ci_runner
,
is_shared:
false
)
}
...
...
spec/services/ci/web_hook_service_spec.rb
View file @
30c78e70
...
...
@@ -2,7 +2,8 @@ require 'spec_helper'
describe
Ci
::
WebHookService
do
let
(
:project
)
{
FactoryGirl
.
create
:ci_project
}
let
(
:commit
)
{
FactoryGirl
.
create
:ci_commit
,
project:
project
}
let
(
:gl_project
)
{
FactoryGirl
.
create
:empty_project
,
gitlab_ci_project:
project
}
let
(
:commit
)
{
FactoryGirl
.
create
:ci_commit
,
gl_project:
gl_project
}
let
(
:build
)
{
FactoryGirl
.
create
:ci_build
,
commit:
commit
}
let
(
:hook
)
{
FactoryGirl
.
create
:ci_web_hook
,
project:
project
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment