mirror of
https://github.com/wahyd4/gitlabhq.git
synced 2026-08-09 12:46:07 +10:00
Improve design based on review
This commit is contained in:
committed by
Phil Hughes
parent
9281709b41
commit
421be01dab
@@ -360,11 +360,10 @@ module Ci
|
||||
end
|
||||
|
||||
def artifacts_expire_in=(value)
|
||||
if value
|
||||
self.artifacts_expire_at = Time.now + ChronicDuration.parse(value)
|
||||
else
|
||||
self.artifacts_expire_at = nil
|
||||
end
|
||||
self.artifacts_expire_at =
|
||||
if value
|
||||
Time.now + ChronicDuration.parse(value)
|
||||
end
|
||||
end
|
||||
|
||||
def keep_artifacts!
|
||||
|
||||
+264
-264
@@ -21,85 +21,85 @@ Example of response
|
||||
|
||||
```json
|
||||
[
|
||||
{
|
||||
"commit": {
|
||||
"author_email": "admin@example.com",
|
||||
"author_name": "Administrator",
|
||||
"created_at": "2015-12-24T16:51:14.000+01:00",
|
||||
"id": "0ff3ae198f8601a285adcf5c0fff204ee6fba5fd",
|
||||
"message": "Test the CI integration.",
|
||||
"short_id": "0ff3ae19",
|
||||
"title": "Test the CI integration."
|
||||
},
|
||||
"coverage": null,
|
||||
"created_at": "2015-12-24T15:51:21.802Z",
|
||||
"artifacts_file": {
|
||||
"filename": "artifacts.zip",
|
||||
"size": 1000
|
||||
},
|
||||
"finished_at": "2015-12-24T17:54:27.895Z",
|
||||
"id": 7,
|
||||
"name": "teaspoon",
|
||||
"ref": "master",
|
||||
"runner": null,
|
||||
"stage": "test",
|
||||
"started_at": "2015-12-24T17:54:27.722Z",
|
||||
"status": "failed",
|
||||
"tag": false,
|
||||
"user": {
|
||||
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
|
||||
"bio": null,
|
||||
"created_at": "2015-12-21T13:14:24.077Z",
|
||||
"id": 1,
|
||||
"is_admin": true,
|
||||
"linkedin": "",
|
||||
"name": "Administrator",
|
||||
"skype": "",
|
||||
"state": "active",
|
||||
"twitter": "",
|
||||
"username": "root",
|
||||
"web_url": "http://gitlab.dev/u/root",
|
||||
"website_url": ""
|
||||
}
|
||||
{
|
||||
"commit": {
|
||||
"author_email": "admin@example.com",
|
||||
"author_name": "Administrator",
|
||||
"created_at": "2015-12-24T16:51:14.000+01:00",
|
||||
"id": "0ff3ae198f8601a285adcf5c0fff204ee6fba5fd",
|
||||
"message": "Test the CI integration.",
|
||||
"short_id": "0ff3ae19",
|
||||
"title": "Test the CI integration."
|
||||
},
|
||||
{
|
||||
"commit": {
|
||||
"author_email": "admin@example.com",
|
||||
"author_name": "Administrator",
|
||||
"created_at": "2015-12-24T16:51:14.000+01:00",
|
||||
"id": "0ff3ae198f8601a285adcf5c0fff204ee6fba5fd",
|
||||
"message": "Test the CI integration.",
|
||||
"short_id": "0ff3ae19",
|
||||
"title": "Test the CI integration."
|
||||
},
|
||||
"coverage": null,
|
||||
"created_at": "2015-12-24T15:51:21.727Z",
|
||||
"artifacts_file": null,
|
||||
"finished_at": "2015-12-24T17:54:24.921Z",
|
||||
"id": 6,
|
||||
"name": "spinach:other",
|
||||
"ref": "master",
|
||||
"runner": null,
|
||||
"stage": "test",
|
||||
"started_at": "2015-12-24T17:54:24.729Z",
|
||||
"status": "failed",
|
||||
"tag": false,
|
||||
"user": {
|
||||
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
|
||||
"bio": null,
|
||||
"created_at": "2015-12-21T13:14:24.077Z",
|
||||
"id": 1,
|
||||
"is_admin": true,
|
||||
"linkedin": "",
|
||||
"name": "Administrator",
|
||||
"skype": "",
|
||||
"state": "active",
|
||||
"twitter": "",
|
||||
"username": "root",
|
||||
"web_url": "http://gitlab.dev/u/root",
|
||||
"website_url": ""
|
||||
}
|
||||
"coverage": null,
|
||||
"created_at": "2015-12-24T15:51:21.802Z",
|
||||
"artifacts_file": {
|
||||
"filename": "artifacts.zip",
|
||||
"size": 1000
|
||||
},
|
||||
"finished_at": "2015-12-24T17:54:27.895Z",
|
||||
"id": 7,
|
||||
"name": "teaspoon",
|
||||
"ref": "master",
|
||||
"runner": null,
|
||||
"stage": "test",
|
||||
"started_at": "2015-12-24T17:54:27.722Z",
|
||||
"status": "failed",
|
||||
"tag": false,
|
||||
"user": {
|
||||
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
|
||||
"bio": null,
|
||||
"created_at": "2015-12-21T13:14:24.077Z",
|
||||
"id": 1,
|
||||
"is_admin": true,
|
||||
"linkedin": "",
|
||||
"name": "Administrator",
|
||||
"skype": "",
|
||||
"state": "active",
|
||||
"twitter": "",
|
||||
"username": "root",
|
||||
"web_url": "http://gitlab.dev/u/root",
|
||||
"website_url": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"commit": {
|
||||
"author_email": "admin@example.com",
|
||||
"author_name": "Administrator",
|
||||
"created_at": "2015-12-24T16:51:14.000+01:00",
|
||||
"id": "0ff3ae198f8601a285adcf5c0fff204ee6fba5fd",
|
||||
"message": "Test the CI integration.",
|
||||
"short_id": "0ff3ae19",
|
||||
"title": "Test the CI integration."
|
||||
},
|
||||
"coverage": null,
|
||||
"created_at": "2015-12-24T15:51:21.727Z",
|
||||
"artifacts_file": null,
|
||||
"finished_at": "2015-12-24T17:54:24.921Z",
|
||||
"id": 6,
|
||||
"name": "spinach:other",
|
||||
"ref": "master",
|
||||
"runner": null,
|
||||
"stage": "test",
|
||||
"started_at": "2015-12-24T17:54:24.729Z",
|
||||
"status": "failed",
|
||||
"tag": false,
|
||||
"user": {
|
||||
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
|
||||
"bio": null,
|
||||
"created_at": "2015-12-21T13:14:24.077Z",
|
||||
"id": 1,
|
||||
"is_admin": true,
|
||||
"linkedin": "",
|
||||
"name": "Administrator",
|
||||
"skype": "",
|
||||
"state": "active",
|
||||
"twitter": "",
|
||||
"username": "root",
|
||||
"web_url": "http://gitlab.dev/u/root",
|
||||
"website_url": ""
|
||||
}
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
@@ -125,68 +125,68 @@ Example of response
|
||||
|
||||
```json
|
||||
[
|
||||
{
|
||||
"commit": {
|
||||
"author_email": "admin@example.com",
|
||||
"author_name": "Administrator",
|
||||
"created_at": "2015-12-24T16:51:14.000+01:00",
|
||||
"id": "0ff3ae198f8601a285adcf5c0fff204ee6fba5fd",
|
||||
"message": "Test the CI integration.",
|
||||
"short_id": "0ff3ae19",
|
||||
"title": "Test the CI integration."
|
||||
},
|
||||
"coverage": null,
|
||||
"created_at": "2016-01-11T10:13:33.506Z",
|
||||
"artifacts_file": null,
|
||||
"finished_at": "2016-01-11T10:14:09.526Z",
|
||||
"id": 69,
|
||||
"name": "rubocop",
|
||||
"ref": "master",
|
||||
"runner": null,
|
||||
"stage": "test",
|
||||
"started_at": null,
|
||||
"status": "canceled",
|
||||
"tag": false,
|
||||
"user": null
|
||||
{
|
||||
"commit": {
|
||||
"author_email": "admin@example.com",
|
||||
"author_name": "Administrator",
|
||||
"created_at": "2015-12-24T16:51:14.000+01:00",
|
||||
"id": "0ff3ae198f8601a285adcf5c0fff204ee6fba5fd",
|
||||
"message": "Test the CI integration.",
|
||||
"short_id": "0ff3ae19",
|
||||
"title": "Test the CI integration."
|
||||
},
|
||||
{
|
||||
"commit": {
|
||||
"author_email": "admin@example.com",
|
||||
"author_name": "Administrator",
|
||||
"created_at": "2015-12-24T16:51:14.000+01:00",
|
||||
"id": "0ff3ae198f8601a285adcf5c0fff204ee6fba5fd",
|
||||
"message": "Test the CI integration.",
|
||||
"short_id": "0ff3ae19",
|
||||
"title": "Test the CI integration."
|
||||
},
|
||||
"coverage": null,
|
||||
"created_at": "2015-12-24T15:51:21.957Z",
|
||||
"artifacts_file": null,
|
||||
"finished_at": "2015-12-24T17:54:33.913Z",
|
||||
"id": 9,
|
||||
"name": "brakeman",
|
||||
"ref": "master",
|
||||
"runner": null,
|
||||
"stage": "test",
|
||||
"started_at": "2015-12-24T17:54:33.727Z",
|
||||
"status": "failed",
|
||||
"tag": false,
|
||||
"user": {
|
||||
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
|
||||
"bio": null,
|
||||
"created_at": "2015-12-21T13:14:24.077Z",
|
||||
"id": 1,
|
||||
"is_admin": true,
|
||||
"linkedin": "",
|
||||
"name": "Administrator",
|
||||
"skype": "",
|
||||
"state": "active",
|
||||
"twitter": "",
|
||||
"username": "root",
|
||||
"web_url": "http://gitlab.dev/u/root",
|
||||
"website_url": ""
|
||||
}
|
||||
"coverage": null,
|
||||
"created_at": "2016-01-11T10:13:33.506Z",
|
||||
"artifacts_file": null,
|
||||
"finished_at": "2016-01-11T10:14:09.526Z",
|
||||
"id": 69,
|
||||
"name": "rubocop",
|
||||
"ref": "master",
|
||||
"runner": null,
|
||||
"stage": "test",
|
||||
"started_at": null,
|
||||
"status": "canceled",
|
||||
"tag": false,
|
||||
"user": null
|
||||
},
|
||||
{
|
||||
"commit": {
|
||||
"author_email": "admin@example.com",
|
||||
"author_name": "Administrator",
|
||||
"created_at": "2015-12-24T16:51:14.000+01:00",
|
||||
"id": "0ff3ae198f8601a285adcf5c0fff204ee6fba5fd",
|
||||
"message": "Test the CI integration.",
|
||||
"short_id": "0ff3ae19",
|
||||
"title": "Test the CI integration."
|
||||
},
|
||||
"coverage": null,
|
||||
"created_at": "2015-12-24T15:51:21.957Z",
|
||||
"artifacts_file": null,
|
||||
"finished_at": "2015-12-24T17:54:33.913Z",
|
||||
"id": 9,
|
||||
"name": "brakeman",
|
||||
"ref": "master",
|
||||
"runner": null,
|
||||
"stage": "test",
|
||||
"started_at": "2015-12-24T17:54:33.727Z",
|
||||
"status": "failed",
|
||||
"tag": false,
|
||||
"user": {
|
||||
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
|
||||
"bio": null,
|
||||
"created_at": "2015-12-21T13:14:24.077Z",
|
||||
"id": 1,
|
||||
"is_admin": true,
|
||||
"linkedin": "",
|
||||
"name": "Administrator",
|
||||
"skype": "",
|
||||
"state": "active",
|
||||
"twitter": "",
|
||||
"username": "root",
|
||||
"web_url": "http://gitlab.dev/u/root",
|
||||
"website_url": ""
|
||||
}
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
@@ -211,42 +211,42 @@ Example of response
|
||||
|
||||
```json
|
||||
{
|
||||
"commit": {
|
||||
"author_email": "admin@example.com",
|
||||
"author_name": "Administrator",
|
||||
"created_at": "2015-12-24T16:51:14.000+01:00",
|
||||
"id": "0ff3ae198f8601a285adcf5c0fff204ee6fba5fd",
|
||||
"message": "Test the CI integration.",
|
||||
"short_id": "0ff3ae19",
|
||||
"title": "Test the CI integration."
|
||||
},
|
||||
"coverage": null,
|
||||
"created_at": "2015-12-24T15:51:21.880Z",
|
||||
"artifacts_file": null,
|
||||
"finished_at": "2015-12-24T17:54:31.198Z",
|
||||
"id": 8,
|
||||
"name": "rubocop",
|
||||
"ref": "master",
|
||||
"runner": null,
|
||||
"stage": "test",
|
||||
"started_at": "2015-12-24T17:54:30.733Z",
|
||||
"status": "failed",
|
||||
"tag": false,
|
||||
"user": {
|
||||
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
|
||||
"bio": null,
|
||||
"created_at": "2015-12-21T13:14:24.077Z",
|
||||
"id": 1,
|
||||
"is_admin": true,
|
||||
"linkedin": "",
|
||||
"name": "Administrator",
|
||||
"skype": "",
|
||||
"state": "active",
|
||||
"twitter": "",
|
||||
"username": "root",
|
||||
"web_url": "http://gitlab.dev/u/root",
|
||||
"website_url": ""
|
||||
}
|
||||
"commit": {
|
||||
"author_email": "admin@example.com",
|
||||
"author_name": "Administrator",
|
||||
"created_at": "2015-12-24T16:51:14.000+01:00",
|
||||
"id": "0ff3ae198f8601a285adcf5c0fff204ee6fba5fd",
|
||||
"message": "Test the CI integration.",
|
||||
"short_id": "0ff3ae19",
|
||||
"title": "Test the CI integration."
|
||||
},
|
||||
"coverage": null,
|
||||
"created_at": "2015-12-24T15:51:21.880Z",
|
||||
"artifacts_file": null,
|
||||
"finished_at": "2015-12-24T17:54:31.198Z",
|
||||
"id": 8,
|
||||
"name": "rubocop",
|
||||
"ref": "master",
|
||||
"runner": null,
|
||||
"stage": "test",
|
||||
"started_at": "2015-12-24T17:54:30.733Z",
|
||||
"status": "failed",
|
||||
"tag": false,
|
||||
"user": {
|
||||
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
|
||||
"bio": null,
|
||||
"created_at": "2015-12-21T13:14:24.077Z",
|
||||
"id": 1,
|
||||
"is_admin": true,
|
||||
"linkedin": "",
|
||||
"name": "Administrator",
|
||||
"skype": "",
|
||||
"state": "active",
|
||||
"twitter": "",
|
||||
"username": "root",
|
||||
"web_url": "http://gitlab.dev/u/root",
|
||||
"website_url": ""
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
@@ -323,28 +323,28 @@ Example of response
|
||||
|
||||
```json
|
||||
{
|
||||
"commit": {
|
||||
"author_email": "admin@example.com",
|
||||
"author_name": "Administrator",
|
||||
"created_at": "2015-12-24T16:51:14.000+01:00",
|
||||
"id": "0ff3ae198f8601a285adcf5c0fff204ee6fba5fd",
|
||||
"message": "Test the CI integration.",
|
||||
"short_id": "0ff3ae19",
|
||||
"title": "Test the CI integration."
|
||||
},
|
||||
"coverage": null,
|
||||
"created_at": "2016-01-11T10:13:33.506Z",
|
||||
"artifacts_file": null,
|
||||
"finished_at": "2016-01-11T10:14:09.526Z",
|
||||
"id": 69,
|
||||
"name": "rubocop",
|
||||
"ref": "master",
|
||||
"runner": null,
|
||||
"stage": "test",
|
||||
"started_at": null,
|
||||
"status": "canceled",
|
||||
"tag": false,
|
||||
"user": null
|
||||
"commit": {
|
||||
"author_email": "admin@example.com",
|
||||
"author_name": "Administrator",
|
||||
"created_at": "2015-12-24T16:51:14.000+01:00",
|
||||
"id": "0ff3ae198f8601a285adcf5c0fff204ee6fba5fd",
|
||||
"message": "Test the CI integration.",
|
||||
"short_id": "0ff3ae19",
|
||||
"title": "Test the CI integration."
|
||||
},
|
||||
"coverage": null,
|
||||
"created_at": "2016-01-11T10:13:33.506Z",
|
||||
"artifacts_file": null,
|
||||
"finished_at": "2016-01-11T10:14:09.526Z",
|
||||
"id": 69,
|
||||
"name": "rubocop",
|
||||
"ref": "master",
|
||||
"runner": null,
|
||||
"stage": "test",
|
||||
"started_at": null,
|
||||
"status": "canceled",
|
||||
"tag": false,
|
||||
"user": null
|
||||
}
|
||||
```
|
||||
|
||||
@@ -369,28 +369,28 @@ Example of response
|
||||
|
||||
```json
|
||||
{
|
||||
"commit": {
|
||||
"author_email": "admin@example.com",
|
||||
"author_name": "Administrator",
|
||||
"created_at": "2015-12-24T16:51:14.000+01:00",
|
||||
"id": "0ff3ae198f8601a285adcf5c0fff204ee6fba5fd",
|
||||
"message": "Test the CI integration.",
|
||||
"short_id": "0ff3ae19",
|
||||
"title": "Test the CI integration."
|
||||
},
|
||||
"coverage": null,
|
||||
"created_at": "2016-01-11T10:13:33.506Z",
|
||||
"artifacts_file": null,
|
||||
"finished_at": null,
|
||||
"id": 69,
|
||||
"name": "rubocop",
|
||||
"ref": "master",
|
||||
"runner": null,
|
||||
"stage": "test",
|
||||
"started_at": null,
|
||||
"status": "pending",
|
||||
"tag": false,
|
||||
"user": null
|
||||
"commit": {
|
||||
"author_email": "admin@example.com",
|
||||
"author_name": "Administrator",
|
||||
"created_at": "2015-12-24T16:51:14.000+01:00",
|
||||
"id": "0ff3ae198f8601a285adcf5c0fff204ee6fba5fd",
|
||||
"message": "Test the CI integration.",
|
||||
"short_id": "0ff3ae19",
|
||||
"title": "Test the CI integration."
|
||||
},
|
||||
"coverage": null,
|
||||
"created_at": "2016-01-11T10:13:33.506Z",
|
||||
"artifacts_file": null,
|
||||
"finished_at": null,
|
||||
"id": 69,
|
||||
"name": "rubocop",
|
||||
"ref": "master",
|
||||
"runner": null,
|
||||
"stage": "test",
|
||||
"started_at": null,
|
||||
"status": "pending",
|
||||
"tag": false,
|
||||
"user": null
|
||||
}
|
||||
```
|
||||
|
||||
@@ -419,34 +419,34 @@ Example of response
|
||||
|
||||
```json
|
||||
{
|
||||
"commit": {
|
||||
"author_email": "admin@example.com",
|
||||
"author_name": "Administrator",
|
||||
"created_at": "2015-12-24T16:51:14.000+01:00",
|
||||
"id": "0ff3ae198f8601a285adcf5c0fff204ee6fba5fd",
|
||||
"message": "Test the CI integration.",
|
||||
"short_id": "0ff3ae19",
|
||||
"title": "Test the CI integration."
|
||||
},
|
||||
"coverage": null,
|
||||
"download_url": null,
|
||||
"id": 69,
|
||||
"name": "rubocop",
|
||||
"ref": "master",
|
||||
"runner": null,
|
||||
"stage": "test",
|
||||
"created_at": "2016-01-11T10:13:33.506Z",
|
||||
"started_at": "2016-01-11T10:13:33.506Z",
|
||||
"finished_at": "2016-01-11T10:15:10.506Z",
|
||||
"status": "failed",
|
||||
"tag": false,
|
||||
"user": null
|
||||
"commit": {
|
||||
"author_email": "admin@example.com",
|
||||
"author_name": "Administrator",
|
||||
"created_at": "2015-12-24T16:51:14.000+01:00",
|
||||
"id": "0ff3ae198f8601a285adcf5c0fff204ee6fba5fd",
|
||||
"message": "Test the CI integration.",
|
||||
"short_id": "0ff3ae19",
|
||||
"title": "Test the CI integration."
|
||||
},
|
||||
"coverage": null,
|
||||
"download_url": null,
|
||||
"id": 69,
|
||||
"name": "rubocop",
|
||||
"ref": "master",
|
||||
"runner": null,
|
||||
"stage": "test",
|
||||
"created_at": "2016-01-11T10:13:33.506Z",
|
||||
"started_at": "2016-01-11T10:13:33.506Z",
|
||||
"finished_at": "2016-01-11T10:15:10.506Z",
|
||||
"status": "failed",
|
||||
"tag": false,
|
||||
"user": null
|
||||
}
|
||||
```
|
||||
|
||||
## Keep artifacts
|
||||
|
||||
Prevents artifacts from being deleted when expiration is set
|
||||
Prevents artifacts from being deleted when expiration is set.
|
||||
|
||||
```
|
||||
POST /projects/:id/builds/:build_id/artifacts/keep
|
||||
@@ -459,37 +459,37 @@ Parameters
|
||||
| `id` | integer | yes | The ID of a project |
|
||||
| `build_id` | integer | yes | The ID of a build |
|
||||
|
||||
Example of request
|
||||
Example request:
|
||||
|
||||
```
|
||||
curl -X POST -H "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" "https://gitlab.example.com/api/v3/projects/1/builds/1/artifacts/keep"
|
||||
```
|
||||
|
||||
Example of response
|
||||
Example response:
|
||||
|
||||
```json
|
||||
{
|
||||
"commit": {
|
||||
"author_email": "admin@example.com",
|
||||
"author_name": "Administrator",
|
||||
"created_at": "2015-12-24T16:51:14.000+01:00",
|
||||
"id": "0ff3ae198f8601a285adcf5c0fff204ee6fba5fd",
|
||||
"message": "Test the CI integration.",
|
||||
"short_id": "0ff3ae19",
|
||||
"title": "Test the CI integration."
|
||||
},
|
||||
"coverage": null,
|
||||
"download_url": null,
|
||||
"id": 69,
|
||||
"name": "rubocop",
|
||||
"ref": "master",
|
||||
"runner": null,
|
||||
"stage": "test",
|
||||
"created_at": "2016-01-11T10:13:33.506Z",
|
||||
"started_at": "2016-01-11T10:13:33.506Z",
|
||||
"finished_at": "2016-01-11T10:15:10.506Z",
|
||||
"status": "failed",
|
||||
"tag": false,
|
||||
"user": null
|
||||
"commit": {
|
||||
"author_email": "admin@example.com",
|
||||
"author_name": "Administrator",
|
||||
"created_at": "2015-12-24T16:51:14.000+01:00",
|
||||
"id": "0ff3ae198f8601a285adcf5c0fff204ee6fba5fd",
|
||||
"message": "Test the CI integration.",
|
||||
"short_id": "0ff3ae19",
|
||||
"title": "Test the CI integration."
|
||||
},
|
||||
"coverage": null,
|
||||
"download_url": null,
|
||||
"id": 69,
|
||||
"name": "rubocop",
|
||||
"ref": "master",
|
||||
"runner": null,
|
||||
"stage": "test",
|
||||
"created_at": "2016-01-11T10:13:33.506Z",
|
||||
"started_at": "2016-01-11T10:13:33.506Z",
|
||||
"finished_at": "2016-01-11T10:15:10.506Z",
|
||||
"status": "failed",
|
||||
"tag": false,
|
||||
"user": null
|
||||
}
|
||||
```
|
||||
|
||||
+3
-2
@@ -167,10 +167,11 @@ module API
|
||||
user_can_download_artifacts: can?(current_user, :download_build_artifacts, user_project)
|
||||
end
|
||||
|
||||
# Keep the artifacts to prevent them to be deleted
|
||||
# Keep the artifacts to prevent them from being deleted
|
||||
#
|
||||
# Parameters:
|
||||
# id (required) - The ID of a build
|
||||
# id (required) - the id of a project
|
||||
# build_id (required) - The ID of a build
|
||||
# Example Request:
|
||||
# POST /projects/:id/builds/:build_id/artifacts/keep
|
||||
post ':id/builds/:build_id/artifacts/keep' do
|
||||
|
||||
@@ -20,7 +20,7 @@ module Ci
|
||||
expose :name, :token, :stage
|
||||
expose :project_id
|
||||
expose :project_name
|
||||
expose :artifacts_file, using: ArtifactFile, if: lambda { |build, opts| build.artifacts? }
|
||||
expose :artifacts_file, using: ArtifactFile, if: ->(build, _) { build.artifacts? }
|
||||
end
|
||||
|
||||
class BuildDetails < Build
|
||||
@@ -29,7 +29,7 @@ module Ci
|
||||
expose :before_sha
|
||||
expose :allow_git_fetch
|
||||
expose :token
|
||||
expose :artifacts_expire_at, if: lambda { |build, opts| build.artifacts? }
|
||||
expose :artifacts_expire_at, if: ->(build, _) { build.artifacts? }
|
||||
|
||||
expose :options do |model|
|
||||
model.options
|
||||
|
||||
@@ -106,7 +106,7 @@ describe "Builds" do
|
||||
context 'no expire date defined' do
|
||||
let(:expire_at) { nil }
|
||||
|
||||
it 'should not have the Keep button' do
|
||||
it 'does not have the Keep button' do
|
||||
page.within('.artifacts') do
|
||||
expect(page).not_to have_content 'Keep'
|
||||
end
|
||||
@@ -116,7 +116,7 @@ describe "Builds" do
|
||||
context 'when expire date is defined' do
|
||||
let(:expire_at) { Time.now + 7.days }
|
||||
|
||||
it 'should keep artifacts when Keep button is clicked' do
|
||||
it 'keeps artifacts when Keep button is clicked' do
|
||||
page.within('.artifacts') do
|
||||
expect(page).to have_content 'The artifacts will be removed'
|
||||
click_link 'Keep'
|
||||
@@ -130,7 +130,7 @@ describe "Builds" do
|
||||
context 'when artifacts expired' do
|
||||
let(:expire_at) { Time.now - 7.days }
|
||||
|
||||
it 'should not have the Keep button' do
|
||||
it 'does not have the Keep button' do
|
||||
page.within('.artifacts') do
|
||||
expect(page).to have_content 'The artifacts were removed'
|
||||
expect(page).not_to have_link 'Keep'
|
||||
@@ -150,8 +150,6 @@ describe "Builds" do
|
||||
expect(page).to have_link 'Raw'
|
||||
end
|
||||
end
|
||||
|
||||
context ''
|
||||
end
|
||||
|
||||
describe "POST /:project/builds/:id/cancel" do
|
||||
|
||||
@@ -467,6 +467,7 @@ describe Ci::Build, models: true do
|
||||
|
||||
it 'when assigning valid duration' do
|
||||
build.artifacts_expire_in = '7 days'
|
||||
|
||||
is_expected.to be_within(10).of(7.days.to_i)
|
||||
end
|
||||
|
||||
@@ -477,6 +478,7 @@ describe Ci::Build, models: true do
|
||||
|
||||
it 'when resseting value' do
|
||||
build.artifacts_expire_in = nil
|
||||
|
||||
is_expected.to be_nil
|
||||
end
|
||||
end
|
||||
@@ -486,6 +488,7 @@ describe Ci::Build, models: true do
|
||||
|
||||
it 'to reset expire_at' do
|
||||
build.keep_artifacts!
|
||||
|
||||
expect(build.artifacts_expire_at).to be_nil
|
||||
end
|
||||
end
|
||||
|
||||
@@ -253,17 +253,16 @@ describe API::API, api: true do
|
||||
project: project, pipeline: pipeline, artifacts_expire_at: Time.now + 7.days)
|
||||
end
|
||||
|
||||
it 'should keep artifacts' do
|
||||
it 'keeps artifacts' do
|
||||
expect(response.status).to eq 200
|
||||
build.reload
|
||||
expect(build.artifacts_expire_at).to be_nil
|
||||
expect(build.reload.artifacts_expire_at).to be_nil
|
||||
end
|
||||
end
|
||||
|
||||
context 'no artifacts' do
|
||||
let(:build) { create(:ci_build, project: project, pipeline: pipeline) }
|
||||
|
||||
it 'should respond with not found' do
|
||||
it 'responds with not found' do
|
||||
expect(response.status).to eq 404
|
||||
end
|
||||
end
|
||||
|
||||
@@ -364,7 +364,7 @@ describe Ci::API::API do
|
||||
end
|
||||
end
|
||||
|
||||
context 'expire date' do
|
||||
context 'with an expire date' do
|
||||
let!(:artifacts) { file_upload }
|
||||
|
||||
let(:post_data) do
|
||||
@@ -377,7 +377,7 @@ describe Ci::API::API do
|
||||
post(post_url, post_data, headers_with_token)
|
||||
end
|
||||
|
||||
context 'updates when specified' do
|
||||
context 'with an expire_in given' do
|
||||
let(:expire_in) { '7 days' }
|
||||
|
||||
it do
|
||||
@@ -388,7 +388,7 @@ describe Ci::API::API do
|
||||
end
|
||||
end
|
||||
|
||||
context 'ignores if not specified' do
|
||||
context 'with no expire_in given' do
|
||||
let(:expire_in) { nil }
|
||||
|
||||
it do
|
||||
|
||||
@@ -3,7 +3,7 @@ require 'spec_helper'
|
||||
describe ExpireBuildArtifactsWorker do
|
||||
include RepoHelpers
|
||||
|
||||
let(:worker) { ExpireBuildArtifactsWorker.new }
|
||||
let(:worker) { described_class.new }
|
||||
|
||||
describe '#perform' do
|
||||
context 'with expired artifacts' do
|
||||
@@ -11,9 +11,10 @@ describe ExpireBuildArtifactsWorker do
|
||||
|
||||
it do
|
||||
expect_any_instance_of(Ci::Build).to receive(:erase_artifacts!)
|
||||
|
||||
worker.perform
|
||||
build.reload
|
||||
expect(build.artifacts_expired?).to be_truthy
|
||||
|
||||
expect(build.reload.artifacts_expired?).to be_truthy
|
||||
end
|
||||
end
|
||||
|
||||
@@ -22,9 +23,10 @@ describe ExpireBuildArtifactsWorker do
|
||||
|
||||
it do
|
||||
expect_any_instance_of(Ci::Build).not_to receive(:erase_artifacts!)
|
||||
|
||||
worker.perform
|
||||
build.reload
|
||||
expect(build.artifacts_expired?).to be_falsey
|
||||
|
||||
expect(build.reload.artifacts_expired?).to be_falsey
|
||||
end
|
||||
end
|
||||
|
||||
@@ -33,6 +35,7 @@ describe ExpireBuildArtifactsWorker do
|
||||
|
||||
it do
|
||||
expect_any_instance_of(Ci::Build).not_to receive(:erase_artifacts!)
|
||||
|
||||
worker.perform
|
||||
end
|
||||
end
|
||||
@@ -47,9 +50,10 @@ describe ExpireBuildArtifactsWorker do
|
||||
|
||||
it do
|
||||
expect_any_instance_of(Ci::Build).not_to receive(:erase_artifacts!)
|
||||
|
||||
worker.perform
|
||||
build.reload
|
||||
expect(build.artifacts_expired?).to be_truthy
|
||||
|
||||
expect(build.reload.artifacts_expired?).to be_truthy
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user