The old rules meant that any future changes to these directories would
require the use of `git add -f` to be staged. This is problematic for
the upcoming FOSS-only mirror of GitLab. Any changes to be synced to
this mirror are staged using `git add --all .`, which due to the Git
ignore rules would not add the tmp/ and shared/ directories. This then
leads to various specs failing because they expect certain
sub-directories of these directories to be available.
This commit changes the rules so that we include the .gitkeep files,
ignore other files, and completely ignore anything in tmp/test. This
requires that the rules are specified in tmp/.gitignore and
shared/.gitignore, instead of the top-level .gitignore, without this I
could not get Git to include the .gitkeep files properly.
- The pages are created when build artifacts for `pages` job are uploaded
- Pages serve the content under: http://group.pages.domain.com/project
- Pages can be used to serve the group page, special project named as host: group.pages.domain.com
- User can provide own 403 and 404 error pages by creating 403.html and 404.html in group page project
- Pages can be explicitly removed from the project by clicking Remove Pages in Project Settings
- The size of pages is limited by Application Setting: max pages size, which limits the maximum size of unpacked archive (default: 100MB)
- The public/ is extracted from artifacts and content is served as static pages
- Pages asynchronous worker use `dd` to limit the unpacked tar size
- Pages needs to be explicitly enabled and domain needs to be specified in gitlab.yml
- Pages are part of backups
- Pages notify the deployment status using Commit Status API
- Pages use a new sidekiq queue: pages
- Pages use a separate nginx config which needs to be explicitly added
- Offloads uploading to GitLab Workhorse
- Use /authorize request for fast uploading
- Added backup recipes for artifacts
- Support download acceleration using X-Sendfile