Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
0e338147
Commit
0e338147
authored
Sep 28, 2015
by
Kamil Trzcinski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix tests
parent
30c78e70
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
73 additions
and
49 deletions
+73
-49
app/models/ci/build.rb
app/models/ci/build.rb
+1
-1
app/models/ci/commit.rb
app/models/ci/commit.rb
+17
-10
app/models/project.rb
app/models/project.rb
+6
-0
spec/models/ci/commit_spec.rb
spec/models/ci/commit_spec.rb
+7
-5
spec/models/ci/project_services/hip_chat_message_spec.rb
spec/models/ci/project_services/hip_chat_message_spec.rb
+2
-4
spec/models/ci/project_services/hip_chat_service_spec.rb
spec/models/ci/project_services/hip_chat_service_spec.rb
+2
-2
spec/models/ci/project_services/slack_message_spec.rb
spec/models/ci/project_services/slack_message_spec.rb
+2
-4
spec/models/ci/project_services/slack_service_spec.rb
spec/models/ci/project_services/slack_service_spec.rb
+2
-2
spec/models/ci/project_spec.rb
spec/models/ci/project_spec.rb
+30
-19
spec/models/ci/service_spec.rb
spec/models/ci/service_spec.rb
+1
-1
spec/services/ci/register_build_service_spec.rb
spec/services/ci/register_build_service_spec.rb
+3
-1
No files found.
app/models/ci/build.rb
View file @
0e338147
...
@@ -186,7 +186,7 @@ module Ci
...
@@ -186,7 +186,7 @@ module Ci
end
end
def
project_id
def
project_id
commit
.
gl_project
.
gitlab_
id
commit
.
project
.
id
end
end
def
project_name
def
project_name
...
...
app/models/ci/commit.rb
View file @
0e338147
...
@@ -37,8 +37,15 @@ module Ci
...
@@ -37,8 +37,15 @@ module Ci
end
end
def
project
def
project
@project
||=
gl_project
.
gitlab_ci_project
unless
@project
@project
||=
gl_project
.
create_gitlab_ci_project
gl_project
.
ensure_ci_project
@project
=
gl_project
.
gitlab_ci_project
end
@project
end
def
project_id
project
.
id
end
end
def
last_build
def
last_build
...
@@ -116,14 +123,14 @@ module Ci
...
@@ -116,14 +123,14 @@ module Ci
builds_attrs
=
config_processor
.
builds_for_stage_and_ref
(
stage
,
ref
,
tag
)
builds_attrs
=
config_processor
.
builds_for_stage_and_ref
(
stage
,
ref
,
tag
)
builds_attrs
.
map
do
|
build_attrs
|
builds_attrs
.
map
do
|
build_attrs
|
builds
.
create!
({
builds
.
create!
({
name:
build_attrs
[
:name
],
name:
build_attrs
[
:name
],
commands:
build_attrs
[
:script
],
commands:
build_attrs
[
:script
],
tag_list:
build_attrs
[
:tags
],
tag_list:
build_attrs
[
:tags
],
options:
build_attrs
[
:options
],
options:
build_attrs
[
:options
],
allow_failure:
build_attrs
[
:allow_failure
],
allow_failure:
build_attrs
[
:allow_failure
],
stage:
build_attrs
[
:stage
],
stage:
build_attrs
[
:stage
],
trigger_request:
trigger_request
,
trigger_request:
trigger_request
,
})
})
end
end
end
end
...
...
app/models/project.rb
View file @
0e338147
...
@@ -748,6 +748,12 @@ class Project < ActiveRecord::Base
...
@@ -748,6 +748,12 @@ class Project < ActiveRecord::Base
gitlab_ci_project
.
commits
.
find_by
(
sha:
sha
)
if
gitlab_ci?
gitlab_ci_project
.
commits
.
find_by
(
sha:
sha
)
if
gitlab_ci?
end
end
def
ensure_ci_project
unless
gitlab_ci_project
create_gitlab_ci_project
end
end
def
enable_ci
(
user
)
def
enable_ci
(
user
)
# Enable service
# Enable service
service
=
gitlab_ci_service
||
create_gitlab_ci_service
service
=
gitlab_ci_service
||
create_gitlab_ci_service
...
...
spec/models/ci/commit_spec.rb
View file @
0e338147
...
@@ -18,11 +18,13 @@
...
@@ -18,11 +18,13 @@
require
'spec_helper'
require
'spec_helper'
describe
Ci
::
Commit
do
describe
Ci
::
Commit
do
let
(
:commit
)
{
FactoryGirl
.
create
:ci_commit
}
let
(
:project
)
{
FactoryGirl
.
create
:ci_project
}
let
(
:commit_with_project
)
{
FactoryGirl
.
create
:ci_commit
}
let
(
:gl_project
)
{
FactoryGirl
.
create
:empty_project
,
gitlab_ci_project:
project
}
let
(
:commit
)
{
FactoryGirl
.
create
:ci_commit
,
gl_project:
gl_project
}
let
(
:commit_with_project
)
{
FactoryGirl
.
create
:ci_commit
,
gl_project:
gl_project
}
let
(
:config_processor
)
{
Ci
::
GitlabCiYamlProcessor
.
new
(
gitlab_ci_yaml
)
}
let
(
:config_processor
)
{
Ci
::
GitlabCiYamlProcessor
.
new
(
gitlab_ci_yaml
)
}
it
{
is_expected
.
to
belong_to
(
:project
)
}
it
{
is_expected
.
to
belong_to
(
:
gl_
project
)
}
it
{
is_expected
.
to
have_many
(
:builds
)
}
it
{
is_expected
.
to
have_many
(
:builds
)
}
it
{
is_expected
.
to
validate_presence_of
:before_sha
}
it
{
is_expected
.
to
validate_presence_of
:before_sha
}
it
{
is_expected
.
to
validate_presence_of
:sha
}
it
{
is_expected
.
to
validate_presence_of
:sha
}
...
@@ -87,7 +89,7 @@ describe Ci::Commit do
...
@@ -87,7 +89,7 @@ describe Ci::Commit do
email_add_pusher:
false
,
email_add_pusher:
false
,
email_recipients:
'rec1 rec2'
email_recipients:
'rec1 rec2'
gl_project
=
FactoryGirl
.
create
:empty_project
,
gitlab_ci_project:
project
gl_project
=
FactoryGirl
.
create
:empty_project
,
gitlab_ci_project:
project
commit
=
FactoryGirl
.
create
:ci_commit
,
project:
gl_project
commit
=
FactoryGirl
.
create
:ci_commit
,
gl_
project:
gl_project
expect
(
commit
.
project_recipients
).
to
eq
([
'rec1'
,
'rec2'
])
expect
(
commit
.
project_recipients
).
to
eq
([
'rec1'
,
'rec2'
])
end
end
...
@@ -96,7 +98,7 @@ describe Ci::Commit do
...
@@ -96,7 +98,7 @@ describe Ci::Commit do
email_add_pusher:
true
,
email_add_pusher:
true
,
email_recipients:
'rec1 rec1 rec2'
email_recipients:
'rec1 rec1 rec2'
gl_project
=
FactoryGirl
.
create
:empty_project
,
gitlab_ci_project:
project
gl_project
=
FactoryGirl
.
create
:empty_project
,
gitlab_ci_project:
project
commit
=
FactoryGirl
.
create
:ci_commit
,
project:
gl_project
commit
=
FactoryGirl
.
create
:ci_commit
,
gl_
project:
gl_project
expected
=
'rec2'
expected
=
'rec2'
allow
(
commit
).
to
receive
(
:push_data
)
{
{
user_email:
expected
}
}
allow
(
commit
).
to
receive
(
:push_data
)
{
{
user_email:
expected
}
}
expect
(
commit
.
project_recipients
).
to
eq
([
'rec1'
,
'rec2'
])
expect
(
commit
.
project_recipients
).
to
eq
([
'rec1'
,
'rec2'
])
...
...
spec/models/ci/project_services/hip_chat_message_spec.rb
View file @
0e338147
...
@@ -3,10 +3,8 @@ require 'spec_helper'
...
@@ -3,10 +3,8 @@ require 'spec_helper'
describe
Ci
::
HipChatMessage
do
describe
Ci
::
HipChatMessage
do
subject
{
Ci
::
HipChatMessage
.
new
(
build
)
}
subject
{
Ci
::
HipChatMessage
.
new
(
build
)
}
let
(
:project
)
{
FactoryGirl
.
create
(
:ci_project
)
}
context
"One build"
do
context
"One build"
do
let
(
:commit
)
{
FactoryGirl
.
create
(
:ci_commit_with_one_job
,
project:
project
)
}
let
(
:commit
)
{
FactoryGirl
.
create
(
:ci_commit_with_one_job
)
}
let
(
:build
)
do
let
(
:build
)
do
commit
.
create_builds
commit
.
create_builds
...
@@ -37,7 +35,7 @@ describe Ci::HipChatMessage do
...
@@ -37,7 +35,7 @@ describe Ci::HipChatMessage do
end
end
context
"Several builds"
do
context
"Several builds"
do
let
(
:commit
)
{
FactoryGirl
.
create
(
:ci_commit_with_two_jobs
,
project:
project
)
}
let
(
:commit
)
{
FactoryGirl
.
create
(
:ci_commit_with_two_jobs
)
}
let
(
:build
)
do
let
(
:build
)
do
commit
.
builds
.
first
commit
.
builds
.
first
...
...
spec/models/ci/project_services/hip_chat_service_spec.rb
View file @
0e338147
...
@@ -39,8 +39,8 @@ describe Ci::HipChatService do
...
@@ -39,8 +39,8 @@ describe Ci::HipChatService do
before
do
before
do
allow
(
service
).
to
receive_messages
(
allow
(
service
).
to
receive_messages
(
project:
project
,
project:
commit
.
project
,
project_id:
project
.
id
,
project_id:
commit
.
project_
id
,
notify_only_broken_builds:
false
,
notify_only_broken_builds:
false
,
hipchat_room:
123
,
hipchat_room:
123
,
hipchat_token:
'a1b2c3d4e5f6'
hipchat_token:
'a1b2c3d4e5f6'
...
...
spec/models/ci/project_services/slack_message_spec.rb
View file @
0e338147
...
@@ -3,10 +3,8 @@ require 'spec_helper'
...
@@ -3,10 +3,8 @@ require 'spec_helper'
describe
Ci
::
SlackMessage
do
describe
Ci
::
SlackMessage
do
subject
{
Ci
::
SlackMessage
.
new
(
commit
)
}
subject
{
Ci
::
SlackMessage
.
new
(
commit
)
}
let
(
:project
)
{
FactoryGirl
.
create
:ci_project
}
context
"One build"
do
context
"One build"
do
let
(
:commit
)
{
FactoryGirl
.
create
(
:ci_commit_with_one_job
,
project:
project
)
}
let
(
:commit
)
{
FactoryGirl
.
create
(
:ci_commit_with_one_job
)
}
let
(
:build
)
do
let
(
:build
)
do
commit
.
create_builds
commit
.
create_builds
...
@@ -43,7 +41,7 @@ describe Ci::SlackMessage do
...
@@ -43,7 +41,7 @@ describe Ci::SlackMessage do
end
end
context
"Several builds"
do
context
"Several builds"
do
let
(
:commit
)
{
FactoryGirl
.
create
(
:ci_commit_with_two_jobs
,
project:
project
)
}
let
(
:commit
)
{
FactoryGirl
.
create
(
:ci_commit_with_two_jobs
)
}
context
'when all matrix builds succeeded'
do
context
'when all matrix builds succeeded'
do
let
(
:color
)
{
'good'
}
let
(
:color
)
{
'good'
}
...
...
spec/models/ci/project_services/slack_service_spec.rb
View file @
0e338147
...
@@ -38,8 +38,8 @@ describe Ci::SlackService do
...
@@ -38,8 +38,8 @@ describe Ci::SlackService do
before
do
before
do
allow
(
slack
).
to
receive_messages
(
allow
(
slack
).
to
receive_messages
(
project:
project
,
project:
commit
.
project
,
project_id:
project
.
id
,
project_id:
commit
.
project_
id
,
webhook:
webhook_url
,
webhook:
webhook_url
,
notify_only_broken_builds:
notify_only_broken_builds
notify_only_broken_builds:
notify_only_broken_builds
)
)
...
...
spec/models/ci/project_spec.rb
View file @
0e338147
...
@@ -28,9 +28,17 @@
...
@@ -28,9 +28,17 @@
require
'spec_helper'
require
'spec_helper'
describe
Ci
::
Project
do
describe
Ci
::
Project
do
let
(
:gl_project
)
{
FactoryGirl
.
create
:empty_project
,
gitlab_ci_project:
project
}
let
(
:gl_project
)
{
}
subject
{
FactoryGirl
.
build
:ci_project
}
subject
{
FactoryGirl
.
build
:ci_project
}
it
{
is_expected
.
to
have_many
(
:commits
)
}
it
{
is_expected
.
to
have_many
(
:runner_projects
)
}
it
{
is_expected
.
to
have_many
(
:runners
)
}
it
{
is_expected
.
to
have_many
(
:web_hooks
)
}
it
{
is_expected
.
to
have_many
(
:events
)
}
it
{
is_expected
.
to
have_many
(
:variables
)
}
it
{
is_expected
.
to
have_many
(
:triggers
)
}
it
{
is_expected
.
to
have_many
(
:services
)
}
it
{
is_expected
.
to
validate_presence_of
:name
}
it
{
is_expected
.
to
validate_presence_of
:name
}
it
{
is_expected
.
to
validate_presence_of
:timeout
}
it
{
is_expected
.
to
validate_presence_of
:timeout
}
...
@@ -50,41 +58,44 @@ describe Ci::Project do
...
@@ -50,41 +58,44 @@ describe Ci::Project do
describe
"ordered_by_last_commit_date"
do
describe
"ordered_by_last_commit_date"
do
it
"returns ordered projects"
do
it
"returns ordered projects"
do
newest_project
=
FactoryGirl
.
create
:ci_project
newest_project
=
FactoryGirl
.
create
:empty_project
oldest_project
=
FactoryGirl
.
create
:ci_project
newest_project
.
ensure_ci_project
project_without_commits
=
FactoryGirl
.
create
:ci_project
oldest_project
=
FactoryGirl
.
create
:empty_project
oldest_project
.
ensure_ci_project
project_without_commits
=
FactoryGirl
.
create
:empty_project
project_without_commits
.
ensure_ci_project
FactoryGirl
.
create
:ci_commit
,
committed_at:
1
.
hour
.
ago
,
project:
newest_project
FactoryGirl
.
create
:ci_commit
,
committed_at:
1
.
hour
.
ago
,
gl_
project:
newest_project
FactoryGirl
.
create
:ci_commit
,
committed_at:
2
.
hour
.
ago
,
project:
oldest_project
FactoryGirl
.
create
:ci_commit
,
committed_at:
2
.
hour
.
ago
,
gl_
project:
oldest_project
expect
(
Ci
::
Project
.
ordered_by_last_commit_date
).
to
eq
([
newest_project
,
oldest_project
,
project_without_commits
])
expect
(
Ci
::
Project
.
ordered_by_last_commit_date
).
to
eq
([
newest_project
.
gitlab_ci_project
,
oldest_project
.
gitlab_ci_project
,
project_without_commits
.
gitlab_ci_project
])
end
end
end
end
describe
'ordered commits'
do
describe
'ordered commits'
do
let
(
:project
)
{
FactoryGirl
.
create
:
ci
_project
}
let
(
:project
)
{
FactoryGirl
.
create
:
empty
_project
}
it
'returns ordered list of commits'
do
it
'returns ordered list of commits'
do
commit1
=
FactoryGirl
.
create
:ci_commit
,
committed_at:
1
.
hour
.
ago
,
project:
project
commit1
=
FactoryGirl
.
create
:ci_commit
,
committed_at:
1
.
hour
.
ago
,
gl_
project:
project
commit2
=
FactoryGirl
.
create
:ci_commit
,
committed_at:
2
.
hour
.
ago
,
project:
project
commit2
=
FactoryGirl
.
create
:ci_commit
,
committed_at:
2
.
hour
.
ago
,
gl_
project:
project
expect
(
project
.
commits
).
to
eq
([
commit2
,
commit1
])
expect
(
project
.
commits
).
to
eq
([
commit2
.
project
,
commit1
.
project
])
end
end
it
'returns commits ordered by committed_at and id, with nulls last'
do
it
'returns commits ordered by committed_at and id, with nulls last'
do
commit1
=
FactoryGirl
.
create
:ci_commit
,
committed_at:
1
.
hour
.
ago
,
project:
project
commit1
=
FactoryGirl
.
create
:ci_commit
,
committed_at:
1
.
hour
.
ago
,
gl_
project:
project
commit2
=
FactoryGirl
.
create
:ci_commit
,
committed_at:
nil
,
project:
project
commit2
=
FactoryGirl
.
create
:ci_commit
,
committed_at:
nil
,
gl_
project:
project
commit3
=
FactoryGirl
.
create
:ci_commit
,
committed_at:
2
.
hour
.
ago
,
project:
project
commit3
=
FactoryGirl
.
create
:ci_commit
,
committed_at:
2
.
hour
.
ago
,
gl_
project:
project
commit4
=
FactoryGirl
.
create
:ci_commit
,
committed_at:
nil
,
project:
project
commit4
=
FactoryGirl
.
create
:ci_commit
,
committed_at:
nil
,
gl_
project:
project
expect
(
project
.
commits
).
to
eq
([
commit2
,
commit4
,
commit3
,
commit1
])
expect
(
project
.
commits
).
to
eq
([
commit2
.
project
,
commit4
.
project
,
commit3
.
project
,
commit1
.
project
])
end
end
end
end
context
:valid_project
do
context
:valid_project
do
let
(
:project
)
{
FactoryGirl
.
create
:ci_project
}
let
(
:commit
)
{
FactoryGirl
.
create
(
:ci_commit
)
}
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
context
:project_with_commit_and_builds
do
let
(
:project
)
{
commit
.
project
}
before
do
before
do
FactoryGirl
.
create
(
:ci_build
,
commit:
commit
)
FactoryGirl
.
create
(
:ci_build
,
commit:
commit
)
end
end
...
...
spec/models/ci/service_spec.rb
View file @
0e338147
...
@@ -34,7 +34,7 @@ describe Ci::Service do
...
@@ -34,7 +34,7 @@ describe Ci::Service do
before
do
before
do
allow
(
@service
).
to
receive_messages
(
allow
(
@service
).
to
receive_messages
(
project:
project
project:
commit
.
project
)
)
build
build
@testable
=
@service
.
can_test?
@testable
=
@service
.
can_test?
...
...
spec/services/ci/register_build_service_spec.rb
View file @
0e338147
...
@@ -3,7 +3,9 @@ require 'spec_helper'
...
@@ -3,7 +3,9 @@ require 'spec_helper'
module
Ci
module
Ci
describe
RegisterBuildService
do
describe
RegisterBuildService
do
let!
(
:service
)
{
RegisterBuildService
.
new
}
let!
(
:service
)
{
RegisterBuildService
.
new
}
let!
(
:commit
)
{
FactoryGirl
.
create
:ci_commit
}
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
}
let!
(
:pending_build
)
{
FactoryGirl
.
create
:ci_build
,
commit:
commit
}
let!
(
:pending_build
)
{
FactoryGirl
.
create
:ci_build
,
commit:
commit
}
let!
(
:shared_runner
)
{
FactoryGirl
.
create
(
:ci_runner
,
is_shared:
true
)
}
let!
(
:shared_runner
)
{
FactoryGirl
.
create
(
:ci_runner
,
is_shared:
true
)
}
let!
(
:specific_runner
)
{
FactoryGirl
.
create
(
:ci_runner
,
is_shared:
false
)
}
let!
(
:specific_runner
)
{
FactoryGirl
.
create
(
:ci_runner
,
is_shared:
false
)
}
...
...
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