summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/gl_objects/builds.py4
-rw-r--r--docs/gl_objects/builds.rst6
-rw-r--r--gitlab/exceptions.py4
-rw-r--r--gitlab/objects.py6
4 files changed, 20 insertions, 0 deletions
diff --git a/docs/gl_objects/builds.py b/docs/gl_objects/builds.py
index d73ddd5..9f5ef12 100644
--- a/docs/gl_objects/builds.py
+++ b/docs/gl_objects/builds.py
@@ -106,3 +106,7 @@ build.retry()
# erase
build.erase()
# end erase
+
+# play
+build.play()
+# end play
diff --git a/docs/gl_objects/builds.rst b/docs/gl_objects/builds.rst
index e4c1258..78412b4 100644
--- a/docs/gl_objects/builds.rst
+++ b/docs/gl_objects/builds.rst
@@ -150,6 +150,12 @@ Cancel/retry a build:
:start-after: # retry
:end-before: # end retry
+Play (trigger) a build:
+
+.. literalinclude:: builds.py
+ :start-after: # play
+ :end-before: # end play
+
Erase a build (artifacts and trace):
.. literalinclude:: builds.py
diff --git a/gitlab/exceptions.py b/gitlab/exceptions.py
index 0fc8617..733551f 100644
--- a/gitlab/exceptions.py
+++ b/gitlab/exceptions.py
@@ -95,6 +95,10 @@ class GitlabBuildRetryError(GitlabRetryError):
pass
+class GitlabBuildPlayError(GitlabRetryError):
+ pass
+
+
class GitlabBuildEraseError(GitlabRetryError):
pass
diff --git a/gitlab/objects.py b/gitlab/objects.py
index 2609e1b..e61483a 100644
--- a/gitlab/objects.py
+++ b/gitlab/objects.py
@@ -961,6 +961,12 @@ class ProjectBuild(GitlabObject):
r = self.gitlab._raw_post(url)
raise_error_from_response(r, GitlabBuildRetryError, 201)
+ def play(self, **kwargs):
+ """Trigger a build explicitly."""
+ url = '/projects/%s/builds/%s/play' % (self.project_id, self.id)
+ r = self.gitlab._raw_post(url)
+ raise_error_from_response(r, GitlabBuildPlayError, 201)
+
def erase(self, **kwargs):
"""Erase the build (remove build artifacts and trace)."""
url = '/projects/%s/builds/%s/erase' % (self.project_id, self.id)