diff options
Diffstat (limited to 'doc/ci')
-rw-r--r-- | doc/ci/ci_cd_for_external_repos/img/github_omniauth_list.png | bin | 9613 -> 0 bytes | |||
-rw-r--r-- | doc/ci/docker/using_docker_build.md | 7 | ||||
-rw-r--r-- | doc/ci/environments.md | 4 | ||||
-rw-r--r-- | doc/ci/examples/deploy_spring_boot_to_cloud_foundry/index.md | 6 | ||||
-rw-r--r-- | doc/ci/examples/laravel_with_gitlab_and_envoy/img/laravel_with_gitlab_and_envoy.png | bin | 177704 -> 0 bytes | |||
-rw-r--r-- | doc/ci/examples/test_phoenix_app_with_gitlab_ci_cd/img/job-succeeded.png | bin | 23148 -> 0 bytes | |||
-rw-r--r-- | doc/ci/merge_request_pipelines/img/pipeline_detail.png | bin | 15556 -> 0 bytes | |||
-rw-r--r-- | doc/ci/merge_request_pipelines/index.md | 15 | ||||
-rw-r--r-- | doc/ci/pipelines.md | 13 | ||||
-rw-r--r-- | doc/ci/runners/shared_to_specific_admin.png | bin | 5715 -> 0 bytes | |||
-rw-r--r-- | doc/ci/services/mysql.md | 25 | ||||
-rw-r--r-- | doc/ci/variables/README.md | 25 | ||||
-rw-r--r-- | doc/ci/variables/img/new_custom_variables_example.png | bin | 70758 -> 216497 bytes | |||
-rw-r--r-- | doc/ci/variables/img/variable_types_usage_example.png | bin | 0 -> 67003 bytes | |||
-rw-r--r-- | doc/ci/yaml/README.md | 4 |
15 files changed, 73 insertions, 26 deletions
diff --git a/doc/ci/ci_cd_for_external_repos/img/github_omniauth_list.png b/doc/ci/ci_cd_for_external_repos/img/github_omniauth_list.png Binary files differdeleted file mode 100644 index 3f2059504f5..00000000000 --- a/doc/ci/ci_cd_for_external_repos/img/github_omniauth_list.png +++ /dev/null diff --git a/doc/ci/docker/using_docker_build.md b/doc/ci/docker/using_docker_build.md index 5222cc45bc4..dd112dadc40 100644 --- a/doc/ci/docker/using_docker_build.md +++ b/doc/ci/docker/using_docker_build.md @@ -142,9 +142,12 @@ In order to do that, follow the steps: # The 'docker' hostname is the alias of the service container as described at # https://docs.gitlab.com/ee/ci/docker/using_docker_images.html#accessing-the-services # - # Note that if you're using Kubernetes executor, the variable should be set to - # tcp://localhost:2375 because of how Kubernetes executor connects services + # Note that if you're using the Kubernetes executor, the variable should be set to + # tcp://localhost:2375/ because of how the Kubernetes executor connects services # to the job container + # DOCKER_HOST: tcp://localhost:2375/ + # + # For non-Kubernetes executors, we use tcp://docker:2375/ DOCKER_HOST: tcp://docker:2375/ # When using dind, it's wise to use the overlayfs driver for # improved performance. diff --git a/doc/ci/environments.md b/doc/ci/environments.md index d5e6fbe8113..5a14ac17aec 100644 --- a/doc/ci/environments.md +++ b/doc/ci/environments.md @@ -268,7 +268,7 @@ For the value of: which receives the value of the branch name. - `environment:url`, we want a specific and distinct URL for each branch. `$CI_COMMIT_REF_NAME` may contain a `/` or other characters that would be invalid in a domain name or URL, - so we use `$CI_ENVIRONMENT_SLUG` to get a "clean" or "safe" URL. + so we use `$CI_ENVIRONMENT_SLUG` to guarantee that we get a valid URL. For example, given a `$CI_COMMIT_REF_NAME` of `100-Do-The-Thing`, the URL will be something like `https://100-do-the-4f99a2.example.com`. Again, the way you set up @@ -351,7 +351,7 @@ deploy_prod: ``` A more realistic example would also include copying files to a location where a -webserver (for example, NGINX) could then acess and serve them. +webserver (for example, NGINX) could then access and serve them. The example below will copy the `public` directory to `/srv/nginx/$CI_COMMIT_REF_SLUG/public`: diff --git a/doc/ci/examples/deploy_spring_boot_to_cloud_foundry/index.md b/doc/ci/examples/deploy_spring_boot_to_cloud_foundry/index.md index cf281605f5e..c622dd86828 100644 --- a/doc/ci/examples/deploy_spring_boot_to_cloud_foundry/index.md +++ b/doc/ci/examples/deploy_spring_boot_to_cloud_foundry/index.md @@ -4,6 +4,7 @@ author_gitlab: DylanGriffith level: intermediate article_type: tutorial date: 2018-06-07 +last_updated: 2019-04-08 description: "Continuous Deployment of a Spring Boot application to Cloud Foundry with GitLab CI/CD" --- @@ -77,7 +78,10 @@ image: java:8 stages: - build - deploy - + +before_script: + - chmod +x mvnw + build: stage: build script: ./mvnw package diff --git a/doc/ci/examples/laravel_with_gitlab_and_envoy/img/laravel_with_gitlab_and_envoy.png b/doc/ci/examples/laravel_with_gitlab_and_envoy/img/laravel_with_gitlab_and_envoy.png Binary files differdeleted file mode 100644 index bc188f83fb1..00000000000 --- a/doc/ci/examples/laravel_with_gitlab_and_envoy/img/laravel_with_gitlab_and_envoy.png +++ /dev/null diff --git a/doc/ci/examples/test_phoenix_app_with_gitlab_ci_cd/img/job-succeeded.png b/doc/ci/examples/test_phoenix_app_with_gitlab_ci_cd/img/job-succeeded.png Binary files differdeleted file mode 100644 index 77b05f55f88..00000000000 --- a/doc/ci/examples/test_phoenix_app_with_gitlab_ci_cd/img/job-succeeded.png +++ /dev/null diff --git a/doc/ci/merge_request_pipelines/img/pipeline_detail.png b/doc/ci/merge_request_pipelines/img/pipeline_detail.png Binary files differdeleted file mode 100644 index 90e7c449a66..00000000000 --- a/doc/ci/merge_request_pipelines/img/pipeline_detail.png +++ /dev/null diff --git a/doc/ci/merge_request_pipelines/index.md b/doc/ci/merge_request_pipelines/index.md index 3c26a38e3de..b3ff55daea2 100644 --- a/doc/ci/merge_request_pipelines/index.md +++ b/doc/ci/merge_request_pipelines/index.md @@ -70,15 +70,18 @@ when a merge request was created or updated. For example: ## Pipelines for Merged Results **[PREMIUM]** > [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/7380) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.10. +> This feature is disabled by default until we resolve issues with [contention handling](https://gitlab.com/gitlab-org/gitlab-ee/issues/9186), but [can be enabled manually](#enabling-pipelines-for-merged-results). It's possible for your source and target branches to diverge, which can result in the scenario that source branch's pipeline was green, the target's pipeline was green, -but the combined output fails. By having your merge request pipeline automatically +but the combined output fails. + +By having your merge request pipeline automatically create a new ref that contains the merge result of the source and target branch (then running a pipeline on that ref), we can better test that the combined result is also valid. -From GitLab 11.10, pipelines for merge requests run by default +GitLab can run pipelines for merge requests on this merged result. That is, where the source and target branches are combined into a new ref and a pipeline for this ref validates the result prior to merging. @@ -95,7 +98,7 @@ get out of WIP status or resolve merge conflicts as soon as possible. ### Enabling Pipelines for Merged Results -This feature disabled by default until we resolve issues with [contention handling](https://gitlab.com/gitlab-org/gitlab-ee/issues/9186). It can be enabled at the project level: +To enable pipelines on merged results at the project level: 1. Visit your project's **Settings > General** and expand **Merge requests**. 1. Check **Merge pipelines will try to validate the post-merge result prior to merging**. @@ -103,6 +106,10 @@ This feature disabled by default until we resolve issues with [contention handli ![Merge request pipeline config](img/merge_request_pipeline_config.png) +CAUTION: **Warning:** +Make sure your `gitlab-ci.yml` file is [configured properly for pipelines for merge requests](#configuring-pipelines-for-merge-requests), +otherwise pipelines for merged results won't run and your merge requests will be stuck in an unresolved state. + ### Pipelines for Merged Result's limitations - This feature requires [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner) 11.9 or newer. @@ -193,5 +200,5 @@ By using pipelines for merge requests, GitLab exposes additional predefined vari Those variables contain information of the associated merge request, so that it's useful to integrate your job with [GitLab Merge Request API](../../api/merge_requests.md). -You can find the list of avilable variables in [the reference sheet](../variables/predefined_variables.md). +You can find the list of available variables in [the reference sheet](../variables/predefined_variables.md). The variable names begin with the `CI_MERGE_REQUEST_` prefix. diff --git a/doc/ci/pipelines.md b/doc/ci/pipelines.md index 342c2ab972a..4dbe1a85588 100644 --- a/doc/ci/pipelines.md +++ b/doc/ci/pipelines.md @@ -330,6 +330,19 @@ GitLab provides API endpoints to: - [Triggering pipelines through the API](triggers/README.md). - [Pipeline triggers API](../api/pipeline_triggers.md). +### Start multiple manual actions in a stage + +> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/27188) in GitLab 11.11. + +Multiple manual actions in a single stage can be started at the same time using the "Play all manual" button. +Once the user clicks this button, each individual manual action will be triggered and refreshed +to an updated status. + +This functionality is only available: + +- For users with at least Developer access. +- If the the stage contains [manual actions](#manual-actions-from-pipeline-graphs). + ## Security on protected branches A strict security model is enforced when pipelines are executed on diff --git a/doc/ci/runners/shared_to_specific_admin.png b/doc/ci/runners/shared_to_specific_admin.png Binary files differdeleted file mode 100644 index 8f4010a5849..00000000000 --- a/doc/ci/runners/shared_to_specific_admin.png +++ /dev/null diff --git a/doc/ci/services/mysql.md b/doc/ci/services/mysql.md index 0de6a93514a..5fa378fc4c2 100644 --- a/doc/ci/services/mysql.md +++ b/doc/ci/services/mysql.md @@ -18,7 +18,7 @@ services: variables: # Configure mysql environment variables (https://hub.docker.com/_/mysql/) MYSQL_DATABASE: "<your_mysql_database>" - MYSQL_ROOT_PASSWORD: "mysql_strong_password" + MYSQL_ROOT_PASSWORD: "<your_mysql_password>" ``` And then configure your application to use the database, for example: @@ -26,18 +26,18 @@ And then configure your application to use the database, for example: ```yaml Host: mysql User: root -Password: mysql_strong_password -Database: el_duderino +Password: <your_mysql_password> +Database: <your_mysql_database> ``` If you are wondering why we used `mysql` for the `Host`, read more at [How services are linked to the job](../docker/using_docker_images.md#how-services-are-linked-to-the-job). -You can also use any other docker image available on [Docker Hub][hub-mysql]. +You can also use any other docker image available on [Docker Hub](https://hub.docker.com/_/mysql/). For example, to use MySQL 5.5 the service becomes `mysql:5.5`. The `mysql` image can accept some environment variables. For more details -check the documentation on [Docker Hub][hub-mysql]. +check the documentation on [Docker Hub](https://hub.docker.com/_/mysql/). ## Use MySQL with the Shell executor @@ -74,13 +74,13 @@ mysql> CREATE USER 'runner'@'localhost' IDENTIFIED BY '$password'; Create the database: ```bash -mysql> CREATE DATABASE IF NOT EXISTS `el_duderino` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`; +mysql> CREATE DATABASE IF NOT EXISTS `<your_mysql_database>` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`; ``` Grant the necessary permissions on the database: ```bash -mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, CREATE TEMPORARY TABLES, DROP, INDEX, ALTER, LOCK TABLES ON `el_duderino`.* TO 'runner'@'localhost'; +mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, CREATE TEMPORARY TABLES, DROP, INDEX, ALTER, LOCK TABLES ON `<your_mysql_database>`.* TO 'runner'@'localhost'; ``` If all went well you can now quit the database session: @@ -93,7 +93,7 @@ Now, try to connect to the newly created database to check that everything is in place: ```bash -mysql -u runner -p -D el_duderino +mysql -u runner -p -D <your_mysql_database> ``` As a final step, configure your application to use the database, for example: @@ -102,17 +102,14 @@ As a final step, configure your application to use the database, for example: Host: localhost User: runner Password: $password -Database: el_duderino +Database: <your_mysql_database> ``` ## Example project -We have set up an [Example MySQL Project][mysql-example-repo] for your +We have set up an [Example MySQL Project](https://gitlab.com/gitlab-examples/mysql) for your 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 +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 job will begin. - -[hub-mysql]: https://hub.docker.com/_/mysql/ -[mysql-example-repo]: https://gitlab.com/gitlab-examples/mysql diff --git a/doc/ci/variables/README.md b/doc/ci/variables/README.md index 1ba22070abe..67e1d316f02 100644 --- a/doc/ci/variables/README.md +++ b/doc/ci/variables/README.md @@ -58,8 +58,29 @@ the need to specify the value itself. There are two types of variables supported by GitLab: -- `env_var`: the runner will create environment variable named same as the variable key and set its value to the variable value. -- `file`: the runner will write the variable value to a temporary file and set the path to this file as the value of an environment variable named same as the variable key. +- "Variable": the Runner will create an environment variable named same as the variable key and set its value to the variable value. +- "File": the Runner will write the variable value to a temporary file and set the path to this file as the value of an environment variable named same as the variable key. + +Many tools (like [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html) and [kubectl](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#the-kubeconfig-environment-variable)) provide the ability to customise configuration using files by either providing the file path as a command line argument or an environment variable. Prior to the introduction of variable types, the common pattern was to use the value of a CI variable, save it in a file, and then use the newly created file in your script: + +```bash +# Save the content of variable in a file +echo "$KUBE_CA_PEM" > "$(pwd)/kube.ca.pem" + # Use the newly created file +kubectl config set-cluster e2e --server="$KUBE_URL" --certificate-authority="$(pwd)/kube.ca.pem" +``` + +This can be simplified by creating a variable of type "File" and using it directly. For example, let's say we have the following variables. + +![CI/CD settings - variable types usage example](img/variable_types_usage_example.png) + +We can then call them from `.gitlab-ci.yml` like this: + +```bash +kubectl config set-cluster e2e --server="$KUBE_URL" --certificate-authority="$KUBE_CA_PEM" +``` + +Variable types can be set via the [UI](#via-the-ui) or the [API](../../api/project_level_variables.md#create-variable), but not in `.gitlab-ci.yml`. #### Masked variables diff --git a/doc/ci/variables/img/new_custom_variables_example.png b/doc/ci/variables/img/new_custom_variables_example.png Binary files differindex 4b78e0ff587..efe104efe4c 100644 --- a/doc/ci/variables/img/new_custom_variables_example.png +++ b/doc/ci/variables/img/new_custom_variables_example.png diff --git a/doc/ci/variables/img/variable_types_usage_example.png b/doc/ci/variables/img/variable_types_usage_example.png Binary files differnew file mode 100644 index 00000000000..0e8bde891fe --- /dev/null +++ b/doc/ci/variables/img/variable_types_usage_example.png diff --git a/doc/ci/yaml/README.md b/doc/ci/yaml/README.md index 36b88ff12c2..8667eacd3d5 100644 --- a/doc/ci/yaml/README.md +++ b/doc/ci/yaml/README.md @@ -1510,6 +1510,8 @@ be automatically shown in merge requests. ##### `artifacts:reports:metrics` **[PREMIUM]** +> Introduced in GitLab 11.10. + The `metrics` report collects [Metrics](../../ci/metrics_reports.md) as artifacts. @@ -1984,7 +1986,7 @@ production: - deploy environment: name: production - url: https://$CI_PROJECT_PATH_SLUG.$AUTO_DEVOPS_DOMAIN + url: https://$CI_PROJECT_PATH_SLUG.$KUBE_INGRESS_BASE_DOMAIN only: - master ``` |