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
0
Merge Requests
0
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
Boxiang Sun
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
end
def
project_id
commit
.
gl_project
.
gitlab_
id
commit
.
project
.
id
end
def
project_name
...
...
app/models/ci/commit.rb
View file @
0e338147
...
...
@@ -37,8 +37,15 @@ module Ci
end
def
project
@project
||=
gl_project
.
gitlab_ci_project
@project
||=
gl_project
.
create_gitlab_ci_project
unless
@project
gl_project
.
ensure_ci_project
@project
=
gl_project
.
gitlab_ci_project
end
@project
end
def
project_id
project
.
id
end
def
last_build
...
...
@@ -116,14 +123,14 @@ module Ci
builds_attrs
=
config_processor
.
builds_for_stage_and_ref
(
stage
,
ref
,
tag
)
builds_attrs
.
map
do
|
build_attrs
|
builds
.
create!
({
name:
build_attrs
[
:name
],
commands:
build_attrs
[
:script
],
tag_list:
build_attrs
[
:tags
],
options:
build_attrs
[
:options
],
allow_failure:
build_attrs
[
:allow_failure
],
stage:
build_attrs
[
:stage
],
trigger_request:
trigger_request
,
})
name:
build_attrs
[
:name
],
commands:
build_attrs
[
:script
],
tag_list:
build_attrs
[
:tags
],
options:
build_attrs
[
:options
],
allow_failure:
build_attrs
[
:allow_failure
],
stage:
build_attrs
[
:stage
],
trigger_request:
trigger_request
,
})
end
end
...
...
app/models/project.rb
View file @
0e338147
...
...
@@ -748,6 +748,12 @@ class Project < ActiveRecord::Base
gitlab_ci_project
.
commits
.
find_by
(
sha:
sha
)
if
gitlab_ci?
end
def
ensure_ci_project
unless
gitlab_ci_project
create_gitlab_ci_project
end
end
def
enable_ci
(
user
)
# Enable service
service
=
gitlab_ci_service
||
create_gitlab_ci_service
...
...
spec/models/ci/commit_spec.rb
View file @
0e338147
...
...
@@ -18,11 +18,13 @@
require
'spec_helper'
describe
Ci
::
Commit
do
let
(
:commit
)
{
FactoryGirl
.
create
:ci_commit
}
let
(
:commit_with_project
)
{
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
(
:commit_with_project
)
{
FactoryGirl
.
create
:ci_commit
,
gl_project:
gl_project
}
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
validate_presence_of
:before_sha
}
it
{
is_expected
.
to
validate_presence_of
:sha
}
...
...
@@ -87,7 +89,7 @@ describe Ci::Commit do
email_add_pusher:
false
,
email_recipients:
'rec1 rec2'
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'
])
end
...
...
@@ -96,7 +98,7 @@ describe Ci::Commit do
email_add_pusher:
true
,
email_recipients:
'rec1 rec1 rec2'
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'
allow
(
commit
).
to
receive
(
:push_data
)
{
{
user_email:
expected
}
}
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'
describe
Ci
::
HipChatMessage
do
subject
{
Ci
::
HipChatMessage
.
new
(
build
)
}
let
(
:project
)
{
FactoryGirl
.
create
(
:ci_project
)
}
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
commit
.
create_builds
...
...
@@ -37,7 +35,7 @@ describe Ci::HipChatMessage do
end
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
commit
.
builds
.
first
...
...
spec/models/ci/project_services/hip_chat_service_spec.rb
View file @
0e338147
...
...
@@ -39,8 +39,8 @@ describe Ci::HipChatService do
before
do
allow
(
service
).
to
receive_messages
(
project:
project
,
project_id:
project
.
id
,
project:
commit
.
project
,
project_id:
commit
.
project_
id
,
notify_only_broken_builds:
false
,
hipchat_room:
123
,
hipchat_token:
'a1b2c3d4e5f6'
...
...
spec/models/ci/project_services/slack_message_spec.rb
View file @
0e338147
...
...
@@ -3,10 +3,8 @@ require 'spec_helper'
describe
Ci
::
SlackMessage
do
subject
{
Ci
::
SlackMessage
.
new
(
commit
)
}
let
(
:project
)
{
FactoryGirl
.
create
:ci_project
}
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
commit
.
create_builds
...
...
@@ -43,7 +41,7 @@ describe Ci::SlackMessage do
end
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
let
(
:color
)
{
'good'
}
...
...
spec/models/ci/project_services/slack_service_spec.rb
View file @
0e338147
...
...
@@ -38,8 +38,8 @@ describe Ci::SlackService do
before
do
allow
(
slack
).
to
receive_messages
(
project:
project
,
project_id:
project
.
id
,
project:
commit
.
project
,
project_id:
commit
.
project_
id
,
webhook:
webhook_url
,
notify_only_broken_builds:
notify_only_broken_builds
)
...
...
spec/models/ci/project_spec.rb
View file @
0e338147
...
...
@@ -28,9 +28,17 @@
require
'spec_helper'
describe
Ci
::
Project
do
let
(
:gl_project
)
{
FactoryGirl
.
create
:empty_project
,
gitlab_ci_project:
project
}
let
(
:gl_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
:timeout
}
...
...
@@ -50,41 +58,44 @@ describe Ci::Project do
describe
"ordered_by_last_commit_date"
do
it
"returns ordered projects"
do
newest_project
=
FactoryGirl
.
create
:ci_project
oldest_project
=
FactoryGirl
.
create
:ci_project
project_without_commits
=
FactoryGirl
.
create
:ci_project
newest_project
=
FactoryGirl
.
create
:empty_project
newest_project
.
ensure_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:
2
.
hour
.
ago
,
project:
oldest_project
FactoryGirl
.
create
:ci_commit
,
committed_at:
1
.
hour
.
ago
,
gl_
project:
newest_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
describe
'ordered commits'
do
let
(
:project
)
{
FactoryGirl
.
create
:
ci
_project
}
let
(
:project
)
{
FactoryGirl
.
create
:
empty
_project
}
it
'returns ordered list of commits'
do
commit1
=
FactoryGirl
.
create
:ci_commit
,
committed_at:
1
.
hour
.
ago
,
project:
project
commit2
=
FactoryGirl
.
create
:ci_commit
,
committed_at:
2
.
hour
.
ago
,
project:
project
expect
(
project
.
commits
).
to
eq
([
commit2
,
commit1
])
commit1
=
FactoryGirl
.
create
:ci_commit
,
committed_at:
1
.
hour
.
ago
,
gl_
project:
project
commit2
=
FactoryGirl
.
create
:ci_commit
,
committed_at:
2
.
hour
.
ago
,
gl_
project:
project
expect
(
project
.
commits
).
to
eq
([
commit2
.
project
,
commit1
.
project
])
end
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
commit2
=
FactoryGirl
.
create
:ci_commit
,
committed_at:
nil
,
project:
project
commit3
=
FactoryGirl
.
create
:ci_commit
,
committed_at:
2
.
hour
.
ago
,
project:
project
commit4
=
FactoryGirl
.
create
:ci_commit
,
committed_at:
nil
,
project:
project
expect
(
project
.
commits
).
to
eq
([
commit2
,
commit4
,
commit3
,
commit1
])
commit1
=
FactoryGirl
.
create
:ci_commit
,
committed_at:
1
.
hour
.
ago
,
gl_
project:
project
commit2
=
FactoryGirl
.
create
:ci_commit
,
committed_at:
nil
,
gl_
project:
project
commit3
=
FactoryGirl
.
create
:ci_commit
,
committed_at:
2
.
hour
.
ago
,
gl_
project:
project
commit4
=
FactoryGirl
.
create
:ci_commit
,
committed_at:
nil
,
gl_
project:
project
expect
(
project
.
commits
).
to
eq
([
commit2
.
project
,
commit4
.
project
,
commit3
.
project
,
commit1
.
project
])
end
end
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
)
}
let
(
:commit
)
{
FactoryGirl
.
create
(
:ci_commit
)
}
context
:project_with_commit_and_builds
do
let
(
:project
)
{
commit
.
project
}
before
do
FactoryGirl
.
create
(
:ci_build
,
commit:
commit
)
end
...
...
spec/models/ci/service_spec.rb
View file @
0e338147
...
...
@@ -34,7 +34,7 @@ describe Ci::Service do
before
do
allow
(
@service
).
to
receive_messages
(
project:
project
project:
commit
.
project
)
build
@testable
=
@service
.
can_test?
...
...
spec/services/ci/register_build_service_spec.rb
View file @
0e338147
...
...
@@ -3,7 +3,9 @@ require 'spec_helper'
module
Ci
describe
RegisterBuildService
do
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!
(
:shared_runner
)
{
FactoryGirl
.
create
(
:ci_runner
,
is_shared:
true
)
}
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