I have a Maven based project. As part of the build in .gitlab-ci.yml
, I have mvn site
that generates the Maven site for my project into the target/site
subdirectory.
Now, I would like to host that project site on GitLab pages, in other words copy the whole site
tree to a site in GitLab Pages.
I am at a loss on how to achieve this. The documentation, templates, and examples I could find, all assume that the main purpose of the project is the site.
I have found that GitHub has the Github-Site-Plugin. Does GitLab have something similar? Or can the above be tweaked for use on GitLab? If so, how?
1 Like
I am just looking into this exact thing now. Have you found any useful online resources?
I believe that the GitHub site plugin that I mention can be configured to do the job, combined with what you can find in the GitLab pages documentation about CI/CD. However, I have not had the time to work out the details.
It is actually quite simple. It is all about modifying your .gitlab-ci.yml
file. Please refer to the .gitlab-ci.yml keyword reference. Basically, there are two things required:
- The job generating your pages must be named
pages
. - Its output is delivered through an artifact containing the pages in the directory
public
.
A simple job generating your site as pages in pipelines on master could be:
pages:
stage: deploy
script:
- mvn site
- mv target/site public
artifacts:
paths:
- public
only:
- master