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
2d8e027f
Commit
2d8e027f
authored
Apr 10, 2018
by
GitLab Bot
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'upstream/master' into ce-to-ee-2018-04-10
parents
e20ca10a
37a56324
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
97 additions
and
90 deletions
+97
-90
Gemfile.rails5.lock
Gemfile.rails5.lock
+5
-1
app/assets/javascripts/pipelines/components/stage.vue
app/assets/javascripts/pipelines/components/stage.vue
+8
-10
bin/spinach
bin/spinach
+5
-0
db/fixtures/development/01_admin.rb
db/fixtures/development/01_admin.rb
+10
-10
spec/javascripts/pipelines/stage_spec.js
spec/javascripts/pipelines/stage_spec.js
+27
-58
vendor/gitlab-ci-yml/Auto-DevOps.gitlab-ci.yml
vendor/gitlab-ci-yml/Auto-DevOps.gitlab-ci.yml
+42
-11
No files found.
Gemfile.rails5.lock
View file @
2d8e027f
...
@@ -321,6 +321,9 @@ GEM
...
@@ -321,6 +321,9 @@ GEM
rubyntlm (~> 0.5)
rubyntlm (~> 0.5)
globalid (0.4.1)
globalid (0.4.1)
activesupport (>= 4.2.0)
activesupport (>= 4.2.0)
goldiloader (2.0.1)
activerecord (>= 4.2, < 5.2)
activesupport (>= 4.2, < 5.2)
gollum-grit_adapter (1.0.1)
gollum-grit_adapter (1.0.1)
gitlab-grit (~> 2.7, >= 2.7.1)
gitlab-grit (~> 2.7, >= 2.7.1)
gollum-lib (4.2.7)
gollum-lib (4.2.7)
...
@@ -878,7 +881,7 @@ GEM
...
@@ -878,7 +881,7 @@ GEM
simplecov-html (~> 0.10.0)
simplecov-html (~> 0.10.0)
simplecov-html (0.10.2)
simplecov-html (0.10.2)
slack-notifier (1.5.1)
slack-notifier (1.5.1)
spinach (0.
10.1
)
spinach (0.
8.10
)
colorize
colorize
gherkin-ruby (>= 0.3.2)
gherkin-ruby (>= 0.3.2)
json
json
...
@@ -1072,6 +1075,7 @@ DEPENDENCIES
...
@@ -1072,6 +1075,7 @@ DEPENDENCIES
gitlab-markup (~> 1.6.2)
gitlab-markup (~> 1.6.2)
gitlab-styles (~> 2.3)
gitlab-styles (~> 2.3)
gitlab_omniauth-ldap (~> 2.0.4)
gitlab_omniauth-ldap (~> 2.0.4)
goldiloader (~> 2.0)
gollum-lib (~> 4.2)
gollum-lib (~> 4.2)
gollum-rugged_adapter (~> 0.4.4)
gollum-rugged_adapter (~> 0.4.4)
gon (~> 6.1.0)
gon (~> 6.1.0)
...
...
app/assets/javascripts/pipelines/components/stage.vue
View file @
2d8e027f
...
@@ -13,16 +13,16 @@
...
@@ -13,16 +13,16 @@
* 3. Merge request widget
* 3. Merge request widget
* 4. Commit widget
* 4. Commit widget
*/
*/
import
axios
from
'
../../lib/utils/axios_utils
'
;
import
Flash
from
'
../../flash
'
;
import
Flash
from
'
../../flash
'
;
import
i
con
from
'
../../vue_shared/components/icon.vue
'
;
import
I
con
from
'
../../vue_shared/components/icon.vue
'
;
import
l
oadingIcon
from
'
../../vue_shared/components/loading_icon.vue
'
;
import
L
oadingIcon
from
'
../../vue_shared/components/loading_icon.vue
'
;
import
tooltip
from
'
../../vue_shared/directives/tooltip
'
;
import
tooltip
from
'
../../vue_shared/directives/tooltip
'
;
export
default
{
export
default
{
components
:
{
components
:
{
l
oadingIcon
,
L
oadingIcon
,
i
con
,
I
con
,
},
},
directives
:
{
directives
:
{
...
@@ -88,9 +88,8 @@
...
@@ -88,9 +88,8 @@
},
},
fetchJobs
()
{
fetchJobs
()
{
this
.
$http
.
get
(
this
.
stage
.
dropdown_path
)
axios
.
get
(
this
.
stage
.
dropdown_path
)
.
then
(
response
=>
response
.
json
())
.
then
(({
data
})
=>
{
.
then
((
data
)
=>
{
this
.
dropdownContent
=
data
.
html
;
this
.
dropdownContent
=
data
.
html
;
this
.
isLoading
=
false
;
this
.
isLoading
=
false
;
})
})
...
@@ -98,8 +97,7 @@
...
@@ -98,8 +97,7 @@
this
.
closeDropdown
();
this
.
closeDropdown
();
this
.
isLoading
=
false
;
this
.
isLoading
=
false
;
const
flash
=
new
Flash
(
'
Something went wrong on our end.
'
);
Flash
(
'
Something went wrong on our end.
'
);
return
flash
;
});
});
},
},
...
...
bin/spinach
View file @
2d8e027f
#!/usr/bin/env ruby
#!/usr/bin/env ruby
# Remove this block when removing rails5? code.
gemfile
=
%w[1 true]
.
include?
(
ENV
[
"RAILS5"
])
?
"Gemfile.rails5"
:
"Gemfile"
ENV
[
'BUNDLE_GEMFILE'
]
||=
File
.
expand_path
(
"../
#{
gemfile
}
"
,
__dir__
)
begin
begin
load
File
.
expand_path
(
'../spring'
,
__FILE__
)
load
File
.
expand_path
(
'../spring'
,
__FILE__
)
rescue
LoadError
=>
e
rescue
LoadError
=>
e
...
...
db/fixtures/development/01_admin.rb
View file @
2d8e027f
require
'./spec/support/sidekiq'
require
'./spec/support/sidekiq'
Gitlab
::
Seeder
.
quiet
do
Gitlab
::
Seeder
.
quiet
do
User
.
seed
do
|
s
|
User
.
create!
(
s
.
id
=
1
name:
'Administrator'
,
s
.
name
=
'Administrator'
email:
'admin@example.com'
,
s
.
email
=
'admin@example.com'
username:
'root'
,
s
.
notification_email
=
'admin@example.com'
password:
'5iveL!fe'
,
s
.
username
=
'root'
admin:
true
,
s
.
password
=
'5iveL!fe'
confirmed_at:
DateTime
.
now
s
.
admin
=
true
)
s
.
confirmed_at
=
DateTime
.
now
end
print
'.'
end
end
spec/javascripts/pipelines/stage_spec.js
View file @
2d8e027f
import
_
from
'
underscore
'
;
import
Vue
from
'
vue
'
;
import
Vue
from
'
vue
'
;
import
MockAdapter
from
'
axios-mock-adapter
'
;
import
axios
from
'
~/lib/utils/axios_utils
'
;
import
stage
from
'
~/pipelines/components/stage.vue
'
;
import
stage
from
'
~/pipelines/components/stage.vue
'
;
import
mountComponent
from
'
spec/helpers/vue_mount_component_helper
'
;
describe
(
'
Pipelines stage component
'
,
()
=>
{
describe
(
'
Pipelines stage component
'
,
()
=>
{
let
StageComponent
;
let
StageComponent
;
let
component
;
let
component
;
let
mock
;
beforeEach
(()
=>
{
beforeEach
(()
=>
{
mock
=
new
MockAdapter
(
axios
);
StageComponent
=
Vue
.
extend
(
stage
);
StageComponent
=
Vue
.
extend
(
stage
);
component
=
new
StageComponent
({
component
=
mountComponent
(
StageComponent
,
{
propsData
:
{
stage
:
{
stage
:
{
status
:
{
status
:
{
group
:
'
success
'
,
group
:
'
success
'
,
icon
:
'
icon_status_success
'
,
icon
:
'
icon_status_success
'
,
title
:
'
success
'
,
title
:
'
success
'
,
},
},
dropdown_path
:
'
foo
'
,
dropdown_path
:
'
path.json
'
,
},
},
updateDropdown
:
false
,
updateDropdown
:
false
,
},
});
}).
$mount
();
});
afterEach
(()
=>
{
component
.
$destroy
();
mock
.
restore
();
});
});
it
(
'
should render a dropdown with the status icon
'
,
()
=>
{
it
(
'
should render a dropdown with the status icon
'
,
()
=>
{
...
@@ -31,23 +39,11 @@ describe('Pipelines stage component', () => {
...
@@ -31,23 +39,11 @@ describe('Pipelines stage component', () => {
});
});
describe
(
'
with successfull request
'
,
()
=>
{
describe
(
'
with successfull request
'
,
()
=>
{
const
interceptor
=
(
request
,
next
)
=>
{
next
(
request
.
respondWith
(
JSON
.
stringify
({
html
:
'
foo
'
}),
{
status
:
200
,
}));
};
beforeEach
(()
=>
{
beforeEach
(()
=>
{
Vue
.
http
.
interceptors
.
push
(
interceptor
);
mock
.
onGet
(
'
path.json
'
).
reply
(
200
,
{
html
:
'
foo
'
});
});
afterEach
(()
=>
{
Vue
.
http
.
interceptors
=
_
.
without
(
Vue
.
http
.
interceptors
,
interceptor
,
);
});
});
it
(
'
should render the received data
'
,
(
done
)
=>
{
it
(
'
should render the received data
'
,
done
=>
{
component
.
$el
.
querySelector
(
'
button
'
).
click
();
component
.
$el
.
querySelector
(
'
button
'
).
click
();
setTimeout
(()
=>
{
setTimeout
(()
=>
{
...
@@ -60,20 +56,8 @@ describe('Pipelines stage component', () => {
...
@@ -60,20 +56,8 @@ describe('Pipelines stage component', () => {
});
});
describe
(
'
when request fails
'
,
()
=>
{
describe
(
'
when request fails
'
,
()
=>
{
const
interceptor
=
(
request
,
next
)
=>
{
next
(
request
.
respondWith
(
JSON
.
stringify
({}),
{
status
:
500
,
}));
};
beforeEach
(()
=>
{
beforeEach
(()
=>
{
Vue
.
http
.
interceptors
.
push
(
interceptor
);
mock
.
onGet
(
'
path.json
'
).
reply
(
500
);
});
afterEach
(()
=>
{
Vue
.
http
.
interceptors
=
_
.
without
(
Vue
.
http
.
interceptors
,
interceptor
,
);
});
});
it
(
'
should close the dropdown
'
,
()
=>
{
it
(
'
should close the dropdown
'
,
()
=>
{
...
@@ -86,33 +70,18 @@ describe('Pipelines stage component', () => {
...
@@ -86,33 +70,18 @@ describe('Pipelines stage component', () => {
});
});
describe
(
'
update endpoint correctly
'
,
()
=>
{
describe
(
'
update endpoint correctly
'
,
()
=>
{
const
updatedInterceptor
=
(
request
,
next
)
=>
{
if
(
request
.
url
===
'
bar
'
)
{
next
(
request
.
respondWith
(
JSON
.
stringify
({
html
:
'
this is the updated content
'
}),
{
status
:
200
,
}));
}
next
();
};
beforeEach
(()
=>
{
beforeEach
(()
=>
{
Vue
.
http
.
interceptors
.
push
(
updatedInterceptor
);
mock
.
onGet
(
'
bar.json
'
).
reply
(
200
,
{
html
:
'
this is the updated content
'
});
});
afterEach
(()
=>
{
Vue
.
http
.
interceptors
=
_
.
without
(
Vue
.
http
.
interceptors
,
updatedInterceptor
,
);
});
});
it
(
'
should update the stage to request the new endpoint provided
'
,
(
done
)
=>
{
it
(
'
should update the stage to request the new endpoint provided
'
,
done
=>
{
component
.
stage
=
{
component
.
stage
=
{
status
:
{
status
:
{
group
:
'
running
'
,
group
:
'
running
'
,
icon
:
'
running
'
,
icon
:
'
running
'
,
title
:
'
running
'
,
title
:
'
running
'
,
},
},
dropdown_path
:
'
bar
'
,
dropdown_path
:
'
bar
.json
'
,
};
};
Vue
.
nextTick
(()
=>
{
Vue
.
nextTick
(()
=>
{
...
...
vendor/gitlab-ci-yml/Auto-DevOps.gitlab-ci.yml
View file @
2d8e027f
...
@@ -50,9 +50,9 @@ stages:
...
@@ -50,9 +50,9 @@ stages:
build
:
build
:
stage
:
build
stage
:
build
image
:
docker:git
image
:
docker:
stable-
git
services
:
services
:
-
docker:dind
-
docker:
stable-
dind
variables
:
variables
:
DOCKER_DRIVER
:
overlay2
DOCKER_DRIVER
:
overlay2
script
:
script
:
...
@@ -76,12 +76,12 @@ test:
...
@@ -76,12 +76,12 @@ test:
-
branches
-
branches
codequality
:
codequality
:
image
:
docker:
latest
image
:
docker:
stable
variables
:
variables
:
DOCKER_DRIVER
:
overlay2
DOCKER_DRIVER
:
overlay2
allow_failure
:
true
allow_failure
:
true
services
:
services
:
-
docker:dind
-
docker:
stable-
dind
script
:
script
:
-
setup_docker
-
setup_docker
-
codeclimate
-
codeclimate
...
@@ -90,12 +90,12 @@ codequality:
...
@@ -90,12 +90,12 @@ codequality:
performance
:
performance
:
stage
:
performance
stage
:
performance
image
:
docker:
latest
image
:
docker:
stable
variables
:
variables
:
DOCKER_DRIVER
:
overlay2
DOCKER_DRIVER
:
overlay2
allow_failure
:
true
allow_failure
:
true
services
:
services
:
-
docker:dind
-
docker:
stable-
dind
script
:
script
:
-
setup_docker
-
setup_docker
-
performance
-
performance
...
@@ -109,25 +109,37 @@ performance:
...
@@ -109,25 +109,37 @@ performance:
kubernetes
:
active
kubernetes
:
active
sast
:
sast
:
image
:
docker:
latest
image
:
docker:
stable
variables
:
variables
:
DOCKER_DRIVER
:
overlay2
DOCKER_DRIVER
:
overlay2
allow_failure
:
true
allow_failure
:
true
services
:
services
:
-
docker:dind
-
docker:
stable-
dind
script
:
script
:
-
setup_docker
-
setup_docker
-
sast
-
sast
artifacts
:
artifacts
:
paths
:
[
gl-sast-report.json
]
paths
:
[
gl-sast-report.json
]
dependency_scanning
:
image
:
docker:stable
variables
:
DOCKER_DRIVER
:
overlay2
allow_failure
:
true
services
:
-
docker:stable-dind
script
:
-
setup_docker
-
dependency_scanning
artifacts
:
paths
:
[
gl-dependency-scanning-report.json
]
sast:container:
sast:container:
image
:
docker:
latest
image
:
docker:
stable
variables
:
variables
:
DOCKER_DRIVER
:
overlay2
DOCKER_DRIVER
:
overlay2
allow_failure
:
true
allow_failure
:
true
services
:
services
:
-
docker:dind
-
docker:
stable-
dind
script
:
script
:
-
setup_docker
-
setup_docker
-
sast_container
-
sast_container
...
@@ -324,7 +336,6 @@ production:
...
@@ -324,7 +336,6 @@ production:
fi
fi
docker run --env SAST_CONFIDENCE_LEVEL="${SAST_CONFIDENCE_LEVEL:-3}" \
docker run --env SAST_CONFIDENCE_LEVEL="${SAST_CONFIDENCE_LEVEL:-3}" \
--env SAST_DISABLE_REMOTE_CHECKS="${SAST_DISABLE_REMOTE_CHECKS:-false}" \
--volume "$PWD:/code" \
--volume "$PWD:/code" \
--volume /var/run/docker.sock:/var/run/docker.sock \
--volume /var/run/docker.sock:/var/run/docker.sock \
"registry.gitlab.com/gitlab-org/security-products/sast:$SP_VERSION" /app/bin/run /code
"registry.gitlab.com/gitlab-org/security-products/sast:$SP_VERSION" /app/bin/run /code
...
@@ -335,6 +346,20 @@ production:
...
@@ -335,6 +346,20 @@ production:
esac
esac
}
}
function dependency_scanning() {
case "$CI_SERVER_VERSION" in
*-ee)
docker run --env DEP_SCAN_DISABLE_REMOTE_CHECKS="${DEP_SCAN_DISABLE_REMOTE_CHECKS:-false}" \
--volume "$PWD:/code" \
--volume /var/run/docker.sock:/var/run/docker.sock \
"registry.gitlab.com/gitlab-org/security-products/dependency-scanning:$SP_VERSION" /code
;;
*)
echo "GitLab EE is required"
;;
esac
}
function deploy() {
function deploy() {
track="${1-stable}"
track="${1-stable}"
name="$CI_ENVIRONMENT_SLUG"
name="$CI_ENVIRONMENT_SLUG"
...
@@ -355,10 +380,16 @@ production:
...
@@ -355,10 +380,16 @@ production:
if [[ "$track" == "stable" ]]; then
if [[ "$track" == "stable" ]]; then
# for stable track get number of replicas from `PRODUCTION_REPLICAS`
# for stable track get number of replicas from `PRODUCTION_REPLICAS`
eval new_replicas=\$${env_slug}_REPLICAS
eval new_replicas=\$${env_slug}_REPLICAS
if [[ -z "$new_replicas" ]]; then
new_replicas=$REPLICAS
fi
service_enabled="true"
service_enabled="true"
else
else
# for all tracks get number of replicas from `CANARY_PRODUCTION_REPLICAS`
# for all tracks get number of replicas from `CANARY_PRODUCTION_REPLICAS`
eval new_replicas=\$${env_track}_${env_slug}_REPLICAS
eval new_replicas=\$${env_track}_${env_slug}_REPLICAS
if [[ -z "$new_replicas" ]]; then
eval new_replicas=\${env_track}_REPLICAS
fi
fi
fi
if [[ -n "$new_replicas" ]]; then
if [[ -n "$new_replicas" ]]; then
replicas="$new_replicas"
replicas="$new_replicas"
...
...
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