diff --git a/app/views/admin/application_settings/_pages.html.haml b/app/views/admin/application_settings/_pages.html.haml index 323e1e700770044f55c46ea6fd02a00456373e77..2eab3c922cfdadf591a5d6ba9156cfd11cc461bf 100644 --- a/app/views/admin/application_settings/_pages.html.haml +++ b/app/views/admin/application_settings/_pages.html.haml @@ -31,7 +31,7 @@ = f.label :pages_extra_deployments_default_expiry_seconds, s_('AdminSettings|Default expiration time for parallel deployments (in seconds)'), class: 'label-bold' = f.number_field :pages_extra_deployments_default_expiry_seconds, class: 'form-control gl-form-input' .form-text.gl-text-subtle - - link = link_to('', help_page_path('user/project/pages/_index.md', anchor: 'parallel-deployments'), target: '_blank', rel: 'noopener noreferrer') + - link = link_to('', help_page_path('user/project/pages/parallel_deployments.md'), target: '_blank', rel: 'noopener noreferrer') = safe_format(s_('AdminSettings|Set the default time after which parallel deployments expire (0 for unlimited). %{link_start}What are parallel deployments%{link_end}?'), tag_pair(link, :link_start, :link_end)) %h5 = s_("AdminSettings|Configure Let's Encrypt") diff --git a/doc/user/gitlab_com/_index.md b/doc/user/gitlab_com/_index.md index 3d51714a495ff6ae59270f0b8065f7eedf9729fc..b57084fd6254e84e3f40c69cef670612b1e0e3b4 100644 --- a/doc/user/gitlab_com/_index.md +++ b/doc/user/gitlab_com/_index.md @@ -341,12 +341,12 @@ The limit varies depending on your plan and the number of seats in your subscrip ### Other limits -| Setting | Default for GitLab.com | -|:---------------------------------------------------------------|:-----------------------| -| Number of webhooks | 100 for each project, 50 for each group (subgroup webhooks are not counted towards parent group limits ) | -| Maximum payload size | 25 MB | -| Timeout | 10 seconds | -| [Multiple Pages deployments](../project/pages/_index.md#limits) | 100 extra deployments (Premium tier), 500 extra deployments (Ultimate tier) | +| Setting | Default for GitLab.com | +|:--------------------------------------------------------------------|:-----------------------| +| Number of webhooks | 100 for each project, 50 for each group (subgroup webhooks are not counted towards parent group limits ) | +| Maximum payload size | 25 MB | +| Timeout | 10 seconds | +| [Parallel Pages deployments](../project/pages/parallel_deployments.md#limits) | 100 extra deployments (Premium tier), 500 extra deployments (Ultimate tier) | For self-managed instance limits, see: diff --git a/doc/user/project/pages/_index.md b/doc/user/project/pages/_index.md index 3ef4053f5276780c5c4746e27f223b6789fbb70b..44d89067be92b96adea1230b47acbaff6aee5439 100644 --- a/doc/user/project/pages/_index.md +++ b/doc/user/project/pages/_index.md @@ -205,13 +205,6 @@ Prerequisites: ## Expiring deployments -{{< details >}} - -- Tier: Premium, Ultimate -- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated - -{{< /details >}} - {{< history >}} - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/162826) in GitLab 17.4. @@ -233,10 +226,6 @@ deploy-pages: - public ``` -By default, [parallel deployments](#parallel-deployments) expire -automatically after 24 hours. -To disable this behavior, set `pages.expire_in` to `never`. - Expired deployments are stopped by a cron job that runs every 10 minutes. Stopped deployments are subsequently deleted by another cron job that also runs every 10 minutes. To recover it, follow the steps described in @@ -263,169 +252,6 @@ To recover a stopped deployment that has not yet been deleted: list. 1. Expand the deployment you want to recover and select **Restore**. -## Parallel deployments - -{{< details >}} - -- Tier: Premium, Ultimate - -{{< /details >}} - -{{< history >}} - -- [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/129534) in GitLab 16.7 as an [experiment](../../../policy/development_stages_support.md) [with a flag](../../feature_flags.md) named `pages_multiple_versions_setting`. Disabled by default. -- [Renamed](https://gitlab.com/gitlab-org/gitlab/-/issues/480195) from "multiple deployments" to "parallel deployments" in GitLab 17.4. -- [Enabled on GitLab.com, GitLab Self-Managed, and GitLab Dedicated](https://gitlab.com/gitlab-org/gitlab/-/issues/422145) in GitLab 17.4. -- [Changed](https://gitlab.com/gitlab-org/gitlab/-/issues/502219) to remove the project setting in GitLab 17.7. -- [Changed](https://gitlab.com/gitlab-org/gitlab/-/issues/507423) to allow periods in `path_prefix` in GitLab 17.8. -- [Changed](https://gitlab.com/gitlab-org/gitlab/-/issues/500000) to allow variables when passed to `publish` property in GitLab 17.9. -- [Generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/487161) in GitLab 17.9. Feature flag `pages_multiple_versions_setting` removed. - -{{< /history >}} - -Use the [`pages.path_prefix`](../../../ci/yaml/_index.md#pagespagespath_prefix) CI/CD option to configure a prefix for the GitLab Pages URL. -A prefix allows you to differentiate between multiple GitLab Pages deployments: - -- Main deployment: a Pages deployment created with a blank `path_prefix`. -- Parallel deployment: a Pages deployment created with a non-blank `path_prefix` - -The value of `pages.path_prefix` is: - -- Converted to lowercase. -- Shortened to 63 bytes. -- Any character except numbers (`0-9`), letters (`a-z`) and periods (`.`) is replaced with a hyphen (`-`). -- Leading and trailing hyphens (`-`) and period (`.`) are removed. - -### Example configuration - -Consider a project such as `https://gitlab.example.com/namespace/project`. By default, its main Pages deployment can be accessed through: - -- When using a [unique domain](#unique-domains): `https://project-123456.gitlab.io/`. -- When not using a unique domain: `https://namespace.gitlab.io/project`. - -If a `pages.path_prefix` is configured to the project branch names, -like `path_prefix = $CI_COMMIT_BRANCH`, and there's a -branch named `username/testing_feature`, this parallel Pages deployment would be accessible through: - -- When using a [unique domain](#unique-domains): `https://project-123456.gitlab.io/username-testing-feature`. -- When not using a unique domain: `https://namespace.gitlab.io/project/username-testing-feature`. - -### Limits - -The number of parallel deployments is limited by the root-level namespace. For -specific limits for: - -- GitLab.com, see [Other limits](../../gitlab_com/_index.md#other-limits). -- GitLab Self-Managed, see - [Number of parallel Pages deployments](../../../administration/instance_limits.md#number-of-parallel-pages-deployments). - -To immediately reduce the number of active deployments in your namespace, -delete some deployments. For more information, see -[Delete a deployment](#delete-a-deployment). - -To configure an expiry time to automatically -delete older deployments, see -[Expiring deployments](#expiring-deployments). - -### Expiration - -By default, parallel deployments expire after 24 hours, after which they are -deleted. If you're using a self-hosted instance, your instance admin can -[configure a different default duration](../../../administration/pages/_index.md#configure-the-default-expiry-for-parallel-deployments). - -To customize the expiry time, [configure `pages.expire_in`](#expiring-deployments). - -To prevent deployments from automatically expiring, set `pages.expire_in` to -`never`. - -### Path clash - -`pages.path_prefix` can take dynamic values from [CI/CD variables](../../../ci/variables/_index.md) -that can create pages deployments which could clash with existing paths in your site. -For example, given an existing GitLab Pages site with the following paths: - -```plaintext -/index.html -/documents/index.html -``` - -If a `pages.path_prefix` is `documents`, that version will override the existing path. -In other words, `https://namespace.gitlab.io/project/documents/index.html` will point to the -`/index.html` on the `documents` deployment of the site, instead of `documents/index.html` of the -`main` deployment of the site. - -Mixing [CI/CD variables](../../../ci/variables/_index.md) with other strings can reduce the path clash -possibility. For example: - -```yaml -deploy-pages: - stage: deploy - script: - - echo "Pages accessible through ${CI_PAGES_URL}" - variables: - PAGES_PREFIX: "" # No prefix by default (main) - pages: # specifies that this is a Pages job - path_prefix: "$PAGES_PREFIX" - artifacts: - paths: - - public - rules: - - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Run on default branch (with default PAGES_PREFIX) - - if: $CI_COMMIT_BRANCH == "staging" # Run on main (with default PAGES_PREFIX) - variables: - PAGES_PREFIX: '_stg' # Prefix with _stg for the staging branch - - if: $CI_PIPELINE_SOURCE == "merge_request_event" # Conditionally change the prefix for Merge Requests - when: manual # Run pages manually on Merge Requests - variables: - PAGES_PREFIX: 'mr-$CI_MERGE_REQUEST_IID' # Prefix with the mr-<iid>, like `mr-123` -``` - -Some other examples of mixing [variables](../../../ci/variables/_index.md) with strings for dynamic prefixes: - -- `pages.path_prefix: 'mr-$CI_COMMIT_REF_SLUG'`: Branch or tag name prefixed with `mr-`, like `mr-branch-name`. -- `pages.path_prefix: '_${CI_MERGE_REQUEST_IID}_'`: Merge request number - prefixed ans suffixed with `_`, like `_123_`. - -The previous YAML example uses [user-defined job names](#user-defined-job-names). - -### Use parallel deployments to create Pages environments - -You can use parallel GitLab Pages deployments to create a new [environment](../../../ci/environments/_index.md). -For example: - -```yaml -deploy-pages: - stage: deploy - script: - - echo "Pages accessible through ${CI_PAGES_URL}" - variables: - PAGES_PREFIX: "" # no prefix by default (master) - pages: # specifies that this is a Pages job - path_prefix: "$PAGES_PREFIX" - environment: - name: "Pages ${PAGES_PREFIX}" - url: $CI_PAGES_URL - artifacts: - paths: - - public - rules: - - if: $CI_COMMIT_BRANCH == "staging" # ensure to run on master (with default PAGES_PREFIX) - variables: - PAGES_PREFIX: '_stg' # prefix with _stg for the staging branch - - if: $CI_PIPELINE_SOURCE == "merge_request_event" # conditionally change the prefix on Merge Requests - when: manual # run pages manually on Merge Requests - variables: - PAGES_PREFIX: 'mr-$CI_MERGE_REQUEST_IID' # prefix with the mr-<iid>, like `mr-123` -``` - -With this configuration, users will have the access to each GitLab Pages deployment through the UI. -When using [environments](../../../ci/environments/_index.md) for pages, all pages environments are -listed on the project environment list. - -You can also [group similar environments](../../../ci/environments/_index.md#group-similar-environments) together. - -The previous YAML example uses [user-defined job names](#user-defined-job-names). - ### Delete a Deployment To delete a deployment: @@ -442,11 +268,6 @@ Stopped deployments are deleted by a cron job running every 10 minutes. To restore a stopped deployment that has not been deleted yet, see [Recover a stopped deployment](#recover-a-stopped-deployment). -#### Auto-clean - -Parallel Pages deployments, created by a merge request with a `path_prefix`, are automatically deleted when the -merge request is closed or merged. - ## User-defined job names {{< history >}} @@ -493,3 +314,8 @@ deployment is triggered: pages: pages: false ``` + +## Parallel deployments + +To create multiple deployments for your project at the same time, for example to +create review apps, view the documentation on [Parallel Deployments](parallel_deployments.md). diff --git a/doc/user/project/pages/parallel_deployments.md b/doc/user/project/pages/parallel_deployments.md new file mode 100644 index 0000000000000000000000000000000000000000..f58699a1f17323a954c1ec522aca649af4e25559 --- /dev/null +++ b/doc/user/project/pages/parallel_deployments.md @@ -0,0 +1,240 @@ +--- +stage: Plan +group: Knowledge +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments +title: GitLab Pages parallel deployments +--- + +{{< details >}} + +- Tier: Premium, Ultimate +- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated + +{{< /details >}} + +{{< history >}} + +- [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/129534) in GitLab 16.7 as an [experiment](../../../policy/development_stages_support.md) [with a flag](../../feature_flags.md) named `pages_multiple_versions_setting`. Disabled by default. +- [Renamed](https://gitlab.com/gitlab-org/gitlab/-/issues/480195) from "multiple deployments" to "parallel deployments" in GitLab 17.4. +- [Enabled on GitLab.com, GitLab Self-Managed, and GitLab Dedicated](https://gitlab.com/gitlab-org/gitlab/-/issues/422145) in GitLab 17.4. +- [Changed](https://gitlab.com/gitlab-org/gitlab/-/issues/502219) to remove the project setting in GitLab 17.7. +- [Changed](https://gitlab.com/gitlab-org/gitlab/-/issues/507423) to allow periods in `path_prefix` in GitLab 17.8. +- [Changed](https://gitlab.com/gitlab-org/gitlab/-/issues/500000) to allow variables when passed to `publish` property in GitLab 17.9. +- [Generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/487161) in GitLab 17.9. Feature flag `pages_multiple_versions_setting` removed. + +{{< /history >}} + +With parallel deployments, you can publish multiple versions of your [GitLab Pages](_index.md) +site at the same time. Each version has its own unique URL based on a path prefix you specify. + +Use parallel deployments to: + +- Enhance your workflow for testing changes in development branches before merging + to production. +- Share working previews with stakeholders for feedback. +- Maintain documentation for multiple software versions simultaneously. +- Publish localized content for different audiences. +- Create staging environments for review before final publication. + +Each version of your site gets its own URL based on a path prefix that you specify. +Control how long these parallel deployments exist. +They expire after 24 hours by default, but you can customize this duration to fit your review timeline. + +### Create a parallel deployment + +Prerequisites: + +- The root-level namespace must have available [parallel deployment slots](../../gitlab_com/_index.md#other-limits). + +To create a parallel deployment: + +1. In your `.gitlab-ci.yml` file, add a Pages job with a `path_prefix`: + + ```yaml + pages: + stage: deploy + script: + - echo "Pages accessible through ${CI_PAGES_URL}/${CI_COMMIT_BRANCH}" + pages: + path_prefix: "$CI_COMMIT_BRANCH" + artifacts: + paths: + - public + ``` + + The `path_prefix` value: + + - Is converted to lowercase. + - Can contain numbers (`0-9`), letters (`a-z`), and periods (`.`). + - Is replaced with hyphens (`-`) for any other characters. + - Cannot start or end with hyphens (`-`) or periods (`.`), so they are removed. + - Must be 63 bytes or shorter. Anything longer is trimmed. + +1. Optional. If you want dynamic prefixes, use + [CI/CD variables](../../../ci/variables/where_variables_can_be_used.md#gitlab-ciyml-file) in your `path_prefix`. + For example: + + ```yaml + pages: + path_prefix: "mr-$CI_MERGE_REQUEST_IID" # Results in paths like mr-123 + ``` + +1. Optional. To set an expiry time for the deployment, add `expire_in`: + + ```yaml + pages: + pages: + path_prefix: "$CI_COMMIT_BRANCH" + expire_in: 1 week + ``` + + By default, parallel deployments [expire](#expiration) after 24 hours. + +1. Commit your changes and push to your repository. + +The deployment is accessible at: + +- With a [unique domain](_index.md#unique-domains): `https://project-123456.gitlab.io/your-prefix-name`. +- Without a unique domain: `https://namespace.gitlab.io/project/your-prefix-name`. + +The URL path between the site domain and public directory is determined by the `path_prefix`. +For example, if your main deployment has content at `/index.html`, a parallel deployment with prefix +`staging` can access that same content at `/staging/index.html`. + +To prevent path clashes, avoid using path prefixes that match the names of existing folders in your site. +For more information, see [Path clash](#path-clash). + +### Example configuration + +Consider a project such as `https://gitlab.example.com/namespace/project`. By default, its main Pages deployment can be accessed through: + +- When using a [unique domain](_index.md#unique-domains): `https://project-123456.gitlab.io/`. +- When not using a unique domain: `https://namespace.gitlab.io/project`. + +If a `pages.path_prefix` is configured to the project branch names, +like `path_prefix = $CI_COMMIT_BRANCH`, and there's a +branch named `username/testing_feature`, this parallel Pages deployment would be accessible through: + +- When using a [unique domain](_index.md#unique-domains): `https://project-123456.gitlab.io/username-testing-feature`. +- When not using a unique domain: `https://namespace.gitlab.io/project/username-testing-feature`. + +### Limits + +The number of parallel deployments is limited by the root-level namespace. For +specific limits for: + +- GitLab.com, see [Other limits](../../gitlab_com/_index.md#other-limits). +- GitLab Self-Managed, see + [Number of parallel Pages deployments](../../../administration/instance_limits.md#number-of-parallel-pages-deployments). + +To immediately reduce the number of active deployments in your namespace, +delete some deployments. For more information, see +[Delete a deployment](_index.md#delete-a-deployment). + +To configure an expiry time to automatically +delete older deployments, see +[Expiring deployments](_index.md#expiring-deployments). + +### Expiration + +By default, parallel deployments [expire](_index.md#expiring-deployments) after 24 hours, +after which they are deleted. If you're using a self-hosted instance, your instance admin can +[configure a different default duration](../../../administration/pages/_index.md#configure-the-default-expiry-for-parallel-deployments). + +To customize the expiry time, [configure `pages.expire_in`](_index.md#expiring-deployments). + +To prevent deployments from automatically expiring, set `pages.expire_in` to +`never`. + +### Path clash + +`pages.path_prefix` can take dynamic values from [CI/CD variables](../../../ci/variables/_index.md) +that can create pages deployments which could clash with existing paths in your site. +For example, given an existing GitLab Pages site with the following paths: + +```plaintext +/index.html +/documents/index.html +``` + +If a `pages.path_prefix` is `documents`, that version overrides the existing path. +In other words, `https://namespace.gitlab.io/project/documents/index.html` points to the +`/index.html` on the `documents` deployment of the site, instead of `documents/index.html` of the +`main` deployment of the site. + +Mixing [CI/CD variables](../../../ci/variables/_index.md) with other strings can reduce the path clash +possibility. For example: + +```yaml +deploy-pages: + stage: deploy + script: + - echo "Pages accessible through ${CI_PAGES_URL}" + variables: + PAGES_PREFIX: "" # No prefix by default (main) + pages: # specifies that this is a Pages job + path_prefix: "$PAGES_PREFIX" + artifacts: + paths: + - public + rules: + - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Run on default branch (with default PAGES_PREFIX) + - if: $CI_COMMIT_BRANCH == "staging" # Run on main (with default PAGES_PREFIX) + variables: + PAGES_PREFIX: '_stg' # Prefix with _stg for the staging branch + - if: $CI_PIPELINE_SOURCE == "merge_request_event" # Conditionally change the prefix for Merge Requests + when: manual # Run pages manually on Merge Requests + variables: + PAGES_PREFIX: 'mr-$CI_MERGE_REQUEST_IID' # Prefix with the mr-<iid>, like `mr-123` +``` + +Some other examples of mixing [variables](../../../ci/variables/_index.md) with strings for dynamic prefixes: + +- `pages.path_prefix: 'mr-$CI_COMMIT_REF_SLUG'`: Branch or tag name prefixed with `mr-`, like `mr-branch-name`. +- `pages.path_prefix: '_${CI_MERGE_REQUEST_IID}_'`: Merge request number + prefixed ans suffixed with `_`, like `_123_`. + +The previous YAML example uses [user-defined job names](_index.md#user-defined-job-names). + +### Use parallel deployments to create Pages environments + +You can use parallel GitLab Pages deployments to create a new [environment](../../../ci/environments/_index.md). +For example: + +```yaml +deploy-pages: + stage: deploy + script: + - echo "Pages accessible through ${CI_PAGES_URL}" + variables: + PAGES_PREFIX: "" # no prefix by default (master) + pages: # specifies that this is a Pages job + path_prefix: "$PAGES_PREFIX" + environment: + name: "Pages ${PAGES_PREFIX}" + url: $CI_PAGES_URL + artifacts: + paths: + - public + rules: + - if: $CI_COMMIT_BRANCH == "staging" # ensure to run on master (with default PAGES_PREFIX) + variables: + PAGES_PREFIX: '_stg' # prefix with _stg for the staging branch + - if: $CI_PIPELINE_SOURCE == "merge_request_event" # conditionally change the prefix on Merge Requests + when: manual # run pages manually on Merge Requests + variables: + PAGES_PREFIX: 'mr-$CI_MERGE_REQUEST_IID' # prefix with the mr-<iid>, like `mr-123` +``` + +With this configuration, users will have the access to each GitLab Pages deployment through the UI. +When using [environments](../../../ci/environments/_index.md) for pages, all pages environments are +listed on the project environment list. + +You can also [group similar environments](../../../ci/environments/_index.md#group-similar-environments) together. + +The previous YAML example uses [user-defined job names](_index.md#user-defined-job-names). + +#### Auto-clean + +Parallel Pages deployments, created by a merge request with a `path_prefix`, are automatically deleted when the +merge request is closed or merged. diff --git a/ee/app/assets/javascripts/usage_quotas/pages/components/stats.vue b/ee/app/assets/javascripts/usage_quotas/pages/components/stats.vue index 794beae76d2ed41aa3c143a34a014bf313b4cc3a..a24c20f5fac4e482b9220fc2a9cac7625fbb7c88 100644 --- a/ee/app/assets/javascripts/usage_quotas/pages/components/stats.vue +++ b/ee/app/assets/javascripts/usage_quotas/pages/components/stats.vue @@ -23,7 +23,7 @@ export default { 'domain', ], static: { - helpLink: `${DOCS_URL_IN_EE_DIR}/user/project/pages/#limits`, + helpLink: `${DOCS_URL_IN_EE_DIR}/user/project/pages/parallel_deployments#limits`, }, i18n: { description: s__('PagesUsageQuota|Active parallel deployments'), diff --git a/ee/lib/ee/gitlab/pages/deployment_validations.rb b/ee/lib/ee/gitlab/pages/deployment_validations.rb index 6d0b2491a603e06fbf5fc4523e7c412e30e58d20..d9b97649128bcd2c8b5f6a2c934d673a94e2b50b 100644 --- a/ee/lib/ee/gitlab/pages/deployment_validations.rb +++ b/ee/lib/ee/gitlab/pages/deployment_validations.rb @@ -27,7 +27,7 @@ def validate_versioned_deployments_limit return if project.pages_parallel_deployments_limit > project.pages_domain_level_parallel_deployments_count docs_link = Rails.application.routes.url_helpers.help_page_url( - 'user/project/pages/_index.md', + 'user/project/pages/parallel_deployments.md', anchor: 'limits' ) diff --git a/ee/spec/frontend/usage_quotas/pages/components/stats_spec.js b/ee/spec/frontend/usage_quotas/pages/components/stats_spec.js index befb248cad3eb154c2528046a549e6bb0a289416..a72008a065e14230704d5b78f410c993ac57032f 100644 --- a/ee/spec/frontend/usage_quotas/pages/components/stats_spec.js +++ b/ee/spec/frontend/usage_quotas/pages/components/stats_spec.js @@ -123,7 +123,9 @@ describe('PagesDeploymentsStats', () => { it('displays the help link', () => { const link = wrapper.getComponent(GlLink); - expect(link.attributes('href')).toBe(`${DOCS_URL_IN_EE_DIR}/user/project/pages/#limits`); + expect(link.attributes('href')).toBe( + `${DOCS_URL_IN_EE_DIR}/user/project/pages/parallel_deployments#limits`, + ); expect(link.attributes('title')).toBe('Learn about limits for Pages deployments'); expect(link.attributes('aria-label')).toBe('Learn about limits for Pages deployments'); }); diff --git a/ee/spec/lib/ee/gitlab/pages/deployment_validations_spec.rb b/ee/spec/lib/ee/gitlab/pages/deployment_validations_spec.rb index 3897786ee5c19ee79bd1d8b7f4343828c085b9b2..b81ab65f2edd3f0c90c8ae4bd12df27989575650 100644 --- a/ee/spec/lib/ee/gitlab/pages/deployment_validations_spec.rb +++ b/ee/spec/lib/ee/gitlab/pages/deployment_validations_spec.rb @@ -126,14 +126,14 @@ let(:pages_unique_domain_enabled) { false } include_examples "invalid pages deployment", - message: "Namespace reached its allowed limit of 2 extra deployments. Learn more: http://localhost/help/user/project/pages/_index.md#limits" + message: "Namespace reached its allowed limit of 2 extra deployments. Learn more: http://localhost/help/user/project/pages/parallel_deployments.md#limits" end context "when unique domains are enabled" do let(:pages_unique_domain_enabled) { true } include_examples "invalid pages deployment", - message: "Namespace reached its allowed limit of 2 extra deployments. Learn more: http://localhost/help/user/project/pages/_index.md#limits" + message: "Namespace reached its allowed limit of 2 extra deployments. Learn more: http://localhost/help/user/project/pages/parallel_deployments.md#limits" end end @@ -153,7 +153,7 @@ let(:pages_unique_domain_enabled) { false } include_examples "invalid pages deployment", - message: "Namespace reached its allowed limit of 2 extra deployments. Learn more: http://localhost/help/user/project/pages/_index.md#limits" + message: "Namespace reached its allowed limit of 2 extra deployments. Learn more: http://localhost/help/user/project/pages/parallel_deployments.md#limits" end context "when unique domains are enabled" do