From a084437b5c1b7226ce64e74bab1972bb1dbd49e0 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Mon, 13 Feb 2017 17:59:57 +0100 Subject: [PATCH] Rename builds to jobs in docs [ci skip] --- doc/administration/build_artifacts.md | 97 +----- doc/administration/job_artifacts.md | 114 +++++++ doc/ci/README.md | 18 +- doc/ci/build_artifacts/README.md | 5 +- doc/ci/docker/README.md | 4 +- doc/ci/docker/using_docker_build.md | 72 +++-- doc/ci/docker/using_docker_images.md | 22 +- doc/ci/enable_or_disable_ci.md | 2 +- doc/ci/environments.md | 10 +- doc/ci/examples/deployment/README.md | 2 +- .../deployment/composer-npm-deploy.md | 4 +- doc/ci/examples/php.md | 12 +- doc/ci/examples/test-scala-application.md | 8 +- doc/ci/git_submodules.md | 18 +- doc/ci/pipelines.md | 28 +- doc/ci/quick_start/README.md | 78 +++-- doc/ci/quick_start/img/build_log.png | Bin 24461 -> 35261 bytes doc/ci/quick_start/img/builds_status.png | Bin 24278 -> 19127 bytes doc/ci/quick_start/img/new_commit.png | Bin 4772 -> 5584 bytes doc/ci/quick_start/img/pipelines_status.png | Bin 25494 -> 22872 bytes doc/ci/quick_start/img/runners_activated.png | Bin 12337 -> 18215 bytes .../img/single_commit_status_pending.png | Bin 15785 -> 13631 bytes doc/ci/quick_start/img/status_pending.png | Bin 9521 -> 0 bytes doc/ci/runners/README.md | 139 +++++---- doc/ci/services/mysql.md | 4 +- doc/ci/services/postgres.md | 4 +- doc/ci/services/redis.md | 2 +- doc/ci/ssh_keys/README.md | 6 +- doc/ci/triggers/README.md | 59 ++-- doc/ci/triggers/img/builds_page.png | Bin 29044 -> 20383 bytes doc/ci/triggers/img/trigger_single_build.png | Bin 8233 -> 6585 bytes doc/ci/triggers/img/trigger_variables.png | Bin 3652 -> 3637 bytes doc/ci/triggers/img/triggers_page.png | Bin 5119 -> 5116 bytes doc/ci/variables/README.md | 60 ++-- doc/ci/yaml/README.md | 295 +++++++++--------- doc/development/code_review.md | 2 +- doc/install/installation.md | 2 +- doc/raketasks/backup_restore.md | 4 +- doc/university/glossary/README.md | 74 ++--- .../settings/continuous_integration.md | 6 +- doc/user/permissions.md | 22 +- doc/user/project/builds/artifacts.md | 137 +------- .../builds/img/build_artifacts_browser.png | Bin 3782 -> 0 bytes .../img/build_artifacts_browser_button.png | Bin 4891 -> 0 bytes .../img/build_artifacts_builds_page.png | Bin 22022 -> 0 bytes .../img/build_artifacts_pipelines_page.png | Bin 28339 -> 0 bytes doc/user/project/integrations/webhooks.md | 2 +- doc/user/project/merge_requests/index.md | 2 +- .../merge_when_pipeline_succeeds.md | 12 +- .../project/new_ci_build_permissions_model.md | 82 ++--- doc/user/project/pages/index.md | 10 +- .../pipelines/img/job_artifacts_browser.png | Bin 0 -> 3771 bytes .../img/job_artifacts_browser_button.png | Bin 0 -> 5534 bytes .../img/job_artifacts_builds_page.png | Bin 0 -> 15191 bytes .../img/job_artifacts_pipelines_page.png | Bin 0 -> 16550 bytes .../img/job_latest_artifacts_browser.png} | Bin .../img/pipelines_settings_test_coverage.png | Bin 2603 -> 2549 bytes .../img/pipelines_test_coverage_mr_widget.png | Bin 6391 -> 6375 bytes doc/user/project/pipelines/job_artifacts.md | 118 +++++++ doc/user/project/pipelines/settings.md | 16 +- doc/user/project/slash_commands.md | 2 +- doc/workflow/shortcuts.md | 4 +- doc/workflow/todos.md | 4 +- 63 files changed, 789 insertions(+), 773 deletions(-) create mode 100644 doc/administration/job_artifacts.md delete mode 100644 doc/ci/quick_start/img/status_pending.png delete mode 100644 doc/user/project/builds/img/build_artifacts_browser.png delete mode 100644 doc/user/project/builds/img/build_artifacts_browser_button.png delete mode 100644 doc/user/project/builds/img/build_artifacts_builds_page.png delete mode 100644 doc/user/project/builds/img/build_artifacts_pipelines_page.png create mode 100644 doc/user/project/pipelines/img/job_artifacts_browser.png create mode 100644 doc/user/project/pipelines/img/job_artifacts_browser_button.png create mode 100644 doc/user/project/pipelines/img/job_artifacts_builds_page.png create mode 100644 doc/user/project/pipelines/img/job_artifacts_pipelines_page.png rename doc/user/project/{builds/img/build_latest_artifacts_browser.png => pipelines/img/job_latest_artifacts_browser.png} (100%) create mode 100644 doc/user/project/pipelines/job_artifacts.md diff --git a/doc/administration/build_artifacts.md b/doc/administration/build_artifacts.md index cca422892ec..5a892a35fcc 100644 --- a/doc/administration/build_artifacts.md +++ b/doc/administration/build_artifacts.md @@ -1,96 +1 @@ -# Build artifacts administration - ->**Notes:** ->- Introduced in GitLab 8.2 and GitLab Runner 0.7.0. ->- Starting from GitLab 8.4 and GitLab Runner 1.0, the artifacts archive format - changed to `ZIP`. ->- This is the administration documentation. For the user guide see - [user/project/builds/artifacts.md](../user/project/builds/artifacts.md). - -Artifacts is a list of files and directories which are attached to a build -after it completes successfully. This feature is enabled by default in all -GitLab installations. Keep reading if you want to know how to disable it. - -## Disabling build artifacts - -To disable artifacts site-wide, follow the steps below. - ---- - -**In Omnibus installations:** - -1. Edit `/etc/gitlab/gitlab.rb` and add the following line: - - ```ruby - gitlab_rails['artifacts_enabled'] = false - ``` - -1. Save the file and [reconfigure GitLab][] for the changes to take effect. - ---- - -**In installations from source:** - -1. Edit `/home/git/gitlab/config/gitlab.yml` and add or amend the following lines: - - ```yaml - artifacts: - enabled: false - ``` - -1. Save the file and [restart GitLab][] for the changes to take effect. - -## Storing build artifacts - -After a successful build, GitLab Runner uploads an archive containing the build -artifacts to GitLab. - -To change the location where the artifacts are stored, follow the steps below. - ---- - -**In Omnibus installations:** - -_The artifacts are stored by default in -`/var/opt/gitlab/gitlab-rails/shared/artifacts`._ - -1. To change the storage path for example to `/mnt/storage/artifacts`, edit - `/etc/gitlab/gitlab.rb` and add the following line: - - ```ruby - gitlab_rails['artifacts_path'] = "/mnt/storage/artifacts" - ``` - -1. Save the file and [reconfigure GitLab][] for the changes to take effect. - ---- - -**In installations from source:** - -_The artifacts are stored by default in -`/home/git/gitlab/shared/artifacts`._ - -1. To change the storage path for example to `/mnt/storage/artifacts`, edit - `/home/git/gitlab/config/gitlab.yml` and add or amend the following lines: - - ```yaml - artifacts: - enabled: true - path: /mnt/storage/artifacts - ``` - -1. Save the file and [restart GitLab][] for the changes to take effect. - -## Set the maximum file size of the artifacts - -Provided the artifacts are enabled, you can change the maximum file size of the -artifacts through the [Admin area settings](../user/admin_area/settings/continuous_integration.md#maximum-artifacts-size). - -[reconfigure gitlab]: restart_gitlab.md "How to restart GitLab" -[restart gitlab]: restart_gitlab.md "How to restart GitLab" - -## Storage statistics - -You can see the total storage used for build artifacts on groups and projects -in the administration area, as well as through the [groups](../api/groups.md) -and [projects APIs](../api/projects.md). +This document was moved to [jobs_artifacts](jobs_artifacts.md). diff --git a/doc/administration/job_artifacts.md b/doc/administration/job_artifacts.md new file mode 100644 index 00000000000..7b0610ae414 --- /dev/null +++ b/doc/administration/job_artifacts.md @@ -0,0 +1,114 @@ +# Jobs artifacts administration + +>**Notes:** +>- Introduced in GitLab 8.2 and GitLab Runner 0.7.0. +>- Starting with GitLab 8.4 and GitLab Runner 1.0, the artifacts archive format + changed to `ZIP`. +>- Starting with GitLab 8.17, builds are renamed to jobs. +>- This is the administration documentation. For the user guide see + [pipelines/job_artifacts](../user/project/pipelines/job_artifacts.md). + +Artifacts is a list of files and directories which are attached to a job +after it completes successfully. This feature is enabled by default in all +GitLab installations. Keep reading if you want to know how to disable it. + +## Disabling job artifacts + +To disable artifacts site-wide, follow the steps below. + +--- + +**In Omnibus installations:** + +1. Edit `/etc/gitlab/gitlab.rb` and add the following line: + + ```ruby + gitlab_rails['artifacts_enabled'] = false + ``` + +1. Save the file and [reconfigure GitLab][] for the changes to take effect. + +--- + +**In installations from source:** + +1. Edit `/home/git/gitlab/config/gitlab.yml` and add or amend the following lines: + + ```yaml + artifacts: + enabled: false + ``` + +1. Save the file and [restart GitLab][] for the changes to take effect. + +## Storing job artifacts + +After a successful job, GitLab Runner uploads an archive containing the job +artifacts to GitLab. + +To change the location where the artifacts are stored, follow the steps below. + +--- + +**In Omnibus installations:** + +_The artifacts are stored by default in +`/var/opt/gitlab/gitlab-rails/shared/artifacts`._ + +1. To change the storage path for example to `/mnt/storage/artifacts`, edit + `/etc/gitlab/gitlab.rb` and add the following line: + + ```ruby + gitlab_rails['artifacts_path'] = "/mnt/storage/artifacts" + ``` + +1. Save the file and [reconfigure GitLab][] for the changes to take effect. + +--- + +**In installations from source:** + +_The artifacts are stored by default in +`/home/git/gitlab/shared/artifacts`._ + +1. To change the storage path for example to `/mnt/storage/artifacts`, edit + `/home/git/gitlab/config/gitlab.yml` and add or amend the following lines: + + ```yaml + artifacts: + enabled: true + path: /mnt/storage/artifacts + ``` + +1. Save the file and [restart GitLab][] for the changes to take effect. + +## Set the maximum file size of the artifacts + +Provided the artifacts are enabled, you can change the maximum file size of the +artifacts through the [Admin area settings](../user/admin_area/settings/continuous_integration.md#maximum-artifacts-size). + +## Storage statistics + +You can see the total storage used for job artifacts on groups and projects +in the administration area, as well as through the [groups](../api/groups.md) +and [projects APIs](../api/projects.md). + +## Implementation details + +When GitLab receives an artifacts archive, an archive metadata file is also +generated. This metadata file describes all the entries that are located in the +artifacts archive itself. The metadata file is in a binary format, with +additional GZIP compression. + +GitLab does not extract the artifacts archive in order to save space, memory +and disk I/O. It instead inspects the metadata file which contains all the +relevant information. This is especially important when there is a lot of +artifacts, or an archive is a very large file. + +When clicking on a specific file, [GitLab Workhorse] extracts it +from the archive and the download begins. This implementation saves space, +memory and disk I/O. + +[reconfigure gitlab]: restart_gitlab.md "How to restart GitLab" +[restart gitlab]: restart_gitlab.md "How to restart GitLab" +[gitlab workhorse]: https://gitlab.com/gitlab-org/gitlab-workhorse "GitLab Workhorse repository" diff --git a/doc/ci/README.md b/doc/ci/README.md index dd14698e9cd..cbab7c9f18d 100644 --- a/doc/ci/README.md +++ b/doc/ci/README.md @@ -2,22 +2,22 @@ ## CI User documentation -- [Get started with GitLab CI](quick_start/README.md) +- [Getting started with GitLab CI](quick_start/README.md) - [CI examples for various languages](examples/README.md) - [Learn how to enable or disable GitLab CI](enable_or_disable_ci.md) -- [Pipelines and builds](pipelines.md) +- [Pipelines and jobs](pipelines.md) - [Environments and deployments](environments.md) - [Learn how `.gitlab-ci.yml` works](yaml/README.md) -- [Configure a Runner, the application that runs your builds](runners/README.md) +- [Configure a Runner, the application that runs your jobs](runners/README.md) - [Use Docker images with GitLab Runner](docker/using_docker_images.md) - [Use CI to build Docker images](docker/using_docker_build.md) - [CI Variables](variables/README.md) - Learn how to use variables defined in your `.gitlab-ci.yml` or secured ones defined in your project's settings - [Use SSH keys in your build environment](ssh_keys/README.md) -- [Trigger builds through the API](triggers/README.md) -- [Build artifacts](../user/project/builds/artifacts.md) +- [Trigger jobs through the API](triggers/README.md) +- [Job artifacts](../user/project/pipelines/job_artifacts.md) - [User permissions](../user/permissions.md#gitlab-ci) -- [Build permissions](../user/permissions.md#build-permissions) +- [Jobs permissions](../user/permissions.md#jobs-permissions) - [API](../api/ci/README.md) - [CI services (linked docker containers)](services/README.md) - [CI/CD pipelines settings](../user/project/pipelines/settings.md) @@ -27,6 +27,6 @@ ## Breaking changes -- [New CI build permissions model](../user/project/new_ci_build_permissions_model.md) - Read about what changed in GitLab 8.12 and how that affects your builds. - There's a new way to access your Git submodules and LFS objects in builds. +- [New CI job permissions model](../user/project/new_ci_build_permissions_model.md) + Read about what changed in GitLab 8.12 and how that affects your jobs. + There's a new way to access your Git submodules and LFS objects in jobs. diff --git a/doc/ci/build_artifacts/README.md b/doc/ci/build_artifacts/README.md index 05605f10fb4..e7692b8b9a2 100644 --- a/doc/ci/build_artifacts/README.md +++ b/doc/ci/build_artifacts/README.md @@ -1,4 +1 @@ -This document was moved to: - -- [user/project/builds/artifacts.md](../../user/project/builds/artifacts.md) - user guide -- [administration/build_artifacts.md](../../administration/build_artifacts.md) - administrator guide +This document was moved to [user/project/job_artifacts.md](../../user/project/job_artifacts.md). diff --git a/doc/ci/docker/README.md b/doc/ci/docker/README.md index 84eaf29efd1..99669a9272a 100644 --- a/doc/ci/docker/README.md +++ b/doc/ci/docker/README.md @@ -1,4 +1,4 @@ # Docker integration -+ [Using Docker Images](using_docker_images.md) -+ [Using Docker Build](using_docker_build.md) \ No newline at end of file +- [Using Docker Images](using_docker_images.md) +- [Using Docker Build](using_docker_build.md) diff --git a/doc/ci/docker/using_docker_build.md b/doc/ci/docker/using_docker_build.md index 28141cced3b..2b3082acd5d 100644 --- a/doc/ci/docker/using_docker_build.md +++ b/doc/ci/docker/using_docker_build.md @@ -12,6 +12,7 @@ One of the new trends in Continuous Integration/Deployment is to: 1. deploy to a server from the pushed image. It's also useful when your application already has the `Dockerfile` that can be used to create and test an image: + ```bash $ docker build -t my-image dockerfiles/ $ docker run my-docker-image /script/to/run/tests @@ -19,23 +20,23 @@ $ docker tag my-image my-registry:5000/my-image $ docker push my-registry:5000/my-image ``` -This requires special configuration of GitLab Runner to enable `docker` support during builds. +This requires special configuration of GitLab Runner to enable `docker` support during jobs. ## Runner Configuration -There are three methods to enable the use of `docker build` and `docker run` during builds; each with their own tradeoffs. +There are three methods to enable the use of `docker build` and `docker run` during jobs; each with their own tradeoffs. ### Use shell executor The simplest approach is to install GitLab Runner in `shell` execution mode. -GitLab Runner then executes build scripts as the `gitlab-runner` user. +GitLab Runner then executes job scripts as the `gitlab-runner` user. 1. Install [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/#installation). -1. During GitLab Runner installation select `shell` as method of executing build scripts or use command: +1. During GitLab Runner installation select `shell` as method of executing job scripts or use command: ```bash - $ sudo gitlab-ci-multi-runner register -n \ + sudo gitlab-ci-multi-runner register -n \ --url https://gitlab.com/ci \ --registration-token REGISTRATION_TOKEN \ --executor shell \ @@ -50,16 +51,17 @@ GitLab Runner then executes build scripts as the `gitlab-runner` user. 3. Add `gitlab-runner` user to `docker` group: ```bash - $ sudo usermod -aG docker gitlab-runner + sudo usermod -aG docker gitlab-runner ``` 4. Verify that `gitlab-runner` has access to Docker: ```bash - $ sudo -u gitlab-runner -H docker info + sudo -u gitlab-runner -H docker info ``` You can now verify that everything works by adding `docker info` to `.gitlab-ci.yml`: + ```yaml before_script: - docker info @@ -80,12 +82,12 @@ For more information please read [On Docker security: `docker` group considered The second approach is to use the special docker-in-docker (dind) [Docker image](https://hub.docker.com/_/docker/) with all tools installed -(`docker` and `docker-compose`) and run the build script in context of that +(`docker` and `docker-compose`) and run the job script in context of that image in privileged mode. In order to do that, follow the steps: -1. Install [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/#installation). +1. Install [GitLab Runner](https://docs.gitlab.com/runner/install). 1. Register GitLab Runner from the command line to use `docker` and `privileged` mode: @@ -155,10 +157,10 @@ not without its own challenges: escalation which can lead to container breakout. For more information, check out the official Docker documentation on [Runtime privilege and Linux capabilities][docker-cap]. -- Using docker-in-docker, each build is in a clean environment without the past - history. Concurrent builds work fine because every build gets it's own +- When using docker-in-docker, each job is in a clean environment without the past + history. Concurrent jobs work fine because every build gets it's own instance of Docker engine so they won't conflict with each other. But this - also means builds can be slower because there's no caching of layers. + also means jobs can be slower because there's no caching of layers. - By default, `docker:dind` uses `--storage-driver vfs` which is the slowest form offered. To use a different driver, see [Using the overlayfs driver](#using-the-overlayfs-driver). @@ -171,7 +173,7 @@ The third approach is to bind-mount `/var/run/docker.sock` into the container so In order to do that, follow the steps: -1. Install [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/#installation). +1. Install [GitLab Runner](https://docs.gitlab.com/runner/install). 1. Register GitLab Runner from the command line to use `docker` and share `/var/run/docker.sock`: @@ -187,7 +189,9 @@ In order to do that, follow the steps: The above command will register a new Runner to use the special `docker:latest` image which is provided by Docker. **Notice that it's using - the Docker daemon of the Runner itself, and any containers spawned by docker commands will be siblings of the Runner rather than children of the runner.** This may have complications and limitations that are unsuitable for your workflow. + the Docker daemon of the Runner itself, and any containers spawned by docker + commands will be siblings of the Runner rather than children of the runner.** + This may have complications and limitations that are unsuitable for your workflow. The above command will create a `config.toml` entry similar to this: @@ -206,7 +210,8 @@ In order to do that, follow the steps: Insecure = false ``` -1. You can now use `docker` in the build script (note that you don't need to include the `docker:dind` service as when using the Docker in Docker executor): +1. You can now use `docker` in the build script (note that you don't need to + include the `docker:dind` service as when using the Docker in Docker executor): ```yaml image: docker:latest @@ -221,18 +226,23 @@ In order to do that, follow the steps: - docker run my-docker-image /script/to/run/tests ``` -While the above method avoids using Docker in privileged mode, you should be aware of the following implications: -* By sharing the docker daemon, you are effectively disabling all -the security mechanisms of containers and exposing your host to privilege -escalation which can lead to container breakout. For example, if a project -ran `docker rm -f $(docker ps -a -q)` it would remove the GitLab Runner -containers. -* Concurrent builds may not work; if your tests -create containers with specific names, they may conflict with each other. -* Sharing files and directories from the source repo into containers may not -work as expected since volume mounting is done in the context of the host -machine, not the build container. -e.g. `docker run --rm -t -i -v $(pwd)/src:/home/app/src test-image:latest run_app_tests` +While the above method avoids using Docker in privileged mode, you should be +aware of the following implications: + +- By sharing the docker daemon, you are effectively disabling all + the security mechanisms of containers and exposing your host to privilege + escalation which can lead to container breakout. For example, if a project + ran `docker rm -f $(docker ps -a -q)` it would remove the GitLab Runner + containers. +- Concurrent jobs may not work; if your tests + create containers with specific names, they may conflict with each other. +- Sharing files and directories from the source repo into containers may not + work as expected since volume mounting is done in the context of the host + machine, not the build container, e.g.: + + ``` + docker run --rm -t -i -v $(pwd)/src:/home/app/src test-image:latest run_app_tests + ``` ## Using the OverlayFS driver @@ -299,7 +309,7 @@ push to the Registry connected to your project. Its password is provided in the of your Docker images. Here's a more elaborate example that splits up the tasks into 4 pipeline stages, -including two tests that run in parallel. The build is stored in the container +including two tests that run in parallel. The `build` is stored in the container registry and used by subsequent stages, downloading the image when needed. Changes to `master` also get tagged as `latest` and deployed using an application-specific deploy script: @@ -360,17 +370,17 @@ deploy: Some things you should be aware of when using the Container Registry: - You must log in to the container registry before running commands. Putting - this in `before_script` will run it before each build job. + this in `before_script` will run it before each job. - Using `docker build --pull` makes sure that Docker fetches any changes to base images before building just in case your cache is stale. It takes slightly longer, but means you don’t get stuck without security patches to base images. - Doing an explicit `docker pull` before each `docker run` makes sure to fetch the latest image that was just built. This is especially important if you are using multiple runners that cache images locally. Using the git SHA in your - image tag makes this less necessary since each build will be unique and you + image tag makes this less necessary since each job will be unique and you shouldn't ever have a stale image, but it's still possible if you re-build a given commit after a dependency has changed. -- You don't want to build directly to `latest` in case there are multiple builds +- You don't want to build directly to `latest` in case there are multiple jobs happening simultaneously. [docker-in-docker]: https://blog.docker.com/2013/09/docker-can-now-run-within-docker/ diff --git a/doc/ci/docker/using_docker_images.md b/doc/ci/docker/using_docker_images.md index aba77490915..9dee61bfa1f 100644 --- a/doc/ci/docker/using_docker_images.md +++ b/doc/ci/docker/using_docker_images.md @@ -8,7 +8,7 @@ run applications in independent "containers" that are run within a single Linux instance. [Docker Hub][hub] has a rich database of pre-built images that can be used to test and build your applications. -Docker, when used with GitLab CI, runs each build in a separate and isolated +Docker, when used with GitLab CI, runs each job in a separate and isolated container using the predefined image that is set up in [`.gitlab-ci.yml`](../yaml/README.md). @@ -45,12 +45,12 @@ can be found at [Docker Hub][hub]. For more information about images and Docker Hub please read the [Docker Fundamentals][] documentation. In short, with `image` we refer to the docker image, which will be used to -create a container on which your build will run. +create a container on which your job will run. ## What is a service The `services` keyword defines just another docker image that is run during -your build and is linked to the docker image that the `image` keyword defines. +your job and is linked to the docker image that the `image` keyword defines. This allows you to access the service image during build time. The service image can run any application, but the most common use case is to @@ -61,13 +61,13 @@ time the project is built. You can see some widely used services examples in the relevant documentation of [CI services examples](../services/README.md). -### How services are linked to the build +### How services are linked to the job To better understand how the container linking works, read [Linking containers together][linking-containers]. To summarize, if you add `mysql` as service to your application, the image will -then be used to create a container that is linked to the build container. +then be used to create a container that is linked to the job container. The service container for MySQL will be accessible under the hostname `mysql`. So, in order to access your database service you have to connect to the host @@ -133,7 +133,7 @@ Look for the `[runners.docker]` section: services = ["mysql:latest", "postgres:latest"] ``` -The image and services defined this way will be added to all builds run by +The image and services defined this way will be added to all job run by that runner. ## Define an image from a private Docker registry @@ -167,7 +167,7 @@ services: - tutum/wordpress:latest ``` -When the build is run, `tutum/wordpress` will be started and you will have +When the job is run, `tutum/wordpress` will be started and you will have access to it from your build container under the hostname `tutum__wordpress`. The alias hostname for the service is made from the image name following these @@ -202,21 +202,21 @@ See the specific documentation for ## How Docker integration works -Below is a high level overview of the steps performed by docker during build +Below is a high level overview of the steps performed by docker during job time. 1. Create any service container: `mysql`, `postgresql`, `mongodb`, `redis`. 1. Create cache container to store all volumes as defined in `config.toml` and `Dockerfile` of build image (`ruby:2.1` as in above example). 1. Create build container and link any service container to build container. -1. Start build container and send build script to the container. -1. Run build script. +1. Start build container and send job script to the container. +1. Run job script. 1. Checkout code in: `/builds/group-name/project-name/`. 1. Run any step defined in `.gitlab-ci.yml`. 1. Check exit status of build script. 1. Remove build container and all created service containers. -## How to debug a build locally +## How to debug a job locally *Note: The following commands are run without root privileges. You should be able to run docker with your regular user account.* diff --git a/doc/ci/enable_or_disable_ci.md b/doc/ci/enable_or_disable_ci.md index 7971daf2637..796a025b951 100644 --- a/doc/ci/enable_or_disable_ci.md +++ b/doc/ci/enable_or_disable_ci.md @@ -12,7 +12,7 @@ API. --- GitLab CI is exposed via the `/pipelines` and `/builds` pages of a project. -Disabling GitLab CI in a project does not delete any previous builds. +Disabling GitLab CI in a project does not delete any previous jobs. In fact, the `/pipelines` and `/builds` pages can still be accessed, although it's hidden from the left sidebar menu. diff --git a/doc/ci/environments.md b/doc/ci/environments.md index cb62ed723f0..3bba94f8b83 100644 --- a/doc/ci/environments.md +++ b/doc/ci/environments.md @@ -75,7 +75,7 @@ We have defined 3 [stages](yaml/README.md#stages): - deploy The jobs assigned to these stages will run in this order. If a job fails, then -the builds that are assigned to the next stage won't run, rendering the pipeline +the jobs that are assigned to the next stage won't run, rendering the pipeline as failed. In our case, the `test` job will run first, then the `build` and lastly the `deploy_staging`. With this, we ensure that first the tests pass, then our app is able to be built successfully, and lastly we deploy to the @@ -119,7 +119,7 @@ There's a bunch of information there, specifically you can see: - The environment's name with a link to its deployments - The last deployment ID number and who performed it -- The build ID of the last deployment with its respective job name +- The job ID of the last deployment with its respective job name - The commit information of the last deployment such as who committed, to what branch and the Git SHA of the commit - The exact time the last deployment was performed @@ -219,9 +219,9 @@ deploy_prod: The `when: manual` action exposes a play button in GitLab's UI and the `deploy_prod` job will only be triggered if and when we click that play button. -You can find it in the pipeline, build, environment, and deployment views. +You can find it in the pipeline, job, environment, and deployment views. -| Pipelines | Single pipeline | Environments | Deployments | Builds | +| Pipelines | Single pipeline | Environments | Deployments | jobs | | --------- | ----------------| ------------ | ----------- | -------| | ![Pipelines manual action](img/environments_manual_action_pipelines.png) | ![Pipelines manual action](img/environments_manual_action_single_pipeline.png) | ![Environments manual action](img/environments_manual_action_environments.png) | ![Deployments manual action](img/environments_manual_action_deployments.png) | ![Builds manual action](img/environments_manual_action_builds.png) | @@ -419,7 +419,7 @@ Behind the scenes: - GitLab Runner picks up the changes and starts running the jobs - The jobs run sequentially as defined in `stages` - First, the tests pass - - Then, the build begins and successfully also passes + - Then, the job begins and successfully also passes - Lastly, the app is deployed to an environment with a name specific to the branch diff --git a/doc/ci/examples/deployment/README.md b/doc/ci/examples/deployment/README.md index 7d91ce6710f..d28aa282825 100644 --- a/doc/ci/examples/deployment/README.md +++ b/doc/ci/examples/deployment/README.md @@ -91,7 +91,7 @@ Secure Variables can added by going to `Project > Variables > Add Variable`. **This feature requires `gitlab-runner` with version equal or greater than 0.4.0.** The variables that are defined in the project settings are sent along with the build script to the runner. The secure variables are stored out of the repository. Never store secrets in your projects' .gitlab-ci.yml. -It is also important that secret's value is hidden in the build log. +It is also important that secret's value is hidden in the job log. You access added variable by prefixing it's name with `$` (on non-Windows runners) or `%` (for Windows Batch runners): 1. `$SECRET_VARIABLE` - use it for non-Windows runners diff --git a/doc/ci/examples/deployment/composer-npm-deploy.md b/doc/ci/examples/deployment/composer-npm-deploy.md index 5334a73e1f5..8b0d8a003fd 100644 --- a/doc/ci/examples/deployment/composer-npm-deploy.md +++ b/doc/ci/examples/deployment/composer-npm-deploy.md @@ -65,7 +65,7 @@ In order, this means that: 1. We check if the `ssh-agent` is available and we install it if it's not; 2. We create the `~/.ssh` folder; 3. We make sure we're running bash; -4. We disable host checking (we don't ask for user accept when we first connect to a server; and since every build will equal a first connect, we kind of need this) +4. We disable host checking (we don't ask for user accept when we first connect to a server; and since every job will equal a first connect, we kind of need this) And this is basically all you need in the `before_script` section. @@ -153,4 +153,4 @@ stage_deploy: - scp -P22 -r build/* server_user@server_host:htdocs/wp-content/themes/_tmp - ssh -p22 server_user@server_host "mv htdocs/wp-content/themes/live htdocs/wp-content/themes/_old && mv htdocs/wp-content/themes/_tmp htdocs/wp-content/themes/live" - ssh -p22 server_user@server_host "rm -rf htdocs/wp-content/themes/_old" -``` \ No newline at end of file +``` diff --git a/doc/ci/examples/php.md b/doc/ci/examples/php.md index 5eeec92d976..f2dd12b67d3 100644 --- a/doc/ci/examples/php.md +++ b/doc/ci/examples/php.md @@ -15,10 +15,10 @@ This will allow us to test PHP projects against different versions of PHP. However, not everything is plug 'n' play, you still need to configure some things manually. -As with every build, you need to create a valid `.gitlab-ci.yml` describing the +As with every job, you need to create a valid `.gitlab-ci.yml` describing the build environment. -Let's first specify the PHP image that will be used for the build process +Let's first specify the PHP image that will be used for the job process (you can read more about what an image means in the Runner's lingo reading about [Using Docker images](../docker/using_docker_images.md#what-is-image)). @@ -58,8 +58,8 @@ docker-php-ext-install pdo_mysql ``` You might wonder what `docker-php-ext-install` is. In short, it is a script -provided by the official php docker image that you can use to easilly install -extensions. For more information read the the documentation at +provided by the official php docker image that you can use to easily install +extensions. For more information read the documentation at . Now that we created the script that contains all prerequisites for our build @@ -142,7 +142,7 @@ Of course, `my_php.ini` must be present in the root directory of your repository ## Test PHP projects using the Shell executor -The shell executor runs your builds in a terminal session on your server. +The shell executor runs your job in a terminal session on your server. Thus, in order to test your projects you first need to make sure that all dependencies are installed. @@ -280,7 +280,7 @@ that runs on [GitLab.com](https://gitlab.com) using our publicly available [shared runners](../runners/README.md). Want to hack on it? Simply fork it, commit and push your changes. Within a few -moments the changes will be picked by a public runner and the build will begin. +moments the changes will be picked by a public runner and the job will begin. [php-hub]: https://hub.docker.com/r/_/php/ [phpenv]: https://github.com/phpenv/phpenv diff --git a/doc/ci/examples/test-scala-application.md b/doc/ci/examples/test-scala-application.md index 85f8849fa99..01c13941c21 100644 --- a/doc/ci/examples/test-scala-application.md +++ b/doc/ci/examples/test-scala-application.md @@ -51,14 +51,14 @@ The `deploy` stage automatically deploys the project to Heroku using dpl. You can use other versions of Scala and SBT by defining them in `build.sbt`. -## Display test coverage in build +## Display test coverage in job Add the `Coverage was \[\d+.\d+\%\]` regular expression in the -**Settings ➔ Edit Project ➔ Test coverage parsing** project setting to +**Settings ➔ CI/CD Pipelines ➔ Coverage report** project setting to retrieve the [test coverage] rate from the build trace and have it -displayed with your builds. +displayed with your jobs. -**Builds** must be enabled for this option to appear. +**Pipelines** must be enabled for this option to appear. ## Heroku application diff --git a/doc/ci/git_submodules.md b/doc/ci/git_submodules.md index 869743ce80a..36c6e153d95 100644 --- a/doc/ci/git_submodules.md +++ b/doc/ci/git_submodules.md @@ -1,14 +1,14 @@ # Using Git submodules with GitLab CI > **Notes:** -- GitLab 8.12 introduced a new [CI build permissions model][newperms] and you +- GitLab 8.12 introduced a new [CI job permissions model][newperms] and you are encouraged to upgrade your GitLab instance if you haven't done already. If you are **not** using GitLab 8.12 or higher, you would need to work your way around submodules in order to access the sources of e.g., `gitlab.com/group/project` with the use of [SSH keys](ssh_keys/README.md). -- With GitLab 8.12 onward, your permissions are used to evaluate what a CI build +- With GitLab 8.12 onward, your permissions are used to evaluate what a CI job can access. More information about how this system works can be found in the - [Build permissions model](../user/permissions.md#builds-permissions). + [Jobs permissions model](../user/permissions.md#jobs-permissions). - The HTTP(S) Git protocol [must be enabled][gitpro] in your GitLab instance. ## Configuring the `.gitmodules` file @@ -27,7 +27,7 @@ Let's consider the following example: If you are using GitLab 8.12+ and your submodule is on the same GitLab server, you must update your `.gitmodules` file to use **relative URLs**. Since Git allows the usage of relative URLs for your `.gitmodules` configuration, -this easily allows you to use HTTP(S) for cloning all your CI builds and SSH +this easily allows you to use HTTP(S) for cloning all your CI jobs and SSH for all your local checkouts. The `.gitmodules` would look like: ```ini @@ -38,7 +38,7 @@ for all your local checkouts. The `.gitmodules` would look like: The above configuration will instruct Git to automatically deduce the URL that should be used when cloning sources. Whether you use HTTP(S) or SSH, Git will use -that same channel and it will allow to make all your CI builds use HTTP(S) +that same channel and it will allow to make all your CI jobs use HTTP(S) (because GitLab CI only uses HTTP(S) for cloning your sources), and all your local clones will continue using SSH. @@ -57,13 +57,13 @@ Once `.gitmodules` is correctly configured, you can move on to ## Using Git submodules in your CI jobs There are a few steps you need to take in order to make submodules work -correctly with your CI builds: +correctly with your CI jobs: 1. First, make sure you have used [relative URLs](#configuring-the-gitmodules-file) for the submodules located in the same GitLab server. 1. Next, if you are using `gitlab-ci-multi-runner` v1.10+, you can set the `GIT_SUBMODULE_STRATEGY` variable to either `normal` or `recursive` to tell - the runner to fetch your submodules before the build: + the runner to fetch your submodules before the job: ```yaml variables: GIT_SUBMODULE_STRATEGY: recursive @@ -87,9 +87,9 @@ The rationale to set the `sync` and `update` in `before_script` is because of the way Git submodules work. On a fresh Runner workspace, Git will set the submodule URL including the token in `.git/config` (or `.git/modules//config`) based on `.gitmodules` and the current -remote URL. On subsequent builds on the same Runner, `.git/config` is cached +remote URL. On subsequent jobs on the same Runner, `.git/config` is cached and already contains a full URL for the submodule, corresponding to the previous -build, and to **a token from a previous build**. `sync` allows to force updating +job, and to **a token from a previous job**. `sync` allows to force updating the full URL. [gitpro]: ../user/admin_area/settings/visibility_and_access_controls.md#enabled-git-access-protocols diff --git a/doc/ci/pipelines.md b/doc/ci/pipelines.md index ab289876252..3134405e10b 100644 --- a/doc/ci/pipelines.md +++ b/doc/ci/pipelines.md @@ -1,14 +1,14 @@ -# Introduction to pipelines and builds +# Introduction to pipelines and jobs >**Note:** Introduced in GitLab 8.8. ## Pipelines -A pipeline is a group of [builds][] that get executed in [stages][](batches). -All of the builds in a stage are executed in parallel (if there are enough +A pipeline is a group of [jobs][] that get executed in [stages][](batches). +All of the jobs in a stage are executed in parallel (if there are enough concurrent [Runners]), and if they all succeed, the pipeline moves on to the -next stage. If one of the builds fails, the next stage is not (usually) +next stage. If one of the jobs fails, the next stage is not (usually) executed. ![Pipelines example](img/pipelines.png) @@ -35,10 +35,10 @@ Example continuous delivery flow: ![CD Flow](img/pipelines-goal.svg) -## Builds +## Jobs -Builds are individual runs of [jobs]. Not to be confused with a `build` job or -`build` stage. +Jobs can be defined in the [`.gitlab-ci.yml`][jobs-yaml] file. Not to be +confused with a `build` job or `build` stage. ## Defining pipelines @@ -52,11 +52,11 @@ See full [documentation](yaml/README.md#jobs). You can find the current and historical pipeline runs under **Pipelines** for your project. -## Seeing build status +## Seeing job status -Clicking on a pipeline will show the builds that were run for that pipeline. -Clicking on an individual build will show you its build trace, and allow you to -cancel the build, retry it, or erase the build trace. +Clicking on a pipeline will show the jobs that were run for that pipeline. +Clicking on an individual job will show you its job trace, and allow you to +cancel the job, retry it, or erase the job trace. ## How the pipeline duration is calculated @@ -91,11 +91,11 @@ total running time should be: ## Badges -Build status and test coverage report badges are available. You can find their +Job status and test coverage report badges are available. You can find their respective link in the [Pipelines settings] page. -[builds]: #builds -[jobs]: yaml/README.md#jobs +[jobs]: #jobs +[jobs-yaml]: yaml/README.md#jobs [stages]: yaml/README.md#stages [runners]: runners/README.html [pipelines settings]: ../user/project/pipelines/settings.md diff --git a/doc/ci/quick_start/README.md b/doc/ci/quick_start/README.md index 1104edaabe9..2a5401ac13a 100644 --- a/doc/ci/quick_start/README.md +++ b/doc/ci/quick_start/README.md @@ -1,4 +1,4 @@ -# Quick Start +# Getting started with GitLab CI >**Note:** Starting from version 8.0, GitLab [Continuous Integration][ci] (CI) is fully integrated into GitLab itself and is [enabled] by default on all @@ -7,7 +7,7 @@ projects. GitLab offers a [continuous integration][ci] service. If you [add a `.gitlab-ci.yml` file][yaml] to the root directory of your repository, and configure your GitLab project to use a [Runner], then each merge request or -push triggers your CI [pipeline]. +push, triggers your CI [pipeline]. The `.gitlab-ci.yml` file tells the GitLab runner what to do. By default it runs a pipeline with three [stages]: `build`, `test`, and `deploy`. You don't need to @@ -31,13 +31,13 @@ So in brief, the steps needed to have a working CI can be summed up to: From there on, on every push to your Git repository, the Runner will automagically start the pipeline and the pipeline will appear under the -project's `/pipelines` page. +project's **Pipelines** page. --- This guide assumes that you: -- have a working GitLab instance of version 8.0 or higher or are using +- have a working GitLab instance of version 8.0+r or are using [GitLab.com](https://gitlab.com) - have a project in GitLab that you would like to use CI for @@ -54,7 +54,7 @@ The `.gitlab-ci.yml` file is where you configure what CI does with your project. It lives in the root of your repository. On any push to your repository, GitLab will look for the `.gitlab-ci.yml` -file and start builds on _Runners_ according to the contents of the file, +file and start jobs on _Runners_ according to the contents of the file, for that commit. Because `.gitlab-ci.yml` is in the repository and is version controlled, old @@ -63,11 +63,12 @@ have different pipelines and jobs, and you have a single source of truth for CI. You can read more about the reasons why we are using `.gitlab-ci.yml` [in our blog about it][blog-ci]. -**Note:** `.gitlab-ci.yml` is a [YAML](https://en.wikipedia.org/wiki/YAML) file -so you have to pay extra attention to indentation. Always use spaces, not tabs. - ### Creating a simple `.gitlab-ci.yml` file +>**Note:** +`.gitlab-ci.yml` is a [YAML](https://en.wikipedia.org/wiki/YAML) file +so you have to pay extra attention to indentation. Always use spaces, not tabs. + You need to create a file named `.gitlab-ci.yml` in the root directory of your repository. Below is an example for a Ruby on Rails project. @@ -88,7 +89,7 @@ rubocop: - bundle exec rubocop ``` -This is the simplest possible build configuration that will work for most Ruby +This is the simplest possible configuration that will work for most Ruby applications: 1. Define two jobs `rspec` and `rubocop` (the names are arbitrary) with @@ -98,22 +99,22 @@ applications: The `.gitlab-ci.yml` file defines sets of jobs with constraints of how and when they should be run. The jobs are defined as top-level elements with a name (in our case `rspec` and `rubocop`) and always have to contain the `script` keyword. -Jobs are used to create builds, which are then picked by +Jobs are used to create jobs, which are then picked by [Runners](../runners/README.md) and executed within the environment of the Runner. What is important is that each job is run independently from each other. If you want to check whether your `.gitlab-ci.yml` file is valid, there is a Lint tool under the page `/ci/lint` of your GitLab instance. You can also find -a "CI Lint" button to go to this page under **Pipelines > Pipelines** and -**Pipelines > Builds** in your project. +a "CI Lint" button to go to this page under **Pipelines ➔ Pipelines** and +**Pipelines ➔ Jobs** in your project. For more information and a complete `.gitlab-ci.yml` syntax, please read -[the documentation on .gitlab-ci.yml](../yaml/README.md). +[the reference documentation on .gitlab-ci.yml](../yaml/README.md). ### Push `.gitlab-ci.yml` to GitLab -Once you've created `.gitlab-ci.yml`, you should add it to your git repository +Once you've created `.gitlab-ci.yml`, you should add it to your Git repository and push it to GitLab. ```bash @@ -125,28 +126,27 @@ git push origin master Now if you go to the **Pipelines** page you will see that the pipeline is pending. -You can also go to the **Commits** page and notice the little clock icon next +You can also go to the **Commits** page and notice the little pause icon next to the commit SHA. ![New commit pending](img/new_commit.png) -Clicking on the clock icon you will be directed to the builds page for that -specific commit. +Clicking on it you will be directed to the jobs page for that specific commit. -![Single commit builds page](img/single_commit_status_pending.png) +![Single commit jobs page](img/single_commit_status_pending.png) Notice that there are two jobs pending which are named after what we wrote in `.gitlab-ci.yml`. The red triangle indicates that there is no Runner configured -yet for these builds. +yet for these jobs. -The next step is to configure a Runner so that it picks the pending builds. +The next step is to configure a Runner so that it picks the pending jobs. ## Configuring a Runner -In GitLab, Runners run the builds that you define in `.gitlab-ci.yml`. A Runner +In GitLab, Runners run the jobs that you define in `.gitlab-ci.yml`. A Runner can be a virtual machine, a VPS, a bare-metal machine, a docker container or even a cluster of containers. GitLab and the Runners communicate through an API, -so the only requirement is that the Runner's machine has Internet access. +so the only requirement is that the Runner's machine has [Internet] access. A Runner can be specific to a certain project or serve multiple projects in GitLab. If it serves all projects it's called a _Shared Runner_. @@ -155,9 +155,9 @@ Find more information about different Runners in the [Runners](../runners/README.md) documentation. You can find whether any Runners are assigned to your project by going to -**Settings > Runners**. Setting up a Runner is easy and straightforward. The -official Runner supported by GitLab is written in Go and can be found at -. +**Settings ➔ Runners**. Setting up a Runner is easy and straightforward. The +official Runner supported by GitLab is written in Go and its documentation +can be found at . In order to have a functional Runner you need to follow two steps: @@ -167,28 +167,25 @@ In order to have a functional Runner you need to follow two steps: Follow the links above to set up your own Runner or use a Shared Runner as described in the next section. -For other types of unofficial Runners written in other languages, see the -[instructions for the various GitLab Runners](https://about.gitlab.com/gitlab-ci/#gitlab-runner). - Once the Runner has been set up, you should see it on the Runners page of your -project, following **Settings > Runners**. +project, following **Settings ➔ Runners**. ![Activated runners](img/runners_activated.png) ### Shared Runners -If you use [GitLab.com](https://gitlab.com/) you can use **Shared Runners** +If you use [GitLab.com](https://gitlab.com/) you can use the **Shared Runners** provided by GitLab Inc. These are special virtual machines that run on GitLab's infrastructure and can build any project. -To enable **Shared Runners** you have to go to your project's -**Settings > Runners** and click **Enable shared runners**. +To enable the **Shared Runners** you have to go to your project's +**Settings ➔ Runners** and click **Enable shared runners**. [Read more on Shared Runners](../runners/README.md). -## Seeing the status of your pipeline and builds +## Seeing the status of your pipeline and jobs After configuring the Runner successfully, you should see the status of your last commit change from _pending_ to either _running_, _success_ or _failed_. @@ -197,23 +194,23 @@ You can view all pipelines by going to the **Pipelines** page in your project. ![Commit status](img/pipelines_status.png) -Or you can view all builds, by going to the **Pipelines > Builds** page. +Or you can view all jobs, by going to the **Pipelines ➔ Jobs** page. ![Commit status](img/builds_status.png) -By clicking on a Build ID, you will be able to see the log of that build. -This is important to diagnose why a build failed or acted differently than +By clicking on a job's status, you will be able to see the log of that job. +This is important to diagnose why a job failed or acted differently than you expected. ![Build log](img/build_log.png) You are also able to view the status of any commit in the various pages in -GitLab, such as **Commits** and **Merge Requests**. +GitLab, such as **Commits** and **Merge requests**. ## Enabling build emails If you want to receive e-mail notifications about the result status of the -builds, you should explicitly enable the **Builds Emails** service under your +jobs, you should explicitly enable the **Builds Emails** service under your project's settings. For more information read the @@ -224,9 +221,7 @@ For more information read the Visit the [examples README][examples] to see a list of examples using GitLab CI with various languages. -Awesome! You started using CI in GitLab! - -[runner-install]: https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/tree/master#install-gitlab-runner +[runner-install]: https://docs.gitlab.com/runner/install/ [blog-ci]: https://about.gitlab.com/2015/05/06/why-were-replacing-gitlab-ci-jobs-with-gitlab-ci-dot-yml/ [examples]: ../examples/README.md [ci]: https://about.gitlab.com/gitlab-ci/ @@ -235,3 +230,4 @@ Awesome! You started using CI in GitLab! [enabled]: ../enable_or_disable_ci.md [stages]: ../yaml/README.md#stages [pipeline]: ../pipelines.md +[internet]: https://about.gitlab.com/images/theinternet.png diff --git a/doc/ci/quick_start/img/build_log.png b/doc/ci/quick_start/img/build_log.png index 87643d62d583efe8417ce826d03eff9d41a09cf1..3a7248ca772700ce04270b7844437de7af6cd9f4 100644 GIT binary patch literal 35261 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 diff --git a/doc/ci/quick_start/img/builds_status.png b/doc/ci/quick_start/img/builds_status.png index d287ae3064f132fa04706f43292e36b50f519632..f829240f3b3329de605e62d6eec76e869a2a79b1 100644 GIT binary patch literal 19127 zcmb@u1yCGe*Dgpx2nht&;O-J2cz}@L?(S}b>!1nl?(S~EAp;5SIt&iMVFnm%a9O_p z?q9d+?pEEc-90rmHQm*9`gxx|r{DKHeR?8Ql%z4xNYIdwkT7IrB-D_Q-XM^WUg^F= ze%Uib3B5!@LPkgw|I^Wkv##KZ&?3f?epi)OiWC=y1J{YtA&MyfByVo$X&3uwl+66 zpM%}R#KagF7$hVltgo+MUtecuXDccyIy*a;m6gfXxI{-sr>3Uz7B9bg_3HfYQAI_i zsPA+x~nlV!k006G;9t(aL4h;=09RE{OQws4Q>$9-xYBFhY+OCd&B>jfo<6yGpw5CoShaR9?j?d+ zbNqC~%57C5I^BAbh6V@B+qVPy4}^tRcR;%R&2^jn%lcMJ zBdpGD5xu>=#8~LRR{M(Q;pyq=9UB)a^&6ozQ(wwfILPq%ODs+ix3Ke@iC~A2p~EF% zvrkrjkCKdYlZFH(6NJs zj;WpW>7(S<`MmBWc@9cbF-GI$Kjx{ugXurEti$GFy%w_l^b>l14Cbz%?LA!}V#mtn zX_Z^^LxoB$11iRAmQNcJ?OkNqdbg*l-1YyYd%`O_&wlm()At+NLmb8wugU_{8oaYZ zUH0Ku(N20Unu5BbY@;i%tFd_j8X^rrCh*qDUq|DMo^j*WpI!e(SH}M=?3{|y>Z#i|lS4??56M2ZPk$pLq9*!DTN%e4u*1AmT`_`P zy^3x3qUrZKiE%MjNPR#SKiaZZdxFHy1p&5|QF`qUxIOt6rRAY{l+7D0Ds*pNQtp2> zAz!*qAf2PxCDOmAP$So}h4e`}9A6}7c)Jxa@Hi&o3^~X*9Z2iTg@mMrg@jaziWCG! zM*0eUg+%p|#|glfO;Sy0s8V@*mtt<%Tj4iSJa3I=-r13yO}~!uht79{{Bf4(c9IJS zjQ1}G>i1C-fjrqchS@y9q(Sl%#1@jpRkrTm(LX&^rUwwnh~5A4Wk+ld5r1X=>`5-c5ZwWGQC!TUmb;2^e6kqLX3NW`NtC4EDC?8f-6js0T zg{XNj}bb(yx=QwunYuw~NQxNQ32qHYtO9 zHLAaMV=(#4ldQGR_Ei^$cAu*z%HkJ^?+$<3b6Tdb+ru4E|MZs`Eg$v>A|~H6`@s-s z*Xc>#bv3%`aIg$$D}94>6_~t@OLWYAJz`$-OxJ9sbSxo}L_edXyGn>@Nm7v>!bUBq zY)d;W2Z9vU(&*ziem0+|E|cIVutZM-&+*$kcK7fm%9C1DGM2EIt~+teblH2()l^PS zCSoBkJAAIryCYa4MweRpb#>y2q~HJr2+#4CufG-!3B1ezvdYcjsQ!k4c}}Vq9VdUK z+&`fXiKrS_W%@q0-kKT;dvZPu8WQr+m|ZwbsTLk(-uh>Dn=hr93*Lk!II|)yCCBUx z=xNfd9xR4>+DV!X6N^tK^wpF%YR(pivb^{Hbc&nvF_6gXt?_m(QRv0F?UF$I(CXtH z*3EZnjrbtTHvge#eLH@6AE=N1s3a2qOWv%u-@Y_&S0k>};1XH*U22l<-s^#U<7^sM z>+Z~g)sJxW{+!5fRp%ry(1PphZYL`Ye4vOlPy~5F zi{y1n@_$6Ovby^8^(#Ri7qZy2+mFGtBYs?Jyz0vEx+O(OitWc!R z=$&2(#g`*+wW2Ryp8t|ZMkUcT54Ani=c$bl%7@5f8m%|($%%4*M7ySB#|-sL-tHwj zK6fqYb+Lo)8Z`$>oAA)29imakB_yJ0>VdL=nk+^gCpi-h)ndz%lKVKBfQ*1SP+>wd5xDZJs#vsT+98< zmE>V`wJs-^Dh1ODZluDAtA=iOCbftNCf=;p7^`Ye`2L?@u4P=c`PlwDd1MiG#lu#w zr}XAQy8CldO9s(SJpX=_ubUV>hzpv}O^5zk+?*s3+1)FfzelLm$DD75N89obb!5w4 z*m^o$P;owsii-L;l=aT`s8M?eBAUCt)LbV!w_F*zU$N*V3v6*(v|>6cgG9mZ$7pRQ zo1wR!0N{T@!QPc}&Mb19kXutL;=RG~g;5O8=%C(e$7>l-A*g+hQ?eNDbPKYfysx3y zb?YY0npyDm4A-6`|L$uQq=ESYeNgvhpgNZs^o?H!n z*E<7GUE2qKsI-ojm+OG$o%adO7n3^ZiHbu-+QItP$+)%dIsWY?p0z6S&rC3)n# zJbb#{$J1^K8iD!erhK)XzmI^@41a&&yEK7}*ngLBd|TB&68q`ToIvai9YHmM{}{iz z?m#jY9f%Xi0i!p1pFu2yC=(_Z3&a54p@QLAKxnVCI7=H*oL@biyuROG^2UvVcHyLX z_4*c+%spg3M<^9-i1cjj8O9G@1a%jHEEM%fj8vKqLPDEa7UD1k@72-UQ5SF7Mpexe z2zje5W;Bg%1$|#BmqB^(F(V788oyyIU@BZzu7Q`i8oC~*5(?jqCP6bcvRk9dW17g9(>GF_q_=?W z0pex!-_%@MWkp4j9AlY@6rntWss{pc$qry*+f2vja4%B>Hz(oI1%$Fne}(fnKSw#m zh@5cb-vCgbT78Ri)it%Wh+sr5>;01dv!Gkrzj(Xn&NZ7PLw59w)YaY`QYq2zB|~ zQl#Xj3V247Ts^9}vV$f*H@O9JDO&iF{RvcblhevxYt>^?dBRU%4@6VceV2mYB*~1Q z@HOZgSHe3wn$7rk_&-p+O~3PTC1luq;-Z!?0;5u1joe%hluuas8^b+{yN}j<{X6(O zoV+I8Cl#W{G_gw#uA6j~rp8T|GX)=klg$d2^43qg{=lbqJt6x!rOna5%e&-L`Avj6 zx4O&oIGbdih7{hn%Xb#3nV0U&rh(N7DZJ|+))i;2SHiogM6(PhD(tn}u+xF44f>IC z9d+sUMDTAcQ=HtMk+kfTt%mub63sT_$pMob!;fRt$?I>|DVrH5Y)ku9?>OW+f0 z<@@zbvSQ1M8YAIe1D#{%ANVnNR+V}B=o5j|>v&|6Ld<~6xEnAYI@WJ(qrGQBIk#%8 z0C7L8_?WoXYW)aBQ1D`H$o#*ZVA5Q}-{`Vpz(Lt9nXz!df;BacpxoW)TzG7##VC_f z95E~|%e{$CyJF2&=gaz6S;x83bN_pe?=lN!!+dhZqdd9N$Hz)fwo(^zgKR=u<%*!} z!@`(Xw$p2*qhBrne$dEJ)D2b`Uy!g!lO5X2C&(<}QV&r%NiS{b| zd@^%Z50HpY^jq}wC&X2=;N4iuqowyB9C*iWMV4Qit;KS6rH+9-`@w6#;Y(VV)6}zJ zWLNGp`PYS`f$eHz=^ldy=QreMb7gsz{U9og`twPn-va&?@=#`UtZr?>Rd=tubFl}M z5#I{_wif^f{{^5XRjK&FOK7x9MUN`JwRngLXz0{t{fdg3JgGkH;!vX%qa5A()jxSz z&|R9mZLz(8p#VCPu^jXxbZyA>Yytme>;JQz8p$Fd^ zk0FfGMT|qMCavksolKE>=R9qJX*7F4FVg~{GS^nS72`O2qN(0xXS7!)(lMe{zwkT= z>(0P#-lGwnsJBsCxhX(9kp)VCDEWgNhooVO+WoR03jnYLfOdE$0Po1l*7qJ}cMb~= zwyVoaDZgLHtB)b1FTemSY)O0#=7L zxy=~cKx5L1IOK}*C@2qq)2wC*+gWj6YH-iuoK9SN5j0-xkv#J+nkT^1x%6w z&nFEJl{^bOjC$US*q7_@A%5k2)%-ZdZ1!Wuk*`7&K*yUQvaD0vT0Eff9EnF*+g+NQ z1@w0)0|37QtWCA{kw|^4ZI&870U)iefaHVCFEjngyJv{GOEXtnJ6Bf&L($KOZ!8;C zu=(>te|KyoUA4~5XL&Ino2vmMNzvjoAY&1;b>S7))(bRk{RPOK^d)0v4;!Ojo`fNL zai#Xyw^2{lo+4hWVxwx&RksvNqO*Q<{Zh}|j~|<6lNf60NI-}7hCI$weIX4r(QcRTVXZK3JxaG#b;Nqob*MmT!U7^d# zyB_1tub3*iZ~c)gM!)0vT5@nN*jKhy#2kO)r4~d;7&7CM!Gfw6%NhsDDUT0 zwT;u}N5{e0a;C-UnL99`;zQHA#^9j$cJ~27=szskiFChwTkkHlFHiQ8cIdbrab(i> z$yF-2g_o64lq3X~uK*pOlIe3dhlP>W$xxswrXmRB;pj&$Lh&czVVz;*Fx*_byG@U@ z^w~Omqv!kbj>Gf#L3|U0b$v{{4~YffjI{w z$XO8`b>$p^zP!5=v!nnJQ@zLv8A(qx1y)0P<-W)5()wxF@2*86X%*u|{A^%iUerIX z@HAl2$-x9#=Z%ra)SDQ_md?%`z32PJ6 z_If*h)QyV;bO*qvU_C7sG}lx(>YO%9eG9vY?Nz@swzfc!*ZyRzFhAeZ(+U7R4)y3o zlHuNK^^<@$E=~)X3tzanX@t4CMMPw;G4VH2?=tXjG4LJMf!VT+^o}tN4n43fTY(SN zzpXo7YsdLdWJ@nb_Phh3U-LPxzNnq;7tpf}Y~Kc~%5++f=>h2HY+W+*p64^WwF?k89P}><~E4mxXfeJzo{8*Fz|eu{)k}hbYwGDr%0N zw2o%QFaB5itwJqvEt_#CZX$%TD>66U_O5*oRUqkE`{0xe%oH>Bez4n~ua>T-1o_<_ zAP|983>wgh?rQ)Skb- z2f0N?vdC}WP^VUF)4dK2rD~oJ5*k*QE9j&moHvp1`HaH*B?MEQIRpuh9*@Yf?T1|j zHsM5ZZ3*tTpV-!~Wa~e`L;96I94UbR{0yDZ?Z{BLE+XQ|%pAyZgNwAGy-6v;kGg&4 zYdi6pdc=GmPPxB2q#d>?MA)@vQ_&&a{F>Loy_O^#@eQ|hF;=f%irIBryFY9PW6o!N z7wwp9j(v7)y|asibAZ>&aTsDhqR1DT$kgZK3W^ai_c^@%^C!8y9`bv=^414F*8?(q zMyP$I{XOQ)7^Vk*IP~^6s8MgX<<`hgc$;;>X?eDg6Hv5hC23L{+Nn21aZ_WoNApEHb?P$lzy%eTffi)NYcWv%?K z0^KJt0mE-KPmX`{Cl+kSQ*!ikO7-H0OhE|}%$~)BjjBIj0&TJSqyJ(AMkM*<|kw+kI9H{hFIZSU?;bW>Ym@ZzPDdQ67p+d zN_rMtscOE8M!%kX%cleCyScuR*vzwoh)5nKyP^>+v$Lrm%=gskCjMEx-}#ez?=G%9 zbjEMzA?2?y_}$RyrbU5qGq>XLXP>=Dp(JSo;($-eTSiScmR_8MyCcNUwCI`ILsNEX z|NTfzVI$X}Q?UMjkD)Jm@sx%iR}Clo^bY@#{ae<-vlw3PZ293B!mAVw!#vDrfR#vx zK0wC9gFx1_3oV-lK#s0>6y} z)TFbN-08v^+Ils&8jRi*5q51#I(R3N-ZrR>hjF}CMvFXB z7K@xelN~kF20^zeaq|(l6;$eSZWHAeFb_}9ZiJGLc3N3lnpXaA{|<@>M3qi#Za6TB zW@mpN7L^(RJ^UIyYCVLZDLQjvCIU=L`e7ifs8|0haTJ+gBVN-_SNx=Up)VWb7%TVO zLu5U2nN#35WILE^n!vG9h3y?mNr6i=f+P$UC3Ald**^2vbsFY)`^tC4sOk7IW@0~7 z)KspKv@`;P)AfbuovexjN1`M->K~X*uC~3~77Mq{Wmfa7;E&qwn>#5TGzw8AUb6%z z@^J9h7I+jq3tin&`SYS?ijA=D>)-e4rR!i;>tYu>b+7 zvz53=b6)4hNy)OVN@(@)W-Ezl&YU=k&?C#T0P54;@?h;i73oW=n%7fm zhW;xkz(D)C8Ft40p}*)lt%t9)!Uj*z1oLK~auqiWd_GIVV&V&70>z2U~^ z8}zsmKS*^>(4`u+=nOlf;j``z>Y#9Ly~_}dwmq#@V|O$|pN`P;ul7C3YbzOt zjLU1a+;f*3@1XVv@54G{WPk#lpM)d-i~UkWRI-=t1s8;t9=OYF z>HmHSXvkUB&PKyJZVf_@-CMT*ANaX!jzshe9?g-uhhiCa`virSNRKap2LK^LpqM!+w*P2Ohg2csl}kp=O%kUp!Oj- z_}yCB(ya%V{D(W!7NURui_U4_S!Gx2Efef`Keie0i@X8h8k3EsCxcxxlx%|JxGAB@ z{5(1l*0=x$+S{wM%EP808xOF36E>_i-;D*vy508@uM};F^?#7)GFJMvLK?Ym3Yu=r z85o5+kL@_o$NbR+FOep!w#9Ye#Wn(7e7lI> z*Gn7nDw_CzfWmt4m>~c!W~U(_n6zlcv>ce|C4yH}-bbtSNnV$X_GF2VOPYtd)#D;| z&9rUVicfePO5Cgh8~K>x$!4BEv}T28eV|lh8I73quGwxB(OUSmjQ-IzzN;OPLRE9^ zl4JW7#m70LmMHK~OUgXrz=S_Lwu3y4Vnp@4Zh)yX%{W5JirFiUNvW%(^@K;u(%j`T zLJMXU-l%?PDv0bPErGR0bnkkwI@8o>=_z2AQtr-!_XL`bFcYDF2Ycm=Uz7fks6U@I z2tJ`w%U|LmK=xQP*7RlKvgl~pm9XYfkk6&HxNqyQ6)`4?OCFyZyVx|tf3kkm@G(6_ zb@D&F+3GYSB1m~S!#rE_4qyY;|Ls>Bo08}^Tqb(Mmt`K9r+ZjD)M8={RP{_hovfeWT)Ser}JF+!%b*Z)4*737irtqA4o*$_mk>Z3i#9Zap?k}Ln?p(5-C;x1q zK$89oM1AycuR^f-2b)bbA9ya7WS5Sf6j+5REdxt@@gJ{-*1*zP;@7VH8`A~8X3>Zm z4FEujK6qBCLrp+2d1Y#`Keu+sH<1<+hjSkii)t!@6c>WPB;IgiNN&YkiD2RmAMr9+ zs?#(lIwtXXFMQI#t{frg&q>xg!^=uiSlIS5n>pZ78i0|0T6W3L%j+_CL5sGV5Xa ziD(7vpXmPaZAS_zxWbJ)R{9np1HaIBS{8T@dxeCFsgd;>=^=225L{IR$iIpy*3`sD za{juEZijNqcV8~NU7?wP`oGmS{^tRI5_biVkjPX`y#MFE{|CREztSxvkb1cL!lkHJ z=J|Hh4Hc5&9%P3vj)~rVxci%_`4Dt-%zFItBw0cRz@Vra(tmK0-n14mxIVloeWV`t zV<`r1{E1HeGu@#$EFGo4ZE6Ka&Esr!5>$eo2}hMjfAs9;J@!5?^UR(>(q4R#Qlwc4>g zFUB+SkPVs=yw54pmYz1P$+0|wF8k*C8)etqAJ5gHp_FCXFyfz{fCj1s6#;+a57=ViZ4!g|_O7>n(_D5uqJ~iPP>A&^)Q1dn9N8cSmnrJrTXVsn9!`0x+r+EI)7(Quln(3|x!yY3OKc|6H8Z5FY{^_IO zNOeoGDt?;TQ~2**fX}*j?i40uh}p#KKv}kTk-eYsj^7zN8kOP_UxZzCXK8)~K*I;Z zPM>pedfO3J#?(>4diYLLtp(n+zu?v1Vz(UEmbcpd={t%jy<1RZWm#T8E0-9NL#vMf z*pC`AxwApb8}HfMe1W>QDduxX{CBT99WlL>2>&LZ{Kz{wQECL0?!SjP^#`bKbTTL> zd`vNsNYcW?(g=pcrhjT<4Vr6tKMMx}cD%8h1b$pk&EBE4T- z2}M{aXj-9ph{dn_&Xa+XKxeBu`^Pd^xnP}e2YYa>nZ%FjwcWge$AlifHC=zT*7o~W zR)#&K^^bC461Yw81CR!mo>oA|jB52nsoVhpEZmO5FLJ?tX=yA%=kP?^CC(jr}zjd zA||nZ!K|Q7_Tn#+o%$b>DYMs}*%Bi4*einPWMmT+6FxCTGmi(@Uw>Pui^T!Q3xQnF zs=3Pfh)_Lt4b=StY)8ZTlrI%<+$d=RFvN3@5; zcCL)VtjM#nvgE@!MqT?5zrTdkaub0gq{XkdzwlMh)880V%D{kvH@R8wSw}{>X?f%U z>xRd36&O1+A;HVw_~JZF&FP_bBaOng2Wo^jHCGPlZd5=DFbOoR9LYjO-~w*Cy{}Z^ zi$rLF2w=Rw@n9aNK*j5vSM3d-AhgGy);89Bw&NB#?+_2KPsbX*tRcSxuE0JFekO&v z%%-)VFU9AjR&5KxD*x3-d)e zr_^lHDx_aR6?BZm5^7OfHnTGgJV5o!ElZe)+F#p3cle40ZsQKn@&2fGuKYOcwLr%T>wLEi;j?b#kJUPOV)6gD&J`L=bLJrR{4N%0ZMvyyzaK|xAOyjphcUKA?s^8=DxjraIz$W{JV z>+KTy;~$7M<=7-arSxM=1w)_TCz79uMhmK8t?U_lTLrH88O8&|XPB{o$-n^5=fmuOyU&!nE|E`s%W!B5lA zZ~jqwbqaGnFsa73daaSX2pjzYRehW?8yCs+*l*_IEJ+2}>tMBm3A8Za?>*8!?g7Q0 zyT*jgSu~aa~&!M zDI|?vpAN7zr7>T5esO`oCfbguN?JgqWdpx6imp)W8lD3ZQ8e}`48H_E?c64-D+h{} z>-mhsEw^bfKn^8=c+c4%#CZx2Racd{@ns8^NJ!FX#QF>!p(wZJFo!wD(k}6HzXUrwdmFM_>8$Eto5bd9vgBawA@AhM4g;M_{lU(c(9K zlx#%eB0%!z3ogBI4=*%23I@4NmFJ1&`*YnNEgeN~_Y4K7f`toG zobI*1fi&5A6#fA5<;&J1snNPxB{>i;Iii3Qy*5q5*X$juGA^b3I&B#<=u1o%0HKm6 zEdzcxDuBz-dI63e*3>=;x5CQ{p)cvz-f{{KzNoj_-`m?an(FbsI=bmer#SM*gxc=h zKcuQD_py8fDOvBl{m@OX4tGdi1WQoBDBj!M9d5qc+W=*TbIdMW!TR!*BB8@;)Y^E+ zkj(I&_4NNiDNgj_^cHV(21Z(JxJypDYL%Lm_K)-j=w#XMa^@A_3j)fs-9&(GrW8^; zup^vSiS-thb8_<8((mDZEPcp2U*r)6m)EP-_RLuM&V|73Ywmm(OA46c)2`X8*ncY1 z(LcCCKK31mHFIz2efM$Vrr^Fc>D5ixG)d5!H|in1D<4V1OWWDEg#_80b7pXM1Da1A zK@A=mLP}{hyB$3SR)>I2Z@eJN{OMAf-SJqxWzw#f9hXBw(dHlW_JjZXSABcNy3y0^ zetWe#Cm&BiobKvCejJ8CA(op+CEfNwU9Gs)m-hH14T=IfskMmNhe{e zV8#D2$f@CSGlT;0LyR(o@!MB5&TpIaEO_5J9Y(;kcleWzj7q2Q_&1v|*JoZp#TA^O z#FvUNhWzCHC`kylkLMnROA^m25<%f22D{m|_U|xOE98d3#DePA6-$SP`LRtV!F3XC z@zvA+czjXn=o00yEmiQw7ui>9x&&U#V|R4-Y(?zB`5tleP%JI4E9+Ju6ZDpRC!s}B znYk_BwFU3{*biBhLni6h$EX$Q@7>>kKxB4`Z?fHGJeE4Y%-Pyl?M7lJfLS#J#EwoA z!A+R4&eQi;zSg938fkC;sq6o%!YE)5MTw%}C~8o{Mj&Fa6!z?aFFBLDbL)u?r+yf<=4+TNgONtW6E%G@`8zhXI;YSX?-p7nMdR`CZxrxc? zYnC2PEOq?PEVc3BFovI zOhB4ZrHdHa{exBB7&HS82gpjV7kuB~?S>=?i53b^VKY7!QB3G_zC-6eQZY#4HwV2m z!BUdwky2c>Tp>j6PQu~RWQ|6Im5u5>??Zi#mYRm(cvtX|f!Xu5@9XgsSwzP)kiO!@ zk1AEfxuRcdhIq-kZ3KSbe!8MS=JB%i~ccG4MM(u4}20<3e4=A zOQTlUnls&LM%ZblpsU!X36b&_tuZ-s4UWv85o|RMI4;ugrET##aAmiHblh+6XK>=F z$k3m%p5juIV1A_6dClG^!sh84LOZ$c86EAox)D69a8f;AUwz8fE0NCog|TOMy1t1h z$r!}LsThkl<#9dJGO%kn3r&pA!KfMDK*58|?UxJFmeY?1y!#i~%^dq^>A=)(!E4<< zsT*%JAycC5v@{=c|L$=S_imSD)zcaqgW!htc^_r`6!Pr!d{wh3qjsEI$Jfw!gVnBI3NhE_neH_78>+SLaofGi68?Uj zk5!b-9^b>J!xMoUjy_!V*7xiD6dX%aOvleHi zz1ASi#73X~U^8n|FL87|#-NA3(zinjtK%c& zpe5y zJR2IqvxBwk{(0fSKWsQV?xXE;r-_n&q}Cx^J%MFB3EtDZLG_Id#lWZ)=y{wPUduNU zXq8`TV!Gn_oEJ{${gnKMpGc+DFt=SVBgJ=&s(g=b0 zlD$c-QGyj73yyQ_=2$S+SbIs6_#00B?0NhY_$;}v=K>q(U+HF+hMS6z)ASI%-xS)I zuE^&5SZnPp4Xd3H>KAe4nL2%~4_|76g!|KCNf|xe>uaYN`pi9cUlgIN&H`o3-pR0I zev(Pxfi%^Mn%IL%r*=~iJDSV!GeGqigu{Xu!_fHZscuuY9;eu0#x6oCKRq-wu*2)c zB`TKD6YQt_6;jV%pjOf2@H=YWqy;@q#8nh_G#@7$LkkZ!+g=KS4BF6MsRagtYvTnW zFyb~xvRq@VOxFdSsjwZVXYb2{H8=-<+?U}gkBL|;r-r;18!?vOy*x!YNmeD!7!MdY z;;2*Xt5g>Qy_R`*3fL=AdT@5xqjMcjhVG8=D)p*-8&*5!s-iT3C{cek`H@@Ks@g~` z)A&wZ@c|7@jnuV0Obu;K%VZE@)ORa;Yw6=+fW@G`oJU&})UmjN8te1UU*?f_8Q;2YhueOZ(f&)w1O*LoO z>C3mcTLH;~rN)-}KfQGxQP=I~-_*2iLG*><^rwvLHTxHASU>aPrD)am#+fN0CQ_bi z^6VJWlB!|NYa}dTfzh)mE~u$`r7E6Fddh`$iRLgao`%Qam{ee`l&r@lUgRnSC^VPi zW0f?YR_FHT%Mvv)G2RE6w{Limt^7p!DtRytq}UrNR>ETu4q?HFguuLetpuWTK4R}L zdBY|hE+NVkQE5^eZ8<|@NoaHYd*xBi2aMe*Ln}$N!bVZ8=cicJPH%CyfA|b{`+gzNX?(;=+ z<~byaF>Q8GMMEEDO&eBkg5~NVSgNw97yn_viHFDe5xaC~U&Hc49618d^JCq|aKN#7 zP3zk-7x{A41!iJj5tajR;zcFq`MzJ+*p+FmH4jrM2ih$!5vz#q!vavPx0Z8;BHd&7P zYlvGfa2|!@o>A~}^+Pnm?$)lQGpcI(x(x@`SU#FTA*mUY1Qqqws^e7G;(`=|+m?_u zMOBwdT3U>>QAB8YkXPczBeIz-1$k!>C6K4i^*`=IY~}1noXZa6gMt?|jo+s^xH1)* zN<7wq29#Hwc?jo*JbhZp;UGWfGI^s$i81e(l5_74fu*%bMFxe!TCaq-*MhK_k0(A! z*w(p48!O@zwEgktgJr@&G_v*W&U?fI`sfh1RbZqxn%3nl0jQWTPn z`eHEUS2q}Lz1;2D!YJ}_%6{l zSehdVAi`W8J>-pInLp-s5DAEF?THcoCk1HAMd0fIvb>^cSe4;}n{?VeKmKqopgY z+HX1@#VV+Is+kfsRnnknXBo&tpnfY+`+I`CV%ggx)blTiBbIJoskO;{V|6cHn`~OO zZiAa87<>jCx5MySX2Q;(7y6-URyHME_Ga77?Z|ErsVPht(0pXj_(Eo|&Xf>jY%S8f znSEBWh7o70pFg(6h>jCYp8a!wdi)LJ$b{Ctj7#D+;^4K91IMH@o;NjJALw5i#CM42 zGrf5AFi`%-TBLOkH5}ko!hR&J2>wfM`^R+vC@PwHldc?zMFaz2)GH5LQrtZf!U}WV zP05=%h#1?ZyphZq#~4}NqrVX8(N`FaN6ll_bu$(}xH~J;3S{uYvSt|dY6q!nEKt2 z1rRQ~*`oMNB(V-FcLGp+{vYVO|F?%cO|5qfeom}=byGW`T^!CdH|tv7Y=GIUAyeHy zOGsOd-$C|Tmzn5?1XYAVI!aV8)=l3;$X6}ZnFMStzO!#zSQC*_;(=tmq-!<4lRbv< zj$n%^3a>{uCD*6iTPqewFs(+jRXx8 zg1<;C9$pj}!K3$W@k%qL_&hCn*o+wnHrHtcc)%)%c+6hGJb6+t%Q%C$>0Fr$cWzdx ze1cWL!tiWF)Tf(Cmg@-(=Z!9bIA(*?s}y2}N`$)=`d3|YLsdHSTE;;aT|c1q31JbiJS(m1Skf3fJSf;6?+${&2xWaTla{8C9d}2*W0z?%GFAZ4EdsC12=G$pr zaQ%sb_T4$NOGtJ_5}jvaQ(iRFK~mU!7GywAIVS%4RC$s8;WlW=4K4l?dYU4#%qpeu{fG7DGK;5cEl~$Ml7EF-=dGz|?$xxIpCT9iOO0Sp||>@`%H20ht463E5tsy|f+P zQkNZ(cuWt9FZQ7JeOamHQa+(=RFS+?st!Gf?O#%pf|k&7ec^AVpJLb(5A@dh_ERm2 zXg3m4&9F9L*kYEKRFP~ady!PQ`=gsf>gD#R8?*vKI`#@%DZB1Vj{7kg7suDwQ+V-y zrJHae`gkqdJLra#`9ri&vyo+iesSwV|HGPw$ z5b;z!Bcn4$T>FwiR_&%+`k9%bB}yq=>b$t6FFr^eTJU}LNxa$x$@5(!AGyvotE3~I zNqO0ia26C~^@Jpv$w*_&rngp z*UA6ZfyCF@zm~*20zK%?{u-0LVh62d@nc1K!hQBF@>gSH2i_>eS%3nj7AI2=w`v&s z^OC*IhlbxHf$)(XJO*sXykR5C;E3WnyIMU(;tI6z^MVh!xfXm!oo*+UM}l%FHSxLs?td4*V8q+e_bX;3hMsuPh%GGS>cBB4e!! z0e*4+u+PB9rQDE*f4|2pgF}Zm3B-hdp>LdRT;G#42QAZ^gFGQdO}Ru!bvJPc8?o^# z&*rsm#yX-4p}@B{KE#?^(zC)UfKO!t8Qrs~HK>G2Zc!4*3q-;M)A#a?Ssw=OodCg9 z=x_DIK11e8hhC?o_MKEzROFU?(v6@N%UCbwf6IHMGWK;V)Vn;DK({uw%_#M<4zXim z$HhfoZz1AU$HNhu+kxhT7QKv=@Snl<)c7+jZkH90Ydbp=A%u`h6In|+-I$~aA-RYzpOU8XhgJ2lV1X~lLb&0 z*k8#2|^y#V#`O+-B-N@#9 zz0CD3^%Ii4a9HK;GQV#8Zb+1{may{{x%&2=Tg!$O5LIa9aUCeBcfFcbLC3EY`rFZNXUVXTH~)g3o&k;nsEC zLKo_$3P`~E#2!1icb|{QSmRCq*;<{A(CEFJQV=CO?kIIR z20B^@I`w!6JJCxTPd8S^22;srYzbG5VDCi&`AW^?bDS5Y5vwP!o-a zV}<+$jydeaH&UFxs%gvIl;{8C|BF{2ew0AfRi>E-{SLcjG;1U+jEF5Co=7s|%dBB` zwJZ3P3@yUMZ*E3I%Oo+0fd7X9que0o-W8yY%<-Xj)pcC?iFTx;9V zmSeNN@p7VmVd-GV1ue{$IJ2s!`LkL06rPqXC>mj=Edr{!pD(+kq>OEN^8IvOkyK}Y zw>uNRKd@JQ|2-Aq+At+@x2yk>oLkKQ(Ou78u9@061G{l$Lz=kQqqbL^bDi;ePTzfj zRrxwgu!-9ji~U(&wq#07OrzYuhimon?v8**@IzDi^9{R?B4pd6iZ1`vCsaZG#%E@| zi3ye$#wCVbl5GG4`1sk<@;26hj*c7oAa;Vx;+R3jyBqA=;@Y-k%I=X%r?&MHg_cx` zep&cSFLjr7o;~XQ8*5Nv6Bffs@bB~P$HD0yB$l3*{O3+t8>u~t)rv1zZg~8T8byc) zJmp5x#{cGWwB}1v{i|F)i+ zX~*YK8Vr1Wba{PjQyi2+8*&#(=aNlH6nqwZ!_Wpcff$$XGE{a_L?pPF};hFy-&MH=XL>1RTcU>xHO2i;3o3U2P5; zI0feH=eXsY3uQ_TXI^xaC8x5VoA>IUcGohp?v<3$&xnGLBh+I_4@(=NM-J|yQ_CHNbJnNsCo}T$f z|6g9b2=>Z)f=*Wot3n<_NNwCkoZW&l8RsTxQuw|s2~&aP1)gs^%@!)e(WFZ zpPn3@oSb>|v{Df8C(DW2U7>>pbKm@xroTe7I5J1c zT3jGLTd%8H;U(2|xMzHU6N}x5MQo%ZH}1u3isU-l7d*}1V=Zi)Z|Bj=u05qgyLOQ9 z>@&jPN=gIGa9{L~PE3qWk50}!{h|HuDc)L->eNkG2g$mv=iww$4BuM6D9<5RoYvb7 z>usv_*u+F+iz$aq&Zey~!}ZO2{A@-RKYJ_AW;`e4r;+%pLG;+zESam1B2lmErG`0C z*2gEhzFDtJ;RDc~FG$61q#`y%Ecf76%trhBD@8Fk*>+4tc}LG^iMI57Y)VRs)iEl@ z2K1C-&Hd0nx6{tvQvbx;w{K_uJJ~+a{Cnk9oH^H=MG zW=YmUJ)6}K8`Ame`CR8b8S5O(y6=95}2x z<(!B(cRlrYaT|FODTX&&)2_7iNV(D3xhwrc?*3!Zu-;}`j}b$EJXud`;a9Gt8@L4T zt>?Z<*|Bovr%N5P^EAVKet(3mU=f?a*^UnSY1Y`necx8DD0~7pjh|3(QG5|gJ9`5S z{r#gfzy0^})1O~^xk_2o>8~$jpEtWMI=Qf(l`Ec4BE<;fda9GBlxdvPdYM-a=3BI| z-X>y&z6>^rr!MXy5ByL8m4C?Zv2U3_3ZC}OI2@i?^}1$ zVsPUSKd8Cl%2rrU@wGxxb_>?q-t7GLkENwgAGHrGPt{g@c#q+SBo(F;Vkpd&4oG|7 zy7TG(PxJH?!+Kk4y8^YXe&&6eS6JzIuC@$fdE;o4*;Xhbh_Ut0z{AO^#F zzz=bmhIIWh3VYvLxhnnPB#kO~w=#sco}s%!o#(J#cx^J3S#hPVNc|~MA8*>DWJ829 zbx&w_Bb!DpuQ+U=)=Q4m>n+W&o)6aRtlzMIzgPQa@bY>*?MfO?K0$$&|Ug^*-i%fs*z347Z6T#3fby zXZv-`da2>mbjL{wi!vn%Z7LTE>v?aztd9CE-6QRn`+E28R4ck%`+9fzzTQ3b^}zPC zo@4J@D@QwTyQ>IGZ+Yv{w+YcJt(VT3&1R*V?}RyQhpNUl;wJ(xsV&Fr8t z7uNIMdRx68t~joDR~pxQ*=3{6tvl7jpWSBTdNy%f@5o)-!!lljVlb=+{E%yQd$PUQ zZf~})*#1G-`*uy%Q)W_{2+1rdPhz`9#wV$)q_~HCY$Uw(Vj5Wo&=@GY3~i0|wiw48 zu4uj9nun};P*e8ZkRoH;F^7Avtmfsgkn#$_upZbJeLd&ix9_r^R!I}zJkfe7Tq>1X ze5^`FWS7~)R=;7zMJjv9bxy};xS3om%Wwl_8{J@;hXAc^?ZK|G{%<|DG-Z4pPohb| z_?7`b>+3~C6w{xG<_M{;=iK}DUDhL(pAwm zeYf@W7IR@OwO*#7v4tf5wz08!2kDMfs)gt3TMe2UdCi3E`^s2;oUL5B(WvPO511>K zqYGXQUC!Erb=yRGqV*n+x7}WI^%a+3e9M5}TW_Oa;@lmLOB?{8(i8|Jnhg>gzM`(6 zq$%ba$|VE>b*L%|z*-0{Fsc(|xDElKJyehf000000000000000000000000000000 z00000000000000000000000000002sJs|)95TL;D00000000000+9a!SV?G$uN=t7 P00000NkvXXu0mjfiZVc( literal 24278 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 B*%kl* literal 4772 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 TAa=qM;1i&xqODvFvWfT~4fsYt diff --git a/doc/ci/quick_start/img/pipelines_status.png b/doc/ci/quick_start/img/pipelines_status.png index 53ccc49bd66a383b5c757183014a67b4af2f4acc..06d1559f5d26918aa7b8d1d396b396308a1f3b5f 100644 GIT binary patch literal 22872 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 D%Fvtt literal 25494 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 diff --git a/doc/ci/quick_start/img/runners_activated.png b/doc/ci/quick_start/img/runners_activated.png index 5ce6fe8e17c6b8fdd5828338adc9046f80203f61..cd83c1a7e4c4f8f87f0d054b8605384d99a6fcc8 100644 GIT binary patch literal 18215 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 literal 12337 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 JVi7&R{{dXx+t>gA diff --git a/doc/ci/quick_start/img/single_commit_status_pending.png b/doc/ci/quick_start/img/single_commit_status_pending.png index 91fc9011847ee956fcef91d8f443dcf54800b6ba..ffc7054d3b0bf450921c8f4a44716cb74be3535f 100644 GIT binary patch literal 13631 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 literal 15785 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

