Add images and examples
This commit is contained in:
parent
aafd7ce83b
commit
e74affcfa8
5 changed files with 95 additions and 2 deletions
|
@ -2,10 +2,103 @@
|
||||||
|
|
||||||
_**Note:** This feature was [introduced][ci-229] in GitLab CE 7.14_
|
_**Note:** This feature was [introduced][ci-229] in GitLab CE 7.14_
|
||||||
|
|
||||||
Triggers can be used to force a rebuild of a specific branch or tag with an API
|
Triggers can be used to force a rebuild of a specific branch, tag or commit,
|
||||||
call.
|
with an API call.
|
||||||
|
|
||||||
## Add a trigger
|
## Add a trigger
|
||||||
|
|
||||||
|
You can add a new trigger by going to your project's **Settings > Triggers**.
|
||||||
|
The **Add trigger** button will create a new token which you can then use to
|
||||||
|
trigger a rebuild of this particular project.
|
||||||
|
|
||||||
|
Once at least one trigger is created, on the **Triggers** page you will find
|
||||||
|
some descriptive information on how you can
|
||||||
|
|
||||||
|
Every new trigger you create, gets assigned a different token which you can
|
||||||
|
then use inside your scripts or `.gitlab-ci.yml`. You also have a nice
|
||||||
|
overview of the time the triggers were last used.
|
||||||
|
|
||||||
|
![Triggers page overview](img/triggers_page.png)
|
||||||
|
|
||||||
|
## Revoke a trigger
|
||||||
|
|
||||||
|
You can revoke a trigger any time by going at your project's
|
||||||
|
**Settings > Triggers** and hitting the **Revoke** button. The action is
|
||||||
|
irreversible.
|
||||||
|
|
||||||
|
## Trigger a build
|
||||||
|
|
||||||
|
To trigger a build you need to send a `POST` request to GitLab's API endpoint:
|
||||||
|
|
||||||
|
```
|
||||||
|
POST /projects/:id/trigger/builds
|
||||||
|
```
|
||||||
|
|
||||||
|
The required parameters are the trigger's `token` and the Git `ref` on which
|
||||||
|
the trigger will be performed. Valid refs are the branch, the tag or the commit
|
||||||
|
SHA. The `:id` of a project can be found by [querying the API](../api/projects.md)
|
||||||
|
or by visiting the **Triggers** page which provides self-explanatory examples.
|
||||||
|
|
||||||
|
When a rebuild is triggered, the information is exposed in GitLab's UI under
|
||||||
|
the **Builds** page and the builds are marked as `triggered`.
|
||||||
|
|
||||||
|
![Marked rebuilds as triggered on builds page](img/builds_page.png)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
You can see which trigger caused the rebuild by visiting the single build page.
|
||||||
|
The token of the trigger is exposed in the UI as you can see from the image
|
||||||
|
below.
|
||||||
|
|
||||||
|
![Marked rebuilds as triggered on a single build page](img/trigger_single_build.png)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
See the [Examples](#examples) section for more details on how to actually
|
||||||
|
trigger a rebuild.
|
||||||
|
|
||||||
|
## Pass build variables to a trigger
|
||||||
|
|
||||||
|
You can pass any number of arbitrary variables in the trigger API call and they
|
||||||
|
will be available in GitLab CI so that they can be used in your `.gitlab-ci.yml`
|
||||||
|
file. The parameter is of the form:
|
||||||
|
|
||||||
|
```
|
||||||
|
variables[key]=value
|
||||||
|
```
|
||||||
|
|
||||||
|
This information is also exposed in the UI.
|
||||||
|
|
||||||
|
![Build variables in UI](img/trigger_variables.png)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
See the [Examples](#examples) section below for more details.
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
Using cURL you can trigger a rebuild with minimal effort, for example:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -X POST \
|
||||||
|
-F token=TOKEN \
|
||||||
|
-F ref=master \
|
||||||
|
https://gitlab.com/api/v3/projects/9/trigger/builds
|
||||||
|
```
|
||||||
|
|
||||||
|
In this case, the project with ID `9` will get rebuilt on `master` branch.
|
||||||
|
|
||||||
|
You can also use triggers in your `.gitlab-ci.yml`. Let's say that you have
|
||||||
|
two projects, A and B, and you want to trigger a rebuild on the `master`
|
||||||
|
branch of project B whenever a tag on project A is created.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
build_docs:
|
||||||
|
stage: deploy
|
||||||
|
script:
|
||||||
|
- "curl -X POST -F token=TOKEN -F ref=master https://gitlab.com/api/v3/projects/9/trigger/builds"
|
||||||
|
only:
|
||||||
|
- tags
|
||||||
|
```
|
||||||
|
|
||||||
[ci-229]: https://gitlab.com/gitlab-org/gitlab-ci/merge_requests/229
|
[ci-229]: https://gitlab.com/gitlab-org/gitlab-ci/merge_requests/229
|
||||||
|
|
BIN
doc/ci/triggers/img/builds_page.png
Normal file
BIN
doc/ci/triggers/img/builds_page.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 39 KiB |
BIN
doc/ci/triggers/img/trigger_single_build.png
Normal file
BIN
doc/ci/triggers/img/trigger_single_build.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.8 KiB |
BIN
doc/ci/triggers/img/trigger_variables.png
Normal file
BIN
doc/ci/triggers/img/trigger_variables.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.3 KiB |
BIN
doc/ci/triggers/img/triggers_page.png
Normal file
BIN
doc/ci/triggers/img/triggers_page.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
Loading…
Reference in a new issue