X$hPjVl}S5 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 *Runners*. +You can configure a Runner to assign it exclusively to a project. When a +Runner is locked this way, it can no longer be enabled for other projects. +This setting is available on each Runner in *Project Settings* > *Runners*. ### Making an existing Shared Runner Specific If you are an admin on your GitLab instance, -you can make any shared runner a specific runner, _but you can not -make a specific runner a shared runner_. +you can make any shared Runner a specific Runner, _but you can not +make a specific Runner a shared Runner_. -To make a shared runner specific, go to the runner page (`/admin/runners`) -and find your runner. Add any projects on the left to make this runner -run exclusively for these projects, therefore making it a specific runner. +To make a shared Runner specific, go to the Runner page (`/admin/Runners`) +and find your Runner. Add any projects on the left to make this Runner +run exclusively for these projects, therefore making it a specific Runner. -![making a shared runner specific](shared_to_specific_admin.png) +![making a shared Runner specific](shared_to_specific_admin.png) ## Using Shared Runners Effectively -If you are planning to use shared runners, there are several things you +If you are planning to use shared Runners, there are several things you should keep in mind. ### Use Tags -You must setup a runner to be able to run all the different types of jobs +You must setup a Runner to be able to run all the different types of jobs that it may encounter on the projects it's shared over. This would be problematic for large amounts of projects, if it wasn't for tags. By tagging a Runner for the types of jobs it can handle, you can make sure -shared runners will only run the jobs they are equipped to run. +shared Runners will only run the jobs they are equipped to run. -For instance, at GitLab we have runners tagged with "rails" if they contain +For instance, at GitLab we have Runners tagged with "rails" if they contain the appropriate dependencies to run Rails test suites. -### Prevent runner with tags from picking jobs without tags +### Prevent Runner with tags from picking jobs without tags -You can configure a runner to prevent it from picking jobs with tags when -the runner does not have tags assigned. This setting is available on each -runner in *Project Settings* > *Runners*. +You can configure a Runner to prevent it from picking jobs with tags when +the Runner does not have tags assigned. This setting is available on each +Runner in *Project Settings* > *Runners*. ### Be careful with sensitive information -If you can run a build on a runner, you can get access to any code it runs -and get the token of the runner. With shared runners, this means that anyone -that runs jobs on the runner, can access anyone else's code that runs on the runner. +If you can run a job on a Runner, you can get access to any code it runs +and get the token of the Runner. With shared Runners, this means that anyone +that runs jobs on the Runner, can access anyone else's code that runs on the Runner. -In addition, because you can get access to the runner token, it is possible -to create a clone of a runner and submit false builds, for example. +In addition, because you can get access to the Runner token, it is possible +to create a clone of a Runner and submit false jobs, for example. -The above is easily avoided by restricting the usage of shared runners +The above is easily avoided by restricting the usage of shared Runners on large public GitLab instances and controlling access to your GitLab instance. ### Forks Whenever a project is forked, it copies the settings of the jobs that relate -to it. This means that if you have shared runners setup for a project and -someone forks that project, the shared runners will also serve jobs of this +to it. This means that if you have shared Runners setup for a project and +someone forks that project, the shared Runners will also serve jobs of this project. ## Attack vectors in Runners -Mentioned briefly earlier, but the following things of runners can be exploited. -We're always looking for contributions that can mitigate these [Security Considerations](https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/blob/master/docs/security/index.md). +Mentioned briefly earlier, but the following things of Runners can be exploited. +We're always looking for contributions that can mitigate these +[Security Considerations](https://docs.gitlab.com/runner/security/). diff --git a/doc/ci/services/mysql.md b/doc/ci/services/mysql.md index aaf3aa77837..338368dbbc9 100644 --- a/doc/ci/services/mysql.md +++ b/doc/ci/services/mysql.md @@ -31,7 +31,7 @@ Database: el_duderino ``` If you are wondering why we used `mysql` for the `Host`, read more at -[How is service linked to the build](../docker/using_docker_images.md#how-is-service-linked-to-the-build). +[How is service linked to the job](../docker/using_docker_images.md#how-is-service-linked-to-the-job). You can also use any other docker image available on [Docker Hub][hub-mysql]. For example, to use MySQL 5.5 the service becomes `mysql:5.5`. @@ -112,7 +112,7 @@ convenience that runs on [GitLab.com](https://gitlab.com) using our publicly available [shared runners](../runners/README.md). Want to hack on it? Simply fork it, commit and push your changes. Within a few -moments the changes will be picked by a public runner and the build will begin. +moments the changes will be picked by a public runner and the job will begin. [hub-mysql]: https://hub.docker.com/r/_/mysql/ [mysql-example-repo]: https://gitlab.com/gitlab-examples/mysql diff --git a/doc/ci/services/postgres.md b/doc/ci/services/postgres.md index f787cc0a124..3899b555f32 100644 --- a/doc/ci/services/postgres.md +++ b/doc/ci/services/postgres.md @@ -31,7 +31,7 @@ Database: nice_marmot ``` If you are wondering why we used `postgres` for the `Host`, read more at -[How is service linked to the build](../docker/using_docker_images.md#how-is-service-linked-to-the-build). +[How is service linked to the job](../docker/using_docker_images.md#how-is-service-linked-to-the-job). You can also use any other docker image available on [Docker Hub][hub-pg]. For example, to use PostgreSQL 9.3 the service becomes `postgres:9.3`. @@ -108,7 +108,7 @@ convenience that runs on [GitLab.com](https://gitlab.com) using our publicly available [shared runners](../runners/README.md). Want to hack on it? Simply fork it, commit and push your changes. Within a few -moments the changes will be picked by a public runner and the build will begin. +moments the changes will be picked by a public runner and the job will begin. [hub-pg]: https://hub.docker.com/r/_/postgres/ [postgres-example-repo]: https://gitlab.com/gitlab-examples/postgres diff --git a/doc/ci/services/redis.md b/doc/ci/services/redis.md index 80705024d2f..554c321fd0c 100644 --- a/doc/ci/services/redis.md +++ b/doc/ci/services/redis.md @@ -63,7 +63,7 @@ that runs on [GitLab.com](https://gitlab.com) using our publicly available [shared runners](../runners/README.md). Want to hack on it? Simply fork it, commit and push your changes. Within a few -moments the changes will be picked by a public runner and the build will begin. +moments the changes will be picked by a public runner and the job will begin. [hub-redis]: https://hub.docker.com/r/_/redis/ [redis-example-repo]: https://gitlab.com/gitlab-examples/redis diff --git a/doc/ci/ssh_keys/README.md b/doc/ci/ssh_keys/README.md index b858029d25e..49e7ac38b26 100644 --- a/doc/ci/ssh_keys/README.md +++ b/doc/ci/ssh_keys/README.md @@ -25,7 +25,7 @@ This is the universal solution which works with any type of executor 1. Create a new SSH key pair with [ssh-keygen][] 2. Add the private key as a **Secret Variable** to the project -3. Run the [ssh-agent][] during build to load the private key. +3. Run the [ssh-agent][] during job to load the private key. ## SSH keys when using the Docker executor @@ -77,7 +77,7 @@ SSH key. You can generate the SSH key from the machine that GitLab Runner is installed on, and use that key for all projects that are run on this machine. -First, you need to login to the server that runs your builds. +First, you need to login to the server that runs your jobs. Then from the terminal login as the `gitlab-runner` user and generate the SSH key pair as described in the [SSH keys documentation](../../ssh/README.md). @@ -103,7 +103,7 @@ that runs on [GitLab.com](https://gitlab.com) using our publicly available [shared runners](../runners/README.md). Want to hack on it? Simply fork it, commit and push your changes. Within a few -moments the changes will be picked by a public runner and the build will begin. +moments the changes will be picked by a public runner and the job will begin. [ssh-keygen]: http://linux.die.net/man/1/ssh-keygen [ssh-agent]: http://linux.die.net/man/1/ssh-agent diff --git a/doc/ci/triggers/README.md b/doc/ci/triggers/README.md index efca05af7b8..740edba1f59 100644 --- a/doc/ci/triggers/README.md +++ b/doc/ci/triggers/README.md @@ -1,19 +1,19 @@ -# Triggering Builds through the API - -> [Introduced][ci-229] in GitLab CE 7.14. +# Triggering jobs through the API > **Note**: -GitLab 8.12 has a completely redesigned build permissions system. -Read all about the [new model and its implications](../../user/project/new_ci_build_permissions_model.md#build-triggers). +- [Introduced][ci-229] in GitLab CE 7.14. +- GitLab 8.12 has a completely redesigned job permissions system. Read all + about the [new model and its implications](../../user/project/new_ci_build_permissions_model.md#job-triggers). Triggers can be used to force a rebuild of a specific `ref` (branch or tag) with an API call. ## 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. +You can add a new trigger by going to your project's +**Settings ➔ CI/CD Pipelines ➔ Triggers**. The **Add trigger** button will +create a new token which you can then use to trigger a rerun of this +particular project's pipeline. 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 @@ -27,13 +27,13 @@ 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 +## Trigger a job > **Note**: Valid refs are only the branches and tags. If you pass a commit SHA as a ref, -it will not trigger a build. +it will not trigger a job. -To trigger a build you need to send a `POST` request to GitLab's API endpoint: +To trigger a job you need to send a `POST` request to GitLab's API endpoint: ``` POST /projects/:id/trigger/builds @@ -42,31 +42,32 @@ 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 and the tag. 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. +or by visiting the **CI/CD Pipelines** settings 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`. +When a rerun of a pipeline is triggered, the information is exposed in GitLab's +UI under the **Jobs** page and the jobs are marked as triggered 'by API'. -![Marked rebuilds as triggered on builds page](img/builds_page.png) +![Marked rebuilds as on jobs 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 +You can see which trigger caused the rebuild by visiting the single job page. +A part of the trigger's token 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) +![Marked rebuilds as triggered on a single job page](img/trigger_single_build.png) --- See the [Examples](#examples) section for more details on how to actually trigger a rebuild. -## Trigger a build from webhook +## Trigger a job from webhook > Introduced in GitLab 8.14. -To trigger a build from webhook of another project you need to add the following +To trigger a job from webhook of another project you need to add the following webhook url for Push and Tag push events: ``` @@ -78,7 +79,7 @@ https://gitlab.example.com/api/v3/projects/:id/ref/:ref/trigger/builds?token=TOK from webhook body that designates the branchref that fired the trigger in the source repository. - `ref` should be url encoded if contains slashes. -## Pass build variables to a trigger +## Pass job 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` @@ -90,7 +91,7 @@ variables[key]=value This information is also exposed in the UI. -![Build variables in UI](img/trigger_variables.png) +![Job variables in UI](img/trigger_variables.png) --- @@ -116,7 +117,7 @@ curl --request POST \ "https://gitlab.example.com/api/v3/projects/9/trigger/builds?token=TOKEN&ref=master" ``` -### Triggering a build within `.gitlab-ci.yml` +### Triggering a job within `.gitlab-ci.yml` You can also benefit by using 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` @@ -132,7 +133,7 @@ build_docs: - tags ``` -Now, whenever a new tag is pushed on project A, the build will run and the +Now, whenever a new tag is pushed on project A, the job will run and the `build_docs` job will be executed, triggering a rebuild of project B. The `stage: deploy` ensures that this job will run only after all jobs with `stage: test` complete successfully. @@ -189,18 +190,18 @@ curl --request POST \ https://gitlab.example.com/api/v3/projects/9/trigger/builds ``` -### Using webhook to trigger builds +### Using webhook to trigger job -You can add the following webhook to another project in order to trigger a build: +You can add the following webhook to another project in order to trigger a job: ``` https://gitlab.example.com/api/v3/projects/9/ref/master/trigger/builds?token=TOKEN&variables[UPLOAD_TO_S3]=true ``` -### Using cron to trigger nightly builds +### Using cron to trigger nightly jobs -Whether you craft a script or just run cURL directly, you can trigger builds -in conjunction with cron. The example below triggers a build on the `master` +Whether you craft a script or just run cURL directly, you can trigger jobs +in conjunction with cron. The example below triggers a job on the `master` branch of project with ID `9` every night at `00:30`: ```bash diff --git a/doc/ci/triggers/img/builds_page.png b/doc/ci/triggers/img/builds_page.png index fded5839f76b610141de6d395315ae07736f228a..c9cc8f308f427099133e0151f94add125db35461 100644 GIT binary patch literal 20383 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 diff --git a/doc/ci/triggers/img/trigger_single_build.png b/doc/ci/triggers/img/trigger_single_build.png index c4a5550d640461d40ebeac920677e6bc6ff2db66..837bbeffe9f59707ad8902797e35cdecd4f47161 100644 GIT binary patch literal 6585 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 diff --git a/doc/ci/triggers/img/trigger_variables.png b/doc/ci/triggers/img/trigger_variables.png index 65fe1ea9ab618fc0d0fe5be636521d4825d7905b..0c2a761cfa981ab8c04ce06c9aeefc87bc2b4e8c 100644 GIT binary patch delta 3554 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 delta 3560 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 NU&lzhO3Ngxn_P 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 Ck!~~q delta 4910 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 diff --git a/doc/ci/variables/README.md b/doc/ci/variables/README.md index 49fca884f35..8a638ed3df8 100644 --- a/doc/ci/variables/README.md +++ b/doc/ci/variables/README.md @@ -1,6 +1,6 @@ # Variables -When receiving a build from GitLab CI, the [Runner] prepares the build environment. +When receiving a job from GitLab CI, the [Runner] prepares the build environment. It starts by setting a list of **predefined variables** (environment variables) and a list of **user-defined variables**. @@ -29,22 +29,22 @@ version of Runner required. | Variable | GitLab | Runner | Description | |-------------------------|--------|--------|-------------| -| **CI** | all | 0.4 | Mark that build is executed in CI environment | -| **GITLAB_CI** | all | all | Mark that build is executed in GitLab CI environment | -| **CI_SERVER** | all | all | Mark that build is executed in CI environment | -| **CI_SERVER_NAME** | all | all | The name of CI server that is used to coordinate builds | -| **CI_SERVER_VERSION** | all | all | GitLab version that is used to schedule builds | -| **CI_SERVER_REVISION** | all | all | GitLab revision that is used to schedule builds | -| **CI_BUILD_ID** | all | all | The unique id of the current build that GitLab CI uses internally | +| **CI** | all | 0.4 | Mark that job is executed in CI environment | +| **GITLAB_CI** | all | all | Mark that job is executed in GitLab CI environment | +| **CI_SERVER** | all | all | Mark that job is executed in CI environment | +| **CI_SERVER_NAME** | all | all | The name of CI server that is used to coordinate jobs | +| **CI_SERVER_VERSION** | all | all | GitLab version that is used to schedule jobs | +| **CI_SERVER_REVISION** | all | all | GitLab revision that is used to schedule jobs | +| **CI_BUILD_ID** | all | all | The unique id of the current job that GitLab CI uses internally | | **CI_BUILD_REF** | all | all | The commit revision for which project is built | | **CI_BUILD_TAG** | all | 0.5 | The commit tag name. Present only when building tags. | -| **CI_BUILD_NAME** | all | 0.5 | The name of the build as defined in `.gitlab-ci.yml` | +| **CI_BUILD_NAME** | all | 0.5 | The name of the job as defined in `.gitlab-ci.yml` | | **CI_BUILD_STAGE** | all | 0.5 | The name of the stage as defined in `.gitlab-ci.yml` | | **CI_BUILD_REF_NAME** | all | all | The branch or tag name for which project is built | | **CI_BUILD_REF_SLUG** | 8.15 | all | `$CI_BUILD_REF_NAME` lowercased, shortened to 63 bytes, and with everything except `0-9` and `a-z` replaced with `-`. Use in URLs and domain names. | | **CI_BUILD_REPO** | all | all | The URL to clone the Git repository | -| **CI_BUILD_TRIGGERED** | all | 0.5 | The flag to indicate that build was [triggered] | -| **CI_BUILD_MANUAL** | 8.12 | all | The flag to indicate that build was manually started | +| **CI_BUILD_TRIGGERED** | all | 0.5 | The flag to indicate that job was [triggered] | +| **CI_BUILD_MANUAL** | 8.12 | all | The flag to indicate that job was manually started | | **CI_BUILD_TOKEN** | all | 1.2 | Token used for authenticating with the GitLab Container Registry | | **CI_PIPELINE_ID** | 8.10 | 0.5 | The unique id of the current pipeline that GitLab CI uses internally | | **CI_PROJECT_ID** | all | all | The unique id of the current project that GitLab CI uses internally | @@ -52,8 +52,8 @@ version of Runner required. | **CI_PROJECT_NAMESPACE**| 8.10 | 0.5 | The project namespace (username or groupname) that is currently being built | | **CI_PROJECT_PATH** | 8.10 | 0.5 | The namespace with project name | | **CI_PROJECT_URL** | 8.10 | 0.5 | The HTTP address to access project | -| **CI_PROJECT_DIR** | all | all | The full path where the repository is cloned and where the build is run | -| **CI_ENVIRONMENT_NAME** | 8.15 | all | The name of the environment for this build | +| **CI_PROJECT_DIR** | all | all | The full path where the repository is cloned and where the job is run | +| **CI_ENVIRONMENT_NAME** | 8.15 | all | The name of the environment for this job | | **CI_ENVIRONMENT_SLUG** | 8.15 | all | A simplified version of the environment name, suitable for inclusion in DNS, URLs, Kubernetes labels, etc. | | **CI_REGISTRY** | 8.10 | 0.5 | If the Container Registry is enabled it returns the address of GitLab's Container Registry | | **CI_REGISTRY_IMAGE** | 8.10 | 0.5 | If the Container Registry is enabled for the project it returns the address of the registry tied to the specific project | @@ -61,11 +61,11 @@ version of Runner required. | **CI_RUNNER_DESCRIPTION** | 8.10 | 0.5 | The description of the runner as saved in GitLab | | **CI_RUNNER_TAGS** | 8.10 | 0.5 | The defined runner tags | | **CI_DEBUG_TRACE** | all | 1.7 | Whether [debug tracing](#debug-tracing) is enabled | -| **GET_SOURCES_ATTEMPTS** | 8.15 | 1.9 | Number of attempts to fetch sources running a build | -| **ARTIFACT_DOWNLOAD_ATTEMPTS** | 8.15 | 1.9 | Number of attempts to download artifacts running a build | -| **RESTORE_CACHE_ATTEMPTS** | 8.15 | 1.9 | Number of attempts to restore the cache running a build | -| **GITLAB_USER_ID** | 8.12 | all | The id of the user who started the build | -| **GITLAB_USER_EMAIL** | 8.12 | all | The email of the user who started the build | +| **GET_SOURCES_ATTEMPTS** | 8.15 | 1.9 | Number of attempts to fetch sources running a job | +| **ARTIFACT_DOWNLOAD_ATTEMPTS** | 8.15 | 1.9 | Number of attempts to download artifacts running a job | +| **RESTORE_CACHE_ATTEMPTS** | 8.15 | 1.9 | Number of attempts to restore the cache running a job | +| **GITLAB_USER_ID** | 8.12 | all | The id of the user who started the job | +| **GITLAB_USER_EMAIL** | 8.12 | all | The email of the user who started the job | Example values: @@ -136,7 +136,7 @@ job_name: >**Notes:** - This feature requires GitLab Runner 0.4.0 or higher. - Be aware that secret variables are not masked, and their values can be shown - in the build logs if explicitly asked to do so. If your project is public or + in the job logs if explicitly asked to do so. If your project is public or internal, you can set the pipelines private from your project's Pipelines settings. Follow the discussion in issue [#13784][ce-13784] for masking the secret variables. @@ -150,7 +150,7 @@ storing things like passwords, secret keys and credentials. Secret variables can be added by going to your project's **Settings ➔ Variables ➔ Add variable**. -Once you set them, they will be available for all subsequent builds. +Once you set them, they will be available for all subsequent jobs. ## Deployment variables @@ -160,7 +160,7 @@ This feature requires GitLab CI 8.15 or higher. [Project services](../../user/project/integrations/project_services.md) that are responsible for deployment configuration may define their own variables that are set in the build environment. These variables are only defined for -[deployment builds](../environments.md). Please consult the documentation of +[deployment jobs](../environments.md). Please consult the documentation of the project services that you are using to learn which variables they define. An example project service that defines deployment variables is @@ -173,21 +173,21 @@ An example project service that defines deployment variables is > **WARNING:** Enabling debug tracing can have severe security implications. The output **will** contain the content of all your secret variables and any other secrets! The output **will** be uploaded to the GitLab server and made visible - in build traces! + in job traces! By default, GitLab Runner hides most of the details of what it is doing when -processing a job. This behaviour keeps build traces short, and prevents secrets +processing a job. This behaviour keeps job traces short, and prevents secrets from being leaked into the trace unless your script writes them to the screen. If a job isn't working as expected, this can make the problem difficult to investigate; in these cases, you can enable debug tracing in `.gitlab-ci.yml`. Available on GitLab Runner v1.7+, this feature enables the shell's execution -trace, resulting in a verbose build trace listing all commands that were run, +trace, resulting in a verbose job trace listing all commands that were run, variables that were set, etc. -Before enabling this, you should ensure builds are visible to +Before enabling this, you should ensure jobs are visible to [team members only](../../user/permissions.md#project-features). You should -also [erase](../pipelines.md#seeing-build-status) all generated build traces +also [erase](../pipelines.md#seeing-build-status) all generated job traces before making them visible again. To enable debug traces, set the `CI_DEBUG_TRACE` variable to `true`: @@ -320,7 +320,7 @@ MIIFQzCCBCugAwIBAgIRAL/ElDjuf15xwja1ZnCocWAwDQYJKoZIhvcNAQELBQAw' All variables are set as environment variables in the build environment, and they are accessible with normal methods that are used to access such variables. -In most cases `bash` or `sh` is used to execute the build script. +In most cases `bash` or `sh` is used to execute the job script. To access the variables (predefined and user-defined) in a `bash`/`sh` environment, prefix the variable name with the dollar sign (`$`): @@ -328,12 +328,12 @@ prefix the variable name with the dollar sign (`$`): ``` job_name: script: - - echo $CI_BUILD_ID + - echo $CI_job_ID ``` You can also list all environment variables with the `export` command, but be aware that this will also expose the values of all the secret variables -you set, in the build log: +you set, in the job log: ``` job_name: @@ -344,4 +344,4 @@ job_name: [ce-13784]: https://gitlab.com/gitlab-org/gitlab-ce/issues/13784 [runner]: https://docs.gitlab.com/runner/ [triggered]: ../triggers/README.md -[triggers]: ../triggers/README.md#pass-build-variables-to-a-trigger +[triggers]: ../triggers/README.md#pass-job-variables-to-a-trigger diff --git a/doc/ci/yaml/README.md b/doc/ci/yaml/README.md index cd492d16747..63be61d1bca 100644 --- a/doc/ci/yaml/README.md +++ b/doc/ci/yaml/README.md @@ -1,7 +1,7 @@ -# Configuration of your builds with .gitlab-ci.yml +# Configuration of your jobs with .gitlab-ci.yml This document describes the usage of `.gitlab-ci.yml`, the file that is used by -GitLab Runner to manage your project's builds. +GitLab Runner to manage your project's jobs. If you want a quick introduction to GitLab CI, follow our [quick start guide](../quick_start/README.md). @@ -30,10 +30,9 @@ jobs, where each of the jobs executes a different command. Of course a command can execute code directly (`./configure;make;make install`) or run a script (`test.sh`) in the repository. -Jobs are used to create builds, which are then picked up by -[Runners](../runners/README.md) and executed within the environment of the -Runner. What is important, is that each job is run independently from each -other. +Jobs are picked up by [Runners](../runners/README.md) and executed within the +environment of the Runner. What is important, is that each job is run +independently from each other. The YAML syntax allows for using more complex job specifications than in the above example: @@ -80,30 +79,31 @@ There are a few reserved `keywords` that **cannot** be used as job names: ### image and services This allows to specify a custom Docker image and a list of services that can be -used for time of the build. The configuration of this feature is covered in +used for time of the job. The configuration of this feature is covered in [a separate document](../docker/README.md). ### before_script `before_script` is used to define the command that should be run before all -builds, including deploy builds, but after the restoration of artifacts. This can be an array or a multi-line string. +jobs, including deploy jobs, but after the restoration of artifacts. This can +be an array or a multi-line string. ### after_script > Introduced in GitLab 8.7 and requires Gitlab Runner v1.2 `after_script` is used to define the command that will be run after for all -builds. This has to be an array or a multi-line string. +jobs. This has to be an array or a multi-line string. ### stages -`stages` is used to define build stages that can be used by jobs. +`stages` is used to define stages that can be used by jobs. The specification of `stages` allows for having flexible multi stage pipelines. -The ordering of elements in `stages` defines the ordering of builds' execution: +The ordering of elements in `stages` defines the ordering of jobs' execution: -1. Builds of the same stage are run in parallel. -1. Builds of the next stage are run after the jobs from the previous stage +1. Jobs of the same stage are run in parallel. +1. Jobs of the next stage are run after the jobs from the previous stage complete successfully. Let's consider the following example, which defines 3 stages: @@ -115,7 +115,7 @@ stages: - deploy ``` -1. First all jobs of `build` are executed in parallel. +1. First, all jobs of `build` are executed in parallel. 1. If all jobs of `build` succeed, the `test` jobs are executed in parallel. 1. If all jobs of `test` succeed, the `deploy` jobs are executed in parallel. 1. If all jobs of `deploy` succeed, the commit is marked as `success`. @@ -124,7 +124,7 @@ stages: There are also two edge cases worth mentioning: -1. If no `stages` are defined in `.gitlab-ci.yml`, then by default the `build`, +1. If no `stages` are defined in `.gitlab-ci.yml`, then the `build`, `test` and `deploy` are allowed to be used as job's stage by default. 2. If a job doesn't specify a `stage`, the job is assigned the `test` stage. @@ -137,7 +137,7 @@ Alias for [stages](#stages). > Introduced in GitLab Runner v0.5.0. GitLab CI allows you to add variables to `.gitlab-ci.yml` that are set in the -build environment. The variables are stored in the Git repository and are meant +job environment. The variables are stored in the Git repository and are meant to store non-sensitive project configuration, for example: ```yaml @@ -163,7 +163,7 @@ which can be set in GitLab's UI. > Introduced in GitLab Runner v0.7.0. `cache` is used to specify a list of files and directories which should be -cached between builds. You can only use paths that are within the project +cached between jobs. You can only use paths that are within the project workspace. **By default the caching is enabled per-job and per-branch.** @@ -202,8 +202,8 @@ rspec: - binaries/ ``` -Locally defined cache overwrites globally defined options. This will cache only -`binaries/`: +Locally defined cache overwrites globally defined options. The following `rspec` +job will cache only `binaries/`: ```yaml cache: @@ -281,8 +281,8 @@ cache: ## Jobs `.gitlab-ci.yml` allows you to specify an unlimited number of jobs. Each job -must have a unique name, which is not one of the Keywords mentioned above. -A job is defined by a list of parameters that define the build behavior. +must have a unique name, which is not one of the keywords mentioned above. +A job is defined by a list of parameters that define the job behavior. ```yaml job_name: @@ -302,24 +302,24 @@ job_name: | Keyword | Required | Description | |---------------|----------|-------------| -| script | yes | Defines a shell script which is executed by Runner | -| image | no | Use docker image, covered in [Using Docker Images](../docker/using_docker_images.md#define-image-and-services-from-gitlab-ciyml) | -| services | no | Use docker services, covered in [Using Docker Images](../docker/using_docker_images.md#define-image-and-services-from-gitlab-ciyml) | -| stage | no | Defines a build stage (default: `test`) | -| type | no | Alias for `stage` | -| variables | no | Define build variables on a job level | -| only | no | Defines a list of git refs for which build is created | -| except | no | Defines a list of git refs for which build is not created | -| tags | no | Defines a list of tags which are used to select Runner | -| allow_failure | no | Allow build to fail. Failed build doesn't contribute to commit status | -| when | no | Define when to run build. Can be `on_success`, `on_failure`, `always` or `manual` | -| dependencies | no | Define other builds that a build depends on so that you can pass artifacts between them| -| artifacts | no | Define list of build artifacts | -| cache | no | Define list of files that should be cached between subsequent runs | -| before_script | no | Override a set of commands that are executed before build | -| after_script | no | Override a set of commands that are executed after build | -| environment | no | Defines a name of environment to which deployment is done by this build | -| coverage | no | Define code coverage settings for a given job | +| script | yes | Defines a shell script which is executed by Runner | +| image | no | Use docker image, covered in [Using Docker Images](../docker/using_docker_images.md#define-image-and-services-from-gitlab-ciyml) | +| services | no | Use docker services, covered in [Using Docker Images](../docker/using_docker_images.md#define-image-and-services-from-gitlab-ciyml) | +| stage | no | Defines a job stage (default: `test`) | +| type | no | Alias for `stage` | +| variables | no | Define job variables on a job level | +| only | no | Defines a list of git refs for which job is created | +| except | no | Defines a list of git refs for which job is not created | +| tags | no | Defines a list of tags which are used to select Runner | +| allow_failure | no | Allow job to fail. Failed job doesn't contribute to commit status | +| when | no | Define when to run job. Can be `on_success`, `on_failure`, `always` or `manual` | +| dependencies | no | Define other jobs that a job depends on so that you can pass artifacts between them| +| artifacts | no | Define list of [job artifacts](../../user/project/pipelines/job_artifacts.md) | +| cache | no | Define list of files that should be cached between subsequent runs | +| before_script | no | Override a set of commands that are executed before job | +| after_script | no | Override a set of commands that are executed after job | +| environment | no | Defines a name of environment to which deployment is done by this job | +| coverage | no | Define code coverage settings for a given job | ### script @@ -339,11 +339,15 @@ job: - bundle exec rspec ``` -Sometimes, `script` commands will need to be wrapped in single or double quotes. For example, commands that contain a colon (`:`) need to be wrapped in quotes so that the YAML parser knows to interpret the whole thing as a string rather than a "key: value" pair. Be careful when using special characters (`:`, `{`, `}`, `[`, `]`, `,`, `&`, `*`, `#`, `?`, `|`, `-`, `<`, `>`, `=`, `!`, `%`, `@`, `` ` ``). +Sometimes, `script` commands will need to be wrapped in single or double quotes. +For example, commands that contain a colon (`:`) need to be wrapped in quotes so +that the YAML parser knows to interpret the whole thing as a string rather than +a "key: value" pair. Be careful when using special characters: +`:`, `{`, `}`, `[`, `]`, `,`, `&`, `*`, `#`, `?`, `|`, `-`, `<`, `>`, `=`, `!`, `%`, `@`, `` ` ``. ### stage -`stage` allows to group build into different stages. Builds of the same `stage` +`stage` allows to group jobs into different stages. Jobs of the same `stage` are executed in `parallel`. For more info about the use of `stage` please check [stages](#stages). @@ -352,10 +356,9 @@ are executed in `parallel`. For more info about the use of `stage` please check `only` and `except` are two parameters that set a refs policy to limit when jobs are built: -1. `only` defines the names of branches and tags for which the job will be - built. +1. `only` defines the names of branches and tags for which the job will run. 2. `except` defines the names of branches and tags for which the job will - **not** be built. + **not** run. There are a few rules that apply to the usage of refs policy: @@ -379,8 +382,8 @@ job: - branches ``` -In this example, `job` will run only for refs that are tagged, or if a build is explicitly requested -via an API trigger. +In this example, `job` will run only for refs that are tagged, or if a build is +explicitly requested via an API trigger. ```yaml job: @@ -404,14 +407,14 @@ job: The above example will run `job` for all branches on `gitlab-org/gitlab-ce`, except master. -### job variables +### Job variables -It is possible to define build variables using a `variables` keyword on a job -level. It works basically the same way as its [global-level equivalent](#variables) -but allows you to define job-specific build variables. +It is possible to define job variables using a `variables` keyword on a job +level. It works basically the same way as its [global-level equivalent](#variables), +but allows you to define job-specific variables. -When the `variables` keyword is used on a job level, it overrides global YAML -build variables and predefined variables. To turn off global defined variables +When the `variables` keyword is used on a job level, it overrides the global YAML +job variables and predefined ones. To turn off global defined variables in your job, define an empty array: ```yaml @@ -419,8 +422,7 @@ job_name: variables: [] ``` -Build variables priority is defined in the -[variables documentation][variables]. +Job variables priority is defined in the [variables documentation][variables]. ### tags @@ -430,7 +432,7 @@ allowed to run this project. During the registration of a Runner, you can specify the Runner's tags, for example `ruby`, `postgres`, `development`. -`tags` allow you to run builds with Runners that have the specified tags +`tags` allow you to run jobs with Runners that have the specified tags assigned to them: ```yaml @@ -445,13 +447,13 @@ has both `ruby` AND `postgres` tags defined. ### allow_failure -`allow_failure` is used when you want to allow a build to fail without impacting -the rest of the CI suite. Failed builds don't contribute to the commit status. +`allow_failure` is used when you want to allow a job to fail without impacting +the rest of the CI suite. Failed jobs don't contribute to the commit status. -When enabled and the build fails, the pipeline will be successful/green for all +When enabled and the job fails, the pipeline will be successful/green for all intents and purposes, but a "CI build passed with warnings" message will be -displayed on the merge request or commit or build page. This is to be used by -builds that are allowed to fail, but where failure indicates some other (manual) +displayed on the merge request or commit or job page. This is to be used by +jobs that are allowed to fail, but where failure indicates some other (manual) steps should be taken elsewhere. In the example below, `job1` and `job2` will run in parallel, but if `job1` @@ -483,12 +485,12 @@ failure. `when` can be set to one of the following values: -1. `on_success` - execute build only when all builds from prior stages +1. `on_success` - execute job only when all jobs from prior stages succeed. This is the default. -1. `on_failure` - execute build only when at least one build from prior stages +1. `on_failure` - execute job only when at least one job from prior stages fails. -1. `always` - execute build regardless of the status of builds from prior stages. -1. `manual` - execute build manually (added in GitLab 8.10). Read about +1. `always` - execute job regardless of the status of jobs from prior stages. +1. `manual` - execute job manually (added in GitLab 8.10). Read about [manual actions](#manual-actions) below. For example: @@ -526,7 +528,7 @@ deploy_job: cleanup_job: stage: cleanup script: - - cleanup after builds + - cleanup after jobs when: always ``` @@ -552,10 +554,11 @@ Read more at the [environments documentation][env-manual]. ### environment -> Introduced in GitLab 8.9. - -> You can read more about environments and find more examples in the -[documentation about environments][environment]. +> +**Notes:** +- Introduced in GitLab 8.9. +- You can read more about environments and find more examples in the + [documentation about environments][environment]. `environment` is used to define that a job deploys to a specific environment. If `environment` is specified and no environment under that name exists, a new @@ -563,7 +566,7 @@ one will be created automatically. In its simplest form, the `environment` keyword can be defined like: -``` +```yaml deploy to production: stage: deploy script: git push production HEAD:master @@ -576,12 +579,12 @@ deployment to the `production` environment. #### environment:name -> Introduced in GitLab 8.11. - ->**Note:** -Before GitLab 8.11, the name of an environment could be defined as a string like -`environment: production`. The recommended way now is to define it under the -`name` keyword. +> +**Notes:** +- Introduced in GitLab 8.11. +- Before GitLab 8.11, the name of an environment could be defined as a string like + `environment: production`. The recommended way now is to define it under the + `name` keyword. The `environment` name can contain: @@ -602,7 +605,7 @@ Instead of defining the name of the environment right after the `environment` keyword, it is also possible to define it as a separate value. For that, use the `name` keyword under `environment`: -``` +```yaml deploy to production: stage: deploy script: git push production HEAD:master @@ -612,11 +615,11 @@ deploy to production: #### environment:url -> Introduced in GitLab 8.11. - ->**Note:** -Before GitLab 8.11, the URL could be added only in GitLab's UI. The -recommended way now is to define it in `.gitlab-ci.yml`. +> +**Notes:** +- Introduced in GitLab 8.11. +- Before GitLab 8.11, the URL could be added only in GitLab's UI. The + recommended way now is to define it in `.gitlab-ci.yml`. This is an optional value that when set, it exposes buttons in various places in GitLab which when clicked take you to the defined URL. @@ -625,7 +628,7 @@ In the example below, if the job finishes successfully, it will create buttons in the merge requests and in the environments/deployments pages which will point to `https://prod.example.com`. -``` +```yaml deploy to production: stage: deploy script: git push production HEAD:master @@ -690,8 +693,10 @@ The `stop_review_app` job is **required** to have the following keywords defined #### dynamic environments -> [Introduced][ce-6323] in GitLab 8.12 and GitLab Runner 1.6. - `$CI_ENVIRONMENT_SLUG` was [introduced][ce-7983] in GitLab 8.15 +> +**Notes:** +- [Introduced][ce-6323] in GitLab 8.12 and GitLab Runner 1.6. +- The `$CI_ENVIRONMENT_SLUG` was [introduced][ce-7983] in GitLab 8.15. `environment` can also represent a configuration hash with `name` and `url`. These parameters can use any of the defined [CI variables](#variables) @@ -699,7 +704,7 @@ These parameters can use any of the defined [CI variables](#variables) For example: -``` +```yaml deploy as review app: stage: deploy script: make deploy @@ -714,28 +719,27 @@ is an [environment variable][variables] set by the Runner. The `$CI_ENVIRONMENT_SLUG` variable is based on the environment name, but suitable for inclusion in URLs. In this case, if the `deploy as review app` job was run in a branch named `pow`, this environment would be accessible with an URL like -`https://review-pow-aaaaaa.example.com/`. +`https://review-pow.example.com/`. This of course implies that the underlying server which hosts the application is properly configured. The common use case is to create dynamic environments for branches and use them as Review Apps. You can see a simple example using Review Apps at -https://gitlab.com/gitlab-examples/review-apps-nginx/. +. ### artifacts ->**Notes:** > -> - Introduced in GitLab Runner v0.7.0 for non-Windows platforms. -> - Windows support was added in GitLab Runner v.1.0.0. -> - Currently not all executors are supported. -> - Build artifacts are only collected for successful builds by default. +**Notes:** +- Introduced in GitLab Runner v0.7.0 for non-Windows platforms. +- Windows support was added in GitLab Runner v.1.0.0. +- Currently not all executors are supported. +- Job artifacts are only collected for successful jobs by default. `artifacts` is used to specify a list of files and directories which should be -attached to the build after success. You can only use paths that are within the -project workspace. To pass artifacts between different builds, see [dependencies](#dependencies). - +attached to the job after success. You can only use paths that are within the +project workspace. To pass artifacts between different jobs, see [dependencies](#dependencies). Below are some examples. Send all files in `binaries` and `.config`: @@ -794,7 +798,7 @@ release-job: - tags ``` -The artifacts will be sent to GitLab after a successful build and will +The artifacts will be sent to GitLab after the job finishes successfully and will be available for download in the GitLab UI. #### artifacts:name @@ -811,7 +815,7 @@ The default name is `artifacts`, which becomes `artifacts.zip` when downloaded. **Example configurations** -To create an archive with a name of the current build: +To create an archive with a name of the current job: ```yaml job: @@ -829,7 +833,7 @@ job: untracked: true ``` -To create an archive with a name of the current build and the current branch or +To create an archive with a name of the current job and the current branch or tag including only the files that are untracked by Git: ```yaml @@ -864,20 +868,20 @@ job: > Introduced in GitLab 8.9 and GitLab Runner v1.3.0. -`artifacts:when` is used to upload artifacts on build failure or despite the +`artifacts:when` is used to upload artifacts on job failure or despite the failure. `artifacts:when` can be set to one of the following values: -1. `on_success` - upload artifacts only when the build succeeds. This is the default. -1. `on_failure` - upload artifacts only when the build fails. -1. `always` - upload artifacts regardless of the build status. +1. `on_success` - upload artifacts only when the job succeeds. This is the default. +1. `on_failure` - upload artifacts only when the job fails. +1. `always` - upload artifacts regardless of the job status. --- **Example configurations** -To upload artifacts only when build fails. +To upload artifacts only when job fails. ```yaml job: @@ -894,13 +898,14 @@ time. By default, artifacts are stored on GitLab forever. `expire_in` allows you to specify how long artifacts should live before they expire, counting from the time they are uploaded and stored on GitLab. -You can use the **Keep** button on the build page to override expiration and +You can use the **Keep** button on the job page to override expiration and keep artifacts forever. After expiry, artifacts are actually deleted hourly by default (via a cron job), but they are not accessible after expiry. The value of `expire_in` is an elapsed time. Examples of parseable values: + - '3 mins 4 sec' - '2 hrs 20 min' - '2h20min' @@ -925,14 +930,14 @@ job: > Introduced in GitLab 8.6 and GitLab Runner v1.1.1. This feature should be used in conjunction with [`artifacts`](#artifacts) and -allows you to define the artifacts to pass between different builds. +allows you to define the artifacts to pass between different jobs. Note that `artifacts` from all previous [stages](#stages) are passed by default. To use this feature, define `dependencies` in context of the job and pass -a list of all previous builds from which the artifacts should be downloaded. -You can only define builds from stages that are executed before the current one. -An error will be shown if you define builds from the current stage or next ones. +a list of all previous jobs from which the artifacts should be downloaded. +You can only define jobs from stages that are executed before the current one. +An error will be shown if you define jobs from the current stage or next ones. Defining an empty array will skip downloading any artifacts for that job. --- @@ -942,7 +947,7 @@ In the following example, we define two jobs with artifacts, `build:osx` and will be downloaded and extracted in the context of the build. The same happens for `test:linux` and artifacts from `build:linux`. -The job `deploy` will download artifacts from all previous builds because of +The job `deploy` will download artifacts from all previous jobs because of the [stage](#stages) precedence: ```yaml @@ -979,7 +984,7 @@ deploy: ### before_script and after_script -It's possible to overwrite globally defined `before_script` and `after_script`: +It's possible to overwrite the globally defined `before_script` and `after_script`: ```yaml before_script: @@ -1027,7 +1032,7 @@ There are three possible values: `clone`, `fetch`, and `none`. `clone` is the slowest option. It clones the repository from scratch for every job, ensuring that the project workspace is always pristine. -``` +```yaml variables: GIT_STRATEGY: clone ``` @@ -1036,7 +1041,7 @@ variables: if it doesn't exist). `git clean` is used to undo any changes made by the last job, and `git fetch` is used to retrieve commits made since the last job ran. -``` +```yaml variables: GIT_STRATEGY: fetch ``` @@ -1047,7 +1052,7 @@ for jobs that operate exclusively on artifacts (e.g., `deploy`). Git repository data may be present, but it is certain to be out of date, so you should only rely on files brought into the project workspace from cache or artifacts. -``` +```yaml variables: GIT_STRATEGY: none ``` @@ -1061,56 +1066,59 @@ submodules are included when fetching the code before a build. Like `GIT_STRATEGY`, it can be set in either the global [`variables`](#variables) section or the [`variables`](#job-variables) section for individual jobs. -There are three posible values: `none`, `normal`, and `recursive`: +There are three possible values: `none`, `normal`, and `recursive`: - `none` means that submodules will not be included when fetching the project code. This is the default, which matches the pre-v1.10 behavior. - `normal` means that only the top-level submodules will be included. It is equivalent to: + ``` - $ git submodule sync - $ git submodule update --init + git submodule sync + git submodule update --init ``` - `recursive` means that all submodules (including submodules of submodules) will be included. It is equivalent to: + ``` - $ git submodule sync --recursive - $ git submodule update --init --recursive + git submodule sync --recursive + git submodule update --init --recursive ``` Note that for this feature to work correctly, the submodules must be configured (in `.gitmodules`) with either: + - the HTTP(S) URL of a publicly-accessible repository, or - a relative path to another repository on the same GitLab server. See the [Git submodules](../git_submodules.md) documentation. -## Build stages attempts +## Job stages attempts > Introduced in GitLab, it requires GitLab Runner v1.9+. -You can set the number for attempts the running build will try to execute each +You can set the number for attempts the running job will try to execute each of the following stages: -| Variable | Description | -|-------------------------|-------------| -| **GET_SOURCES_ATTEMPTS** | Number of attempts to fetch sources running a build | -| **ARTIFACT_DOWNLOAD_ATTEMPTS** | Number of attempts to download artifacts running a build | -| **RESTORE_CACHE_ATTEMPTS** | Number of attempts to restore the cache running a build | +| Variable | Description | +|-------------------------------- |-------------| +| **GET_SOURCES_ATTEMPTS** | Number of attempts to fetch sources running a job | +| **ARTIFACT_DOWNLOAD_ATTEMPTS** | Number of attempts to download artifacts running a job | +| **RESTORE_CACHE_ATTEMPTS** | Number of attempts to restore the cache running a job | The default is one single attempt. Example: -``` +```yaml variables: GET_SOURCES_ATTEMPTS: "3" ``` -You can set them in the global [`variables`](#variables) section or the [`variables`](#job-variables) -section for individual jobs. +You can set them in the global [`variables`](#variables) section or the +[`variables`](#job-variables) section for individual jobs. ## Shallow cloning @@ -1123,21 +1131,22 @@ repositories with a large number of commits or old, large binaries. The value is passed to `git fetch` and `git clone`. >**Note:** -If you use a depth of 1 and have a queue of builds or retry -builds, jobs may fail. +If you use a depth of 1 and have a queue of jobs or retry +jobs, jobs may fail. -Since Git fetching and cloning is based on a ref, such as a branch name, runners -can't clone a specific commit SHA. If there are multiple builds in the queue, or -you are retrying an old build, the commit to be tested needs to be within the -git history that is cloned. Setting too small a value for `GIT_DEPTH` can make +Since Git fetching and cloning is based on a ref, such as a branch name, Runners +can't clone a specific commit SHA. If there are multiple jobs in the queue, or +you are retrying an old job, the commit to be tested needs to be within the +Git history that is cloned. Setting too small a value for `GIT_DEPTH` can make it impossible to run these old commits. You will see `unresolved reference` in -build logs. You should then reconsider changing `GIT_DEPTH` to a higher value. +job logs. You should then reconsider changing `GIT_DEPTH` to a higher value. -Builds that rely on `git describe` may not work correctly when `GIT_DEPTH` is -set since only part of the git history is present. +Jobs that rely on `git describe` may not work correctly when `GIT_DEPTH` is +set since only part of the Git history is present. To fetch or clone only the last 3 commits: -``` + +```yaml variables: GIT_DEPTH: "3" ``` @@ -1174,7 +1183,7 @@ Read more about the various [YAML features](https://learnxinyminutes.com/docs/ya > Introduced in GitLab 8.6 and GitLab Runner v1.1.1. -YAML also has a handy feature called 'anchors', which let you easily duplicate +YAML has a handy feature called 'anchors', which lets you easily duplicate content across your document. Anchors can be used to duplicate/inherit properties, and is a perfect example to be used with [hidden keys](#hidden-keys) to provide templates for your jobs. @@ -1326,17 +1335,17 @@ pages: - master ``` -Read more on [GitLab Pages user documentation](../../pages/README.md). +Read more on [GitLab Pages user documentation](../../user/project/pages/index.md). ## Validate the .gitlab-ci.yml Each instance of GitLab CI has an embedded debug tool called Lint. You can find the link under `/ci/lint` of your gitlab instance. -## Skipping builds +## Skipping jobs If your commit message contains `[ci skip]` or `[skip ci]`, using any -capitalization, the commit will be created but the builds will be skipped. +capitalization, the commit will be created but the jobs will be skipped. ## Examples diff --git a/doc/development/code_review.md b/doc/development/code_review.md index e4a0e0b92bc..819578404b6 100644 --- a/doc/development/code_review.md +++ b/doc/development/code_review.md @@ -69,7 +69,7 @@ experience, refactors the existing code). Then: someone else would be confused by it as well. - After a round of line notes, it can be helpful to post a summary note such as "LGTM :thumbsup:", or "Just a couple things to address." -- Avoid accepting a merge request before the build succeeds. Of course, "Merge +- Avoid accepting a merge request before the job succeeds. Of course, "Merge When Pipeline Succeeds" (MWPS) is fine. - If you set the MR to "Merge When Pipeline Succeeds", you should take over subsequent revisions for anything that would be spotted after that. diff --git a/doc/install/installation.md b/doc/install/installation.md index 355179960b3..0f07085942a 100644 --- a/doc/install/installation.md +++ b/doc/install/installation.md @@ -307,7 +307,7 @@ sudo usermod -aG redis git # now that files in public/uploads are served by gitlab-workhorse sudo chmod 0700 public/uploads - # Change the permissions of the directory where CI build traces are stored + # Change the permissions of the directory where CI job traces are stored sudo chmod -R u+rwX builds/ # Change the permissions of the directory where CI artifacts are stored diff --git a/doc/raketasks/backup_restore.md b/doc/raketasks/backup_restore.md index 0fb69d63dbe..b4e13f5812a 100644 --- a/doc/raketasks/backup_restore.md +++ b/doc/raketasks/backup_restore.md @@ -44,8 +44,8 @@ environment variable `SKIP`. You can skip: - `db` (database) - `uploads` (attachments) - `repositories` (Git repositories data) -- `builds` (CI build output logs) -- `artifacts` (CI build artifacts) +- `builds` (CI job output logs) +- `artifacts` (CI job artifacts) - `lfs` (LFS objects) - `registry` (Container Registry images) diff --git a/doc/university/glossary/README.md b/doc/university/glossary/README.md index 979a1c5d310..ec565c3e7bf 100644 --- a/doc/university/glossary/README.md +++ b/doc/university/glossary/README.md @@ -30,15 +30,15 @@ A version control [system](https://www.jfrog.com/open-source/#os-arti) for non-t ### Artifacts -Objects (usually binary and large) created by a build process. These can include use cases, class diagrams, requirements and design documents. +Objects (usually binary and large) created by a build process. These can include use cases, class diagrams, requirements and design documents. ### Atlassian -A [company](https://www.atlassian.com) that develops software products for developers and project managers including Bitbucket, Jira, Hipchat, Confluence, Bamboo. +A [company](https://www.atlassian.com) that develops software products for developers and project managers including Bitbucket, Jira, Hipchat, Confluence, Bamboo. ### Audit Log -Also called an [audit trail](https://en.wikipedia.org/wiki/Audit_trail), an audit log is a document that records an event in an IT system. +Also called an [audit trail](https://en.wikipedia.org/wiki/Audit_trail), an audit log is a document that records an event in an IT system. ### Auto Defined User Group @@ -55,7 +55,7 @@ Entry level [subscription](https://about.gitlab.com/pricing/) for GitLab EE curr ### Bitbucket -Atlassian's web hosting service for Git and Mercurial Projects. Read about [migrating](https://docs.gitlab.com/ce/workflow/importing/import_projects_from_bitbucket.html) from BitBucket to a GitLab instance. +Atlassian's web hosting service for Git and Mercurial Projects. Read about [migrating](https://docs.gitlab.com/ce/workflow/importing/import_projects_from_bitbucket.html) from BitBucket to a GitLab instance. ### Branch @@ -65,8 +65,8 @@ A branch is a parallel version of a repository. This allows you to work on the r Having your own logo on [your GitLab instance login page](https://docs.gitlab.com/ee/customization/branded_login_page.html) instead of the GitLab logo. -### Build triggers -These protect your code base against breaks, for instance when a team is working on the same project. Learn about [setting up](https://docs.gitlab.com/ce/ci/triggers/README.html) build triggers. +### Job triggers +These protect your code base against breaks, for instance when a team is working on the same project. Learn about [setting up](https://docs.gitlab.com/ce/ci/triggers/README.html) job triggers. ### CEPH @@ -74,7 +74,7 @@ These protect your code base against breaks, for instance when a team is working ### ChatOps -The ability to [initiate an action](https://gitlab.com/gitlab-org/omnibus-gitlab/issues/1412) from chat. ChatBots run in your chat application and give you the ability to do "anything" from chat. +The ability to [initiate an action](https://gitlab.com/gitlab-org/omnibus-gitlab/issues/1412) from chat. ChatBots run in your chat application and give you the ability to do "anything" from chat. ### Clone @@ -82,7 +82,7 @@ A [copy](https://git-scm.com/docs/git-clone) of a repository stored on your mach ### Code Review -Examination of a progam's code. The main aim is to maintain high quality standards of code that is being shipped. Merge requests [serve as a code review tool](https://about.gitlab.com/2014/09/29/gitlab-flow/) in GitLab. +Examination of a progam's code. The main aim is to maintain high quality standards of code that is being shipped. Merge requests [serve as a code review tool](https://about.gitlab.com/2014/09/29/gitlab-flow/) in GitLab. ### Code Snippet @@ -140,7 +140,7 @@ A [SSH key](https://docs.gitlab.com/ce/gitlab-basics/create-your-ssh-keys.html)s For us at GitLab, this means a software developer, or someone who makes software. It is also one of the levels of access in our multi-level approval system. -### DevOps +### DevOps The intersection of software engineering, quality assurance, and technology operations. Explore more DevOps topics in the [glossary by XebiaLabs](https://xebialabs.com/glossary/) @@ -160,7 +160,7 @@ A [feature](https://docs.gitlab.com/ce/user/project/container_registry.html) of ### ElasticSearch -Elasticsearch is a flexible, scalable and powerful search service. When [enabled](https://gitlab.com/help/integration/elasticsearch.md), it helps keep GitLab's search fast when dealing with a huge amount of data. +Elasticsearch is a flexible, scalable and powerful search service. When [enabled](https://gitlab.com/help/integration/elasticsearch.md), it helps keep GitLab's search fast when dealing with a huge amount of data. ### Emacs @@ -174,7 +174,7 @@ A code review [tool](https://www.gerritcodereview.com/) built on top of Git. ### Git Attributes -A [git attributes file](https://git-scm.com/docs/gitattributes) is a simple text file that gives attributes to pathnames. +A [git attributes file](https://git-scm.com/docs/gitattributes) is a simple text file that gives attributes to pathnames. ### Git Hooks @@ -209,7 +209,7 @@ Our free SaaS for public and private repositories. Allows you to replicate your GitLab instance to other geographical locations as a read-only fully operational version. It [can be used](https://docs.gitlab.com/ee/gitlab-geo/README.html) for cloning and fetching projects, in addition to reading any data. This will make working with large repositories over large distances much faster. ### GitLab Pages -These allow you to [create websites](https://gitlab.com/help/pages/README.md) for your GitLab projects, groups, or user account. +These allow you to [create websites](https://gitlab.com/help/pages/README.md) for your GitLab projects, groups, or user account. ### Gitolite @@ -253,7 +253,7 @@ A [tool](https://docs.gitlab.com/ee/integration/external-issue-tracker.html) use ### Jenkins -An Open Source CI tool written using the Java programming language. [Jenkins](https://jenkins-ci.org/) does the same job as GitLab CI, Bamboo, and Travis CI. It is extremely popular. +An Open Source CI tool written using the Java programming language. [Jenkins](https://jenkins-ci.org/) does the same job as GitLab CI, Bamboo, and Travis CI. It is extremely popular. ### Jira @@ -289,7 +289,7 @@ Allows you to synchronize the members of a GitLab group with one or more LDAP gr ### Load Balancer -A [device](https://en.wikipedia.org/wiki/Load_balancing_(computing)) that distributes network or application traffic across multiple servers. +A [device](https://en.wikipedia.org/wiki/Load_balancing_(computing)) that distributes network or application traffic across multiple servers. ### Git Large File Storage (LFS) @@ -301,7 +301,7 @@ An operating system like Windows or OS X. It is mostly used by software develope ### Markdown -A lightweight markup language with plain text formatting syntax designed so that it can be converted to HTML and many other formats using a tool by the same name. Markdown is often used to format readme files, for writing messages in online discussion forums, and to create rich text using a plain text editor. Checkout GitLab's [Markdown guide](https://gitlab.com/help/user/markdown.md). +A lightweight markup language with plain text formatting syntax designed so that it can be converted to HTML and many other formats using a tool by the same name. Markdown is often used to format readme files, for writing messages in online discussion forums, and to create rich text using a plain text editor. Checkout GitLab's [Markdown guide](https://gitlab.com/help/user/markdown.md). ### Maria DB @@ -313,11 +313,11 @@ Name of the [default branch](https://git-scm.com/book/en/v1/Git-Branching-What-a ### Mattermost -An open source, self-hosted messaging alternative to Slack. View GitLab's Mattermost [feature](https://gitlab.com/gitlab-org/gitlab-mattermost). +An open source, self-hosted messaging alternative to Slack. View GitLab's Mattermost [feature](https://gitlab.com/gitlab-org/gitlab-mattermost). ### Mercurial -A free distributed version control system similar to and a competitor with Git. +A free distributed version control system similar to and a competitor with Git. ### Merge @@ -325,7 +325,7 @@ Takes changes from one branch, and [applies them](https://git-scm.com/docs/git-m ### Merge Conflict -[Arises](https://about.gitlab.com/2016/09/06/resolving-merge-conflicts-from-the-gitlab-ui/) when a merge can't be performed cleanly between two versions of the same file. +[Arises](https://about.gitlab.com/2016/09/06/resolving-merge-conflicts-from-the-gitlab-ui/) when a merge can't be performed cleanly between two versions of the same file. ### Meteor @@ -345,7 +345,7 @@ A type of software license. It lets people do anything with your code with prope ### Mondo Rescue -A free disaster recovery [software](https://help.ubuntu.com/community/MondoMindi). +A free disaster recovery [software](https://help.ubuntu.com/community/MondoMindi). ### MySQL @@ -361,7 +361,7 @@ A web [server](https://www.nginx.com/resources/wiki/) (pronounced "engine x"). I ### OAuth -An open standard for authorization, commonly used as a way for internet users to log into third party websites using their Microsoft, Google, Facebook or Twitter accounts without exposing their password. GitLab [is](https://docs.gitlab.com/ce/integration/oauth_provider.html) an OAuth2 authentication service provider. +An open standard for authorization, commonly used as a way for internet users to log into third party websites using their Microsoft, Google, Facebook or Twitter accounts without exposing their password. GitLab [is](https://docs.gitlab.com/ce/integration/oauth_provider.html) an OAuth2 authentication service provider. ### Omnibus Packages @@ -371,13 +371,13 @@ A way to [package different services and tools](https://docs.gitlab.com/omnibus/ On your own server. In GitLab, this [refers](https://about.gitlab.com/2015/02/12/why-ship-on-premises-in-the-saas-era/) to the ability to download GitLab EE/GitLab CE and host it on your own server rather than using GitLab.com, which is hosted by GitLab Inc's servers. -### Open Core +### Open Core GitLab's [business model](https://about.gitlab.com/2016/07/20/gitlab-is-open-core-github-is-closed-source/). Coined by Andrew Lampitt in 2008, the [open core model](https://en.wikipedia.org/wiki/Open_core) primarily involves offering a "core" or feature-limited version of a software product as free and open-source software, while offering "commercial" versions or add-ons as proprietary software. ### Open Source Software -Software for which the original source code is freely [available](https://opensource.org/docs/osd) and may be redistributed and modified. GitLab prioritizes open source [stewardship](https://about.gitlab.com/2016/01/11/being-a-good-open-source-steward/). +Software for which the original source code is freely [available](https://opensource.org/docs/osd) and may be redistributed and modified. GitLab prioritizes open source [stewardship](https://about.gitlab.com/2016/01/11/being-a-good-open-source-steward/). ### Owner @@ -405,7 +405,7 @@ GitLab Premium EE [subscription](https://about.gitlab.com/pricing/) that include ### PostgreSQL -An [object-relational](https://en.wikipedia.org/wiki/PostgreSQL) database. Touted as the most advanced open source database, it is one of two database management systems [supported by](https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/database.md) GitLab, the other being MySQL. +An [object-relational](https://en.wikipedia.org/wiki/PostgreSQL) database. Touted as the most advanced open source database, it is one of two database management systems [supported by](https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/database.md) GitLab, the other being MySQL. ### Protected Branches @@ -421,7 +421,7 @@ A popular DevOps [automation tool](https://puppet.com/product/how-puppet-works). ### Push -Git [command](https://git-scm.com/docs/git-push) to send commits from the local repository to the remote repository. Read about [advanced push rules](https://gitlab.com/help/pages/README.md) in GitLab. +Git [command](https://git-scm.com/docs/git-push) to send commits from the local repository to the remote repository. Read about [advanced push rules](https://gitlab.com/help/pages/README.md) in GitLab. ### RE Read Only @@ -429,7 +429,7 @@ Permissions to see a file and its contents, but not change it. ### Rebase -In addition to the merge, the [rebase](https://git-scm.com/book/en/v2/Git-Branching-Rebasing) is a main way to integrate changes from one branch into another. +In addition to the merge, the [rebase](https://git-scm.com/book/en/v2/Git-Branching-Rebasing) is a main way to integrate changes from one branch into another. ### (Git) Repository @@ -449,7 +449,7 @@ An open source chat application for teams, RocketChat is very similar to Slack b ### Route Table -A route table contains rules (called routes) that determine where network traffic is directed. Each [subnet in a VPC](http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Route_Tables.html) must be associated with a route table. +A route table contains rules (called routes) that determine where network traffic is directed. Each [subnet in a VPC](http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Route_Tables.html) must be associated with a route table. ### Runners @@ -477,15 +477,15 @@ The board used to track the status and progress of each of the sprint backlog it ### Shell -Terminal on Mac OSX, GitBash on Windows, or Linux Terminal on Linux. You [use git]() and make changes to GitLab projects in your shell. You [use git](https://docs.gitlab.com/ce/gitlab-basics/start-using-git.html) and make changes to GitLab projects in your shell. +Terminal on Mac OSX, GitBash on Windows, or Linux Terminal on Linux. You [use git]() and make changes to GitLab projects in your shell. You [use git](https://docs.gitlab.com/ce/gitlab-basics/start-using-git.html) and make changes to GitLab projects in your shell. ### Single-tenant -The tenant purchases their own copy of the software and the software can be customized to meet the specific and needs of that customer. [GitHost.io](https://about.gitlab.com/handbook/positioning-faq/) is our provider of single-tenant 'managed cloud' GitLab instances. +The tenant purchases their own copy of the software and the software can be customized to meet the specific and needs of that customer. [GitHost.io](https://about.gitlab.com/handbook/positioning-faq/) is our provider of single-tenant 'managed cloud' GitLab instances. ### Slack -Real time messaging app for teams that is used internally by GitLab team members. GitLab users can enable [Slack integration](https://docs.gitlab.com/ce/project_services/slack.html) to trigger push, issue, and merge request events among others. +Real time messaging app for teams that is used internally by GitLab team members. GitLab users can enable [Slack integration](https://docs.gitlab.com/ce/project_services/slack.html) to trigger push, issue, and merge request events among others. ### Slave Servers @@ -529,7 +529,7 @@ A program that allows you to perform superuser/administrator actions on Unix Ope ### Subversion (SVN) -An open source version control system. Read about [migrating from SVN](https://docs.gitlab.com/ce/workflow/importing/migrating_from_svn.html) to GitLab using SubGit. +An open source version control system. Read about [migrating from SVN](https://docs.gitlab.com/ce/workflow/importing/migrating_from_svn.html) to GitLab using SubGit. ### Tag @@ -545,7 +545,7 @@ An open source project management and bug tracking web [application](https://tra ### Untracked files -New files that Git has not [been told](https://git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository) to track previously. +New files that Git has not [been told](https://git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository) to track previously. ### User @@ -553,11 +553,11 @@ Anyone interacting with the software. ### Version Control Software (VCS) -Version control is a system that records changes to a file or set of files over time so that you can recall specific versions later. VCS [has evolved](https://docs.google.com/presentation/d/16sX7hUrCZyOFbpvnrAFrg6tVO5_yT98IgdAqOmXwBho/edit#slide=id.gd69537a19_0_32) from local version control systems, to centralized version control systems, to the present distributed version control systems like Git, Mercurial, Bazaar, and Darcs. +Version control is a system that records changes to a file or set of files over time so that you can recall specific versions later. VCS [has evolved](https://docs.google.com/presentation/d/16sX7hUrCZyOFbpvnrAFrg6tVO5_yT98IgdAqOmXwBho/edit#slide=id.gd69537a19_0_32) from local version control systems, to centralized version control systems, to the present distributed version control systems like Git, Mercurial, Bazaar, and Darcs. ### Virtual Private Cloud (VPC) -An on demand configurable pool of shared computing resources allocated within a public cloud environment, providing some isolation between the different users using the resources. GitLab users need to create a new Amazon VPC in order to [setup High Availability](https://docs.gitlab.com/ce/university/high-availability/aws/). +An on demand configurable pool of shared computing resources allocated within a public cloud environment, providing some isolation between the different users using the resources. GitLab users need to create a new Amazon VPC in order to [setup High Availability](https://docs.gitlab.com/ce/university/high-availability/aws/). ### Virtual private server (VPS) @@ -565,15 +565,15 @@ A [virtual machine](https://en.wikipedia.org/wiki/Virtual_private_server) sold a ### VM Instance -In object-oriented programming, an [instance](http://stackoverflow.com/questions/20461907/what-is-meaning-of-instance-in-programming) is a specific realization of any object. An object may be varied in a number of ways. Each realized variation of that object is an instance. Therefore, a VM instance is an instance of a virtual machine, which is an emulation of a computer system. +In object-oriented programming, an [instance](http://stackoverflow.com/questions/20461907/what-is-meaning-of-instance-in-programming) is a specific realization of any object. An object may be varied in a number of ways. Each realized variation of that object is an instance. Therefore, a VM instance is an instance of a virtual machine, which is an emulation of a computer system. ### Waterfall -A [model](http://www.umsl.edu/~hugheyd/is6840/waterfall.html) of building software that involves collecting all requirements from the customer, then building and refining all the requirements and finally delivering the complete software to the customer that meets all the requirements they specified. +A [model](http://www.umsl.edu/~hugheyd/is6840/waterfall.html) of building software that involves collecting all requirements from the customer, then building and refining all the requirements and finally delivering the complete software to the customer that meets all the requirements they specified. ### Webhooks -A way for for an app to [provide](https://docs.gitlab.com/ce/user/project/integrations/webhooks.html) other applications with real-time information (e.g., send a message to a slack channel when a commit is pushed.) Read about setting up [custom git hooks](https://gitlab.com/help/administration/custom_hooks.md) for when webhooks are insufficient. +A way for for an app to [provide](https://docs.gitlab.com/ce/user/project/integrations/webhooks.html) other applications with real-time information (e.g., send a message to a slack channel when a commit is pushed.) Read about setting up [custom git hooks](https://gitlab.com/help/administration/custom_hooks.md) for when webhooks are insufficient. ### Wiki @@ -585,5 +585,5 @@ A [website/system](http://www.wiki.com/) that allows for collaborative editing o ### YAML -A human-readable data serialization [language](http://www.yaml.org/about.html) that takes concepts from programming languages such as C, Perl, and Python, and ideas from XML and the data format of electronic mail. +A human-readable data serialization [language](http://www.yaml.org/about.html) that takes concepts from programming languages such as C, Perl, and Python, and ideas from XML and the data format of electronic mail. diff --git a/doc/user/admin_area/settings/continuous_integration.md b/doc/user/admin_area/settings/continuous_integration.md index 34e2e557f89..b8d24cb2d3b 100644 --- a/doc/user/admin_area/settings/continuous_integration.md +++ b/doc/user/admin_area/settings/continuous_integration.md @@ -2,9 +2,9 @@ ## Maximum artifacts size -The maximum size of the [build artifacts][art-yml] can be set in the Admin area +The maximum size of the [job artifacts][art-yml] can be set in the Admin area of your GitLab instance. The value is in MB and the default is 100MB. Note that -this setting is set for each build. +this setting is set for each job. 1. Go to **Admin area > Settings** (`/admin/application_settings`). @@ -17,4 +17,4 @@ this setting is set for each build. 1. Hit **Save** for the changes to take effect. -[art-yml]: ../../../administration/build_artifacts.md +[art-yml]: ../../../administration/job_artifacts.md diff --git a/doc/user/permissions.md b/doc/user/permissions.md index e87cae092a5..b49a244160a 100644 --- a/doc/user/permissions.md +++ b/doc/user/permissions.md @@ -22,9 +22,9 @@ The following table depicts the various user permission levels in a project. | Create confidential issue | ✓ | ✓ | ✓ | ✓ | ✓ | | View confidential issues | (✓) [^1] | ✓ | ✓ | ✓ | ✓ | | Leave comments | ✓ | ✓ | ✓ | ✓ | ✓ | -| See a list of builds | ✓ [^2] | ✓ | ✓ | ✓ | ✓ | -| See a build log | ✓ [^2] | ✓ | ✓ | ✓ | ✓ | -| Download and browse build artifacts | ✓ [^2] | ✓ | ✓ | ✓ | ✓ | +| See a list of jobs | ✓ [^2] | ✓ | ✓ | ✓ | ✓ | +| See a job log | ✓ [^2] | ✓ | ✓ | ✓ | ✓ | +| Download and browse job artifacts | ✓ [^2] | ✓ | ✓ | ✓ | ✓ | | View wiki pages | ✓ | ✓ | ✓ | ✓ | ✓ | | Pull project code | | ✓ | ✓ | ✓ | ✓ | | Download project | | ✓ | ✓ | ✓ | ✓ | @@ -46,7 +46,7 @@ The following table depicts the various user permission levels in a project. | Remove non-protected branches | | | ✓ | ✓ | ✓ | | Add tags | | | ✓ | ✓ | ✓ | | Write a wiki | | | ✓ | ✓ | ✓ | -| Cancel and retry builds | | | ✓ | ✓ | ✓ | +| Cancel and retry jobs | | | ✓ | ✓ | ✓ | | Create or update commit status | | | ✓ | ✓ | ✓ | | Update a container registry | | | ✓ | ✓ | ✓ | | Remove a container registry image | | | ✓ | ✓ | ✓ | @@ -60,7 +60,7 @@ The following table depicts the various user permission levels in a project. | Add deploy keys to project | | | | ✓ | ✓ | | Configure project hooks | | | | ✓ | ✓ | | Manage runners | | | | ✓ | ✓ | -| Manage build triggers | | | | ✓ | ✓ | +| Manage job triggers | | | | ✓ | ✓ | | Manage variables | | | | ✓ | ✓ | | Manage pages | | | | ✓ | ✓ | | Manage pages domains and certificates | | | | ✓ | ✓ | @@ -134,8 +134,8 @@ instance and project. In addition, all admins can use the admin interface under | Action | Guest, Reporter | Developer | Master | Admin | |---------------------------------------|-----------------|-------------|----------|--------| -| See commits and builds | ✓ | ✓ | ✓ | ✓ | -| Retry or cancel build | | ✓ | ✓ | ✓ | +| See commits and jobs | ✓ | ✓ | ✓ | ✓ | +| Retry or cancel job | | ✓ | ✓ | ✓ | | Remove project | | | ✓ | ✓ | | Create project | | | ✓ | ✓ | | Change project configuration | | | ✓ | ✓ | @@ -144,18 +144,18 @@ instance and project. In addition, all admins can use the admin interface under | See events in the system | | | | ✓ | | Admin interface | | | | ✓ | -### Builds permissions +### Jobs permissions >**Note:** -GitLab 8.12 has a completely redesigned build permissions system. +GitLab 8.12 has a completely redesigned job permissions system. Read all about the [new model and its implications][new-mod]. -This table shows granted privileges for builds triggered by specific types of +This table shows granted privileges for jobs triggered by specific types of users: | Action | Guest, Reporter | Developer | Master | Admin | |---------------------------------------------|-----------------|-------------|----------|--------| -| Run CI build | | ✓ | ✓ | ✓ | +| Run CI job | | ✓ | ✓ | ✓ | | Clone source and LFS from current project | | ✓ | ✓ | ✓ | | Clone source and LFS from public projects | | ✓ | ✓ | ✓ | | Clone source and LFS from internal projects | | ✓ [^4] | ✓ [^4] | ✓ | diff --git a/doc/user/project/builds/artifacts.md b/doc/user/project/builds/artifacts.md index 88f1863dddb..514c729b37d 100644 --- a/doc/user/project/builds/artifacts.md +++ b/doc/user/project/builds/artifacts.md @@ -1,136 +1 @@ -# Introduction to build artifacts - ->**Notes:** ->- Since GitLab 8.2 and GitLab Runner 0.7.0, build artifacts that are created by - GitLab Runner are uploaded to GitLab and are downloadable as a single archive - (`tar.gz`) using the GitLab UI. ->- Starting from GitLab 8.4 and GitLab Runner 1.0, the artifacts archive format - changed to `ZIP`, and it is now possible to browse its contents, with the added - ability of downloading the files separately. ->- The artifacts browser will be available only for new artifacts that are sent - to GitLab using GitLab Runner version 1.0 and up. It will not be possible to - browse old artifacts already uploaded to GitLab. ->- This is the user documentation. For the administration guide see - [administration/build_artifacts.md](../../../administration/build_artifacts.md). - -Artifacts is a list of files and directories which are attached to a build -after it completes successfully. This feature is enabled by default in all GitLab installations. - -## Defining artifacts in `.gitlab-ci.yml` - -A simple example of using the artifacts definition in `.gitlab-ci.yml` would be -the following: - -```yaml -pdf: - script: xelatex mycv.tex - artifacts: - paths: - - mycv.pdf -``` - -A job named `pdf` calls the `xelatex` command in order to build a pdf file from -the latex source file `mycv.tex`. We then define the `artifacts` paths which in -turn are defined with the `paths` keyword. All paths to files and directories -are relative to the repository that was cloned during the build. - -For more examples on artifacts, follow the artifacts reference in -[`.gitlab-ci.yml` documentation](../../../ci/yaml/README.md#artifacts). - -## Browsing build artifacts - -When GitLab receives an artifacts archive, an archive metadata file is also -generated. This metadata file describes all the entries that are located in the -artifacts archive itself. The metadata file is in a binary format, with -additional GZIP compression. - -GitLab does not extract the artifacts archive in order to save space, memory -and disk I/O. It instead inspects the metadata file which contains all the -relevant information. This is especially important when there is a lot of -artifacts, or an archive is a very large file. - ---- - -After a build finishes, if you visit the build's specific page, you can see -that there are two buttons. One is for downloading the artifacts archive and -the other for browsing its contents. - -![Build artifacts browser button](img/build_artifacts_browser_button.png) - ---- - -The archive browser shows the name and the actual file size of each file in the -archive. If your artifacts contained directories, then you are also able to -browse inside them. - -Below you can see how browsing looks like. In this case we have browsed inside -the archive and at this point there is one directory and one HTML file. - -![Build artifacts browser](img/build_artifacts_browser.png) - ---- - -## Downloading build artifacts - ->**Note:** -GitLab does not extract the entire artifacts archive to send just a single file -to the user. When clicking on a specific file, [GitLab Workhorse] extracts it -from the archive and the download begins. This implementation saves space, -memory and disk I/O. - -If you need to download the whole archive, there are buttons in various places -inside GitLab that make that possible. - -1. While on the pipelines page, you can see the download icon for each build's - artifacts archive in the right corner: - - ![Build artifacts in Pipelines page](img/build_artifacts_pipelines_page.png) - -1. While on the builds page, you can see the download icon for each build's - artifacts archive in the right corner: - - ![Build artifacts in Builds page](img/build_artifacts_builds_page.png) - -1. While inside a specific build, you are presented with a download button - along with the one that browses the archive: - - ![Build artifacts browser button](img/build_artifacts_browser_button.png) - -1. And finally, when browsing an archive you can see the download button at - the top right corner: - - ![Build artifacts browser](img/build_artifacts_browser.png) - -## Downloading the latest build artifacts - -It is possible to download the latest artifacts of a build via a well known URL -so you can use it for scripting purposes. - -The structure of the URL is the following: - -``` -https://example.com///builds/artifacts//download?job= -``` - -For example, to download the latest artifacts of the job named `rspec 6 20` of -the `master` branch of the `gitlab-ce` project that belongs to the `gitlab-org` -namespace, the URL would be: - -``` -https://gitlab.com/gitlab-org/gitlab-ce/builds/artifacts/master/download?job=rspec+6+20 -``` - -The latest builds are also exposed in the UI in various places. Specifically, -look for the download button in: - -- the main project's page -- the branches page -- the tags page - -If the latest build has failed to upload the artifacts, you can see that -information in the UI. - -![Latest artifacts button](img/build_latest_artifacts_browser.png) - - -[gitlab workhorse]: https://gitlab.com/gitlab-org/gitlab-workhorse "GitLab Workhorse repository" +This document was moved to [pipelines/job_artifacts](../pipelines/job_artifacts.md). diff --git a/doc/user/project/builds/img/build_artifacts_browser.png b/doc/user/project/builds/img/build_artifacts_browser.png deleted file mode 100644 index 686273948d62b37e60dede99c7ad636f1547e08b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3782 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 diff --git a/doc/user/project/builds/img/build_artifacts_browser_button.png b/doc/user/project/builds/img/build_artifacts_browser_button.png deleted file mode 100644 index 33ef7de0415e6c0284ac6cfb2f3f50f9f5bf1cc0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4891 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 diff --git a/doc/user/project/builds/img/build_artifacts_builds_page.png b/doc/user/project/builds/img/build_artifacts_builds_page.png deleted file mode 100644 index 8f75602d5920580aa05d02312bd02841400ea2e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22022 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

W5 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

D7nH8o`1y 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 diff --git a/doc/user/project/builds/img/build_artifacts_pipelines_page.png b/doc/user/project/builds/img/build_artifacts_pipelines_page.png deleted file mode 100644 index 4bbd00ddaa090ab2004a1455cbd05e3cce7f23c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28339 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 ZT>iTq7>Ou9_)m#VNls0+LfS0!e*pL6!nOba diff --git a/doc/user/project/integrations/webhooks.md b/doc/user/project/integrations/webhooks.md index 55d480bfb72..ed1e867f5fb 100644 --- a/doc/user/project/integrations/webhooks.md +++ b/doc/user/project/integrations/webhooks.md @@ -11,7 +11,7 @@ a new issue is created. You can configure webhooks to listen for specific events like pushes, issues or merge requests. GitLab will send a POST request with data to the webhook URL. -Webhooks can be used to update an external issue tracker, trigger CI builds, +Webhooks can be used to update an external issue tracker, trigger CI jobs, update a backup mirror, or even deploy to your production server. Navigate to the webhooks page by going to the **Integrations** page from your diff --git a/doc/user/project/merge_requests/index.md b/doc/user/project/merge_requests/index.md index a27e683143d..abd3740ef20 100644 --- a/doc/user/project/merge_requests/index.md +++ b/doc/user/project/merge_requests/index.md @@ -22,7 +22,7 @@ in a merged merge requests or a commit. ## Merge when pipeline succeeds When reviewing a merge request that looks ready to merge but still has one or -more CI builds running, you can set it to be merged automatically when CI +more CI jobs running, you can set it to be merged automatically when CI pipeline succeeds. This way, you don't have to wait for the pipeline to finish and remember to merge the request manually. diff --git a/doc/user/project/merge_requests/merge_when_pipeline_succeeds.md b/doc/user/project/merge_requests/merge_when_pipeline_succeeds.md index 75ad18b28cf..c63a408505f 100644 --- a/doc/user/project/merge_requests/merge_when_pipeline_succeeds.md +++ b/doc/user/project/merge_requests/merge_when_pipeline_succeeds.md @@ -1,8 +1,8 @@ # Merge When Pipeline Succeeds When reviewing a merge request that looks ready to merge but still has one or -more CI builds running, you can set it to be merged automatically when the -builds pipeline succeeds. This way, you don't have to wait for the builds to +more CI jobs running, you can set it to be merged automatically when the +jobs pipeline succeeds. This way, you don't have to wait for the jobs to finish and remember to merge the request manually. ![Enable](img/merge_when_build_succeeds_enable.png) @@ -19,10 +19,10 @@ after all. ![Status](img/merge_when_build_succeeds_status.png) When the pipeline succeeds, the merge request will automatically be merged. -When the pipeline fails, the author gets a chance to retry any failed builds, +When the pipeline fails, the author gets a chance to retry any failed jobs, or to push new commits to fix the failure. -When the builds are retried and succeed on the second try, the merge request +When the jobs are retried and succeed on the second try, the merge request will automatically be merged after all. When the merge request is updated with new commits, the automatic merge is automatically canceled to allow the new changes to be reviewed. @@ -30,7 +30,7 @@ changes to be reviewed. ## Only allow merge requests to be merged if the pipeline succeeds > **Note:** -You need to have builds configured to enable this feature. +You need to have jobs configured to enable this feature. You can prevent merge requests from being merged if their pipeline did not succeed. @@ -41,6 +41,6 @@ hit **Save** for the changes to take effect. ![Only allow merge if pipeline succeeds settings](img/merge_when_build_succeeds_only_if_succeeds_settings.png) From now on, every time the pipeline fails you will not be able to merge the -merge request from the UI, until you make all relevant builds pass. +merge request from the UI, until you make all relevant jobs pass. ![Only allow merge if pipeline succeeds message](img/merge_when_build_succeeds_only_if_succeeds_msg.png) diff --git a/doc/user/project/new_ci_build_permissions_model.md b/doc/user/project/new_ci_build_permissions_model.md index 320faff65c5..5f631f63050 100644 --- a/doc/user/project/new_ci_build_permissions_model.md +++ b/doc/user/project/new_ci_build_permissions_model.md @@ -1,55 +1,55 @@ -# New CI build permissions model +# New CI job permissions model > Introduced in GitLab 8.12. -GitLab 8.12 has a completely redesigned [build permissions] system. You can find +GitLab 8.12 has a completely redesigned [job permissions] system. You can find all discussion and all our concerns when choosing the current approach in issue [#18994](https://gitlab.com/gitlab-org/gitlab-ce/issues/18994). --- -Builds permissions should be tightly integrated with the permissions of a user -who is triggering a build. +Jobs permissions should be tightly integrated with the permissions of a user +who is triggering a job. The reasons to do it like that are: - We already have a permissions system in place: group and project membership of users. -- We already fully know who is triggering a build (using `git push`, using the +- We already fully know who is triggering a job (using `git push`, using the web UI, executing triggers). - We already know what user is allowed to do. -- We use the user permissions for builds that are triggered by the user. +- We use the user permissions for jobs that are triggered by the user. - It opens a lot of possibilities to further enforce user permissions, like allowing only specific users to access runners or use secure variables and environments. -- It is simple and convenient that your build can access everything that you +- It is simple and convenient that your job can access everything that you as a user have access to. -- Short living unique tokens are now used, granting access for time of the build +- Short living unique tokens are now used, granting access for time of the job and maximizing security. -With the new behavior, any build that is triggered by the user, is also marked +With the new behavior, any job that is triggered by the user, is also marked with their permissions. When a user does a `git push` or changes files through the web UI, a new pipeline will be usually created. This pipeline will be marked -as created be the pusher (local push or via the UI) and any build created in this +as created be the pusher (local push or via the UI) and any job created in this pipeline will have the permissions of the pusher. This allows us to make it really easy to evaluate the access for all projects that have [Git submodules][gitsub] or are using container images that the pusher -would have access too. **The permission is granted only for time that build is -running. The access is revoked after the build is finished.** +would have access too. **The permission is granted only for time that job is +running. The access is revoked after the job is finished.** ## Types of users It is important to note that we have a few types of users: -- **Administrators**: CI builds created by Administrators will not have access +- **Administrators**: CI jobs created by Administrators will not have access to all GitLab projects, but only to projects and container images of projects that the administrator is a member of.That means that if a project is either public or internal users have access anyway, but if a project is private, the Administrator will have to be a member of it in order to have access to it - via another project's build. + via another project's job. -- **External users**: CI builds created by [external users][ext] will have +- **External users**: CI jobs created by [external users][ext] will have access only to projects to which user has at least reporter access. This rules out accessing all internal projects by default, @@ -57,46 +57,46 @@ This allows us to make the CI and permission system more trustworthy. Let's consider the following scenario: 1. You are an employee of a company. Your company has a number of internal tools - hosted in private repositories and you have multiple CI builds that make use + hosted in private repositories and you have multiple CI jobs that make use of these repositories. -2. You invite a new [external user][ext]. CI builds created by that user do not +2. You invite a new [external user][ext]. CI jobs created by that user do not have access to internal repositories, because the user also doesn't have the access from within GitLab. You as an employee have to grant explicit access for this user. This allows us to prevent from accidental data leakage. -## Build token +## Job token -A unique build token is generated for each build and it allows the user to +A unique job token is generated for each job and it allows the user to access all projects that would be normally accessible to the user creating that -build. +job. We try to make sure that this token doesn't leak by: -1. Securing all API endpoints to not expose the build token. -1. Masking the build token from build logs. -1. Allowing to use the build token **only** when build is running. +1. Securing all API endpoints to not expose the job token. +1. Masking the job token from job logs. +1. Allowing to use the job token **only** when job is running. However, this brings a question about the Runners security. To make sure that this token doesn't leak, you should also make sure that you configure your Runners in the most possible secure way, by avoiding the following: 1. Any usage of Docker's `privileged` mode is risky if the machines are re-used. -1. Using the `shell` executor since builds run on the same machine. +1. Using the `shell` executor since jobs run on the same machine. By using an insecure GitLab Runner configuration, you allow the rogue developers -to steal the tokens of other builds. +to steal the tokens of other jobs. -## Build triggers +## job triggers -[Build triggers][triggers] do not support the new permission model. -They continue to use the old authentication mechanism where the CI build +[job triggers][triggers] do not support the new permission model. +They continue to use the old authentication mechanism where the CI job can access only its own sources. We plan to remove that limitation in one of the upcoming releases. ## Before GitLab 8.12 -In versions before GitLab 8.12, all CI builds would use the CI Runner's token +In versions before GitLab 8.12, all CI jobs would use the CI Runner's token to checkout project sources. The project's Runner's token was a token that you could find under the @@ -105,7 +105,7 @@ project. It could be used for registering new specific Runners assigned to the project and to checkout project sources. It could also be used with the GitLab Container Registry for that project, -allowing pulling and pushing Docker images from within the CI build. +allowing pulling and pushing Docker images from within the CI job. --- @@ -115,7 +115,7 @@ GitLab would create a special checkout URL like: https://gitlab-ci-token:/gitlab.com/gitlab-org/gitlab-ce.git ``` -And then the users could also use it in their CI builds all Docker related +And then the users could also use it in their CI jobs all Docker related commands to interact with GitLab Container Registry. For example: ``` @@ -125,7 +125,7 @@ docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.gitlab.com Using single token had multiple security implications: - The token would be readable to anyone who had developer access to a project - that could run CI builds, allowing the developer to register any specific + that could run CI jobs, allowing the developer to register any specific Runner for that project. - The token would allow to access only the project's sources, forbidding from accessing any other projects. @@ -133,12 +133,12 @@ Using single token had multiple security implications: for registering specific runners and for accessing a project's container registry with read-write permissions. -All the above led to a new permission model for builds that was introduced +All the above led to a new permission model for jobs that was introduced with GitLab 8.12. -## Making use of the new CI build permissions model +## Making use of the new CI job permissions model -With the new build permissions model, there is now an easy way to access all +With the new job permissions model, there is now an easy way to access all dependent source code in a project. That way, we can: 1. Access a project's [Git submodules][gitsub] @@ -151,9 +151,9 @@ the container registry. ### Prerequisites to use the new permissions model -With the new permissions model in place, there may be times that your build will +With the new permissions model in place, there may be times that your job will fail. This is most likely because your project tries to access other project's -sources, and you don't have the appropriate permissions. In the build log look +sources, and you don't have the appropriate permissions. In the job log look for information about 403 or forbidden access messages. In short here's what you need to do should you encounter any issues. @@ -175,7 +175,7 @@ As a user: - Make sure you are a member of the group or project you're trying to have access to. As an Administrator, you can verify that by impersonating the user - and retry the failing build in order to verify that everything is correct. + and retry the failing job in order to verify that everything is correct. ### Git submodules @@ -199,9 +199,9 @@ Container Registries for private projects. to pass a personal access token instead of your password in order to login to GitLab's Container Registry. -Your builds can access all container images that you would normally have access +Your jobs can access all container images that you would normally have access to. The only implication is that you can push to the Container Registry of the -project for which the build is triggered. +project for which the job is triggered. This is how an example usage can look like: @@ -213,7 +213,7 @@ test: - docker run $CI_REGISTRY/group/other-project:latest ``` -[build permissions]: ../permissions.md#builds-permissions +[job permissions]: ../permissions.md#jobs-permissions [comment]: https://gitlab.com/gitlab-org/gitlab-ce/issues/22484#note_16648302 [ext]: ../permissions.md#external-users [gitsub]: ../../ci/git_submodules.md diff --git a/doc/user/project/pages/index.md b/doc/user/project/pages/index.md index b814e3fccb2..044c89a03c0 100644 --- a/doc/user/project/pages/index.md +++ b/doc/user/project/pages/index.md @@ -100,7 +100,7 @@ whereas a group's project under `http(s)://groupname.example.io/projectname`. The key thing about GitLab Pages is the `.gitlab-ci.yml` file, something that gives you absolute control over the build process. You can actually watch your -website being built live by following the CI build traces. +website being built live by following the CI job traces. > **Note:** > Before reading this section, make sure you familiarize yourself with GitLab CI @@ -127,7 +127,7 @@ pages: ``` When the Runner reaches to build the `pages` job, it executes whatever is -defined in the `script` parameter and if the build completes with a non-zero +defined in the `script` parameter and if the job completes with a non-zero exit status, it then uploads the `public/` directory to GitLab Pages. The `public/` directory should contain all the static content of your website. @@ -211,11 +211,11 @@ pages: # the build job must be named pages ``` Here, we used the Docker executor and in the first line we specified the base -image against which our builds will run. +image against which our jobs will run. You have to make sure that the generated static files are ultimately placed under the `public` directory, that's why in the `script` section we run the -`jekyll` command that builds the website and puts all content in the `public/` +`jekyll` command that jobs the website and puts all content in the `public/` directory. Depending on the static generator of your choice, this command will differ. Search in the documentation of the static generator you will use if there is an option to explicitly set the output directory. If there is not @@ -403,7 +403,7 @@ don't have to create and edit HTML files manually. For example, Jekyll has the ### Can I download my generated pages? -Sure. All you need to do is download the artifacts archive from the build page. +Sure. All you need to do is download the artifacts archive from the job page. ### Can I use GitLab Pages if my project is private? diff --git a/doc/user/project/pipelines/img/job_artifacts_browser.png b/doc/user/project/pipelines/img/job_artifacts_browser.png new file mode 100644 index 0000000000000000000000000000000000000000..145fe156bbb17cfa267d4f02d905e0bd7d5ba8bc GIT binary patch literal 3771 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 HOuqd$dyl*4 literal 0 HcmV?d00001 diff --git a/doc/user/project/pipelines/img/job_artifacts_pipelines_page.png b/doc/user/project/pipelines/img/job_artifacts_pipelines_page.png new file mode 100644 index 0000000000000000000000000000000000000000..3ccce4f9bb46d60013472fd5e4172bd192fba719 GIT binary patch literal 16550 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 j3?)O!P%>jEU10RaJ-oUA06fPe^c-S#6Py8dQB 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 literal 6391 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 YgCE|o#nX-d`OqLyQP7YtlzkWSe@9^Apa1{> diff --git a/doc/user/project/pipelines/job_artifacts.md b/doc/user/project/pipelines/job_artifacts.md new file mode 100644 index 00000000000..f85f4bf8e1e --- /dev/null +++ b/doc/user/project/pipelines/job_artifacts.md @@ -0,0 +1,118 @@ +# Introduction to job artifacts + +>**Notes:** +>- Since GitLab 8.2 and GitLab Runner 0.7.0, job artifacts that are created by + GitLab Runner are uploaded to GitLab and are downloadable as a single archive + (`tar.gz`) using the GitLab UI. +>- Starting with GitLab 8.4 and GitLab Runner 1.0, the artifacts archive format + changed to `ZIP`, and it is now possible to browse its contents, with the added + ability of downloading the files separately. +>- Starting with GitLab 8.17, builds are renamed to jobs. +>- The artifacts browser will be available only for new artifacts that are sent + to GitLab using GitLab Runner version 1.0 and up. It will not be possible to + browse old artifacts already uploaded to GitLab. +>- This is the user documentation. For the administration guide see + [administration/job_artifacts.md](../../../administration/job_artifacts.md). + +Artifacts is a list of files and directories which are attached to a job +after it completes successfully. This feature is enabled by default in all +GitLab installations. + +## Defining artifacts in `.gitlab-ci.yml` + +A simple example of using the artifacts definition in `.gitlab-ci.yml` would be +the following: + +```yaml +pdf: + script: xelatex mycv.tex + artifacts: + paths: + - mycv.pdf +``` + +A job named `pdf` calls the `xelatex` command in order to build a pdf file from +the latex source file `mycv.tex`. We then define the `artifacts` paths which in +turn are defined with the `paths` keyword. All paths to files and directories +are relative to the repository that was cloned during the build. + +For more examples on artifacts, follow the artifacts reference in +[`.gitlab-ci.yml` documentation](../../../ci/yaml/README.md#artifacts). + +## Browsing job artifacts + +After a job finishes, if you visit the job's specific page, you can see +that there are two buttons. One is for downloading the artifacts archive and +the other for browsing its contents. + +![Job artifacts browser button](img/job_artifacts_browser_button.png) + +--- + +The archive browser shows the name and the actual file size of each file in the +archive. If your artifacts contained directories, then you are also able to +browse inside them. + +Below you can see how browsing looks like. In this case we have browsed inside +the archive and at this point there is one directory and one HTML file. + +![Job artifacts browser](img/job_artifacts_browser.png) + +--- + +## Downloading job artifacts + +If you need to download the whole archive, there are buttons in various places +inside GitLab that make that possible. + +1. While on the pipelines page, you can see the download icon for each job's + artifacts archive in the right corner: + + ![Job artifacts in Pipelines page](img/job_artifacts_pipelines_page.png) + +1. While on the **Jobs** page, you can see the download icon for each job's + artifacts archive in the right corner: + + ![Job artifacts in Builds page](img/job_artifacts_builds_page.png) + +1. While inside a specific job, you are presented with a download button + along with the one that browses the archive: + + ![Job artifacts browser button](img/job_artifacts_browser_button.png) + +1. And finally, when browsing an archive you can see the download button at + the top right corner: + + ![Job artifacts browser](img/job_artifacts_browser.png) + +## Downloading the latest job artifacts + +It is possible to download the latest artifacts of a job via a well known URL +so you can use it for scripting purposes. + +The structure of the URL is the following: + +``` +https://example.com///builds/artifacts//download?job= +``` + +For example, to download the latest artifacts of the job named `rspec 6 20` of +the `master` branch of the `gitlab-ce` project that belongs to the `gitlab-org` +namespace, the URL would be: + +``` +https://gitlab.com/gitlab-org/gitlab-ce/builds/artifacts/master/download?job=rspec+6+20 +``` + +The latest builds are also exposed in the UI in various places. Specifically, +look for the download button in: + +- the main project's page +- the branches page +- the tags page + +If the latest job has failed to upload the artifacts, you can see that +information in the UI. + +![Latest artifacts button](img/job_latest_artifacts_browser.png) + diff --git a/doc/user/project/pipelines/settings.md b/doc/user/project/pipelines/settings.md index 6cbcf3c400f..80cdb49a1d3 100644 --- a/doc/user/project/pipelines/settings.md +++ b/doc/user/project/pipelines/settings.md @@ -35,7 +35,7 @@ if the job surpasses the threshold, it is marked as failed. ## Test coverage parsing If you use test coverage in your code, GitLab can capture its output in the -build log using a regular expression. In the pipelines settings, search for the +job log using a regular expression. In the pipelines settings, search for the "Test coverage parsing" section. ![Pipelines settings test coverage](img/pipelines_settings_test_coverage.png) @@ -44,7 +44,7 @@ Leave blank if you want to disable it or enter a ruby regular expression. You can use http://rubular.com to test your regex. If the pipeline succeeds, the coverage is shown in the merge request widget and -in the builds table. +in the jobs table. ![MR widget coverage](img/pipelines_test_coverage_mr_widget.png) @@ -62,9 +62,9 @@ pipelines** checkbox and save the changes. ## Badges -In the pipelines settings page you can find build status and test coverage +In the pipelines settings page you can find job status and test coverage badges for your project. The latest successful pipeline will be used to read -the build status and test coverage values. +the job status and test coverage values. Visit the pipelines settings page in your project to see the exact link to your badges, as well as ways to embed the badge image in your HTML or Markdown @@ -72,9 +72,9 @@ pages. ![Pipelines badges](img/pipelines_settings_badges.png) -### Build status badge +### Job status badge -Depending on the status of your build, a badge can have the following values: +Depending on the status of your job, a badge can have the following values: - running - success @@ -82,7 +82,7 @@ Depending on the status of your build, a badge can have the following values: - skipped - unknown -You can access a build status badge image using the following link: +You can access a job status badge image using the following link: ``` https://example.gitlab.com///badges//build.svg @@ -91,7 +91,7 @@ https://example.gitlab.com///badges//build.svg ### Test coverage report badge GitLab makes it possible to define the regular expression for [coverage report], -that each build log will be matched against. This means that each build in the +that each job log will be matched against. This means that each job in the pipeline can have the test coverage percentage value defined. The test coverage badge can be accessed using following link: diff --git a/doc/user/project/slash_commands.md b/doc/user/project/slash_commands.md index 2fddd7c6503..ad5d51d34f2 100644 --- a/doc/user/project/slash_commands.md +++ b/doc/user/project/slash_commands.md @@ -14,7 +14,7 @@ do. |:---------------------------|:-------------| | `/close` | Close the issue or merge request | | `/reopen` | Reopen the issue or merge request | -| `/merge` | Merge (when build succeeds) | +| `/merge` | Merge (when pipeline succeeds) | | `/title ` | Change title | | `/assign @username` | Assign | | `/unassign` | Remove assignee | diff --git a/doc/workflow/shortcuts.md b/doc/workflow/shortcuts.md index 36516883ef6..2a5e622dc7d 100644 --- a/doc/workflow/shortcuts.md +++ b/doc/workflow/shortcuts.md @@ -45,7 +45,7 @@ You can see GitLab's keyboard shortcuts by using 'shift + ?' | g + e | Go to the project's activity feed | | g + f | Go to files | | g + c | Go to commits | -| g + b | Go to builds | +| g + b | Go to jobs | | g + n | Go to network graph | | g + g | Go to graphs | | g + i | Go to issues | @@ -73,4 +73,4 @@ You can see GitLab's keyboard shortcuts by using 'shift + ?' | m | Change milestone | | r | Reply (quoting selected text) | | e | Edit issue/merge request | -| l | Change label | \ No newline at end of file +| l | Change label | diff --git a/doc/workflow/todos.md b/doc/workflow/todos.md index 1a8fc39bb33..99d7c18f072 100644 --- a/doc/workflow/todos.md +++ b/doc/workflow/todos.md @@ -27,8 +27,8 @@ A Todo appears in your Todos dashboard when: - an issue or merge request is assigned to you, - you are `@mentioned` in an issue or merge request, be it the description of the issue/merge request or in a comment, -- build in the CI pipeline running for your merge request failed, but this - build is not allowed to fail. +- a job in the CI pipeline running for your merge request failed, but this + job is not allowed to fail. >**Note:** Commenting on a commit will _not_ trigger a Todo.