CI: add a separate job for the documentation build

The pages job is only run once we push to main, so any issues with the
documentation build won't be picked up until it's too late. Split those
up and build the doc in a separate job, the pages job simply takes the
artifacts from that job and publishes them.
This commit is contained in:
Peter Hutterer 2023-10-11 12:24:00 +10:00
parent d4bf8840a4
commit b8884770f1
2 changed files with 53 additions and 18 deletions

View file

@ -329,20 +329,8 @@ fedora:38@default-build:
needs:
- "fedora:38@container-prep"
debian:bullseye@default-build:
fedora:38@doc-build:
stage: distro
extends:
- .build@template
- .fdo.distribution-image@debian
variables:
FDO_DISTRIBUTION_VERSION: 'bullseye'
FDO_DISTRIBUTION_TAG: $DEBIAN_TAG
needs:
- "debian:bullseye@container-prep"
pages:
stage: deploy
extends:
- .build@template
- .fdo.distribution-image@fedora
@ -355,7 +343,36 @@ pages:
- rm -rf public/
- mv "$MESON_BUILDDIR"/doc/protocol/ei/public/ public/
- mv "$MESON_BUILDDIR"/doc/html/ public/api
artifacts:
paths:
- public
debian:bullseye@default-build:
stage: distro
extends:
- .build@template
- .fdo.distribution-image@debian
variables:
FDO_DISTRIBUTION_VERSION: 'bullseye'
FDO_DISTRIBUTION_TAG: $DEBIAN_TAG
needs:
- "debian:bullseye@container-prep"
pages:
stage: deploy
extends:
- .build@template
- .fdo.distribution-image@fedora
variables:
FDO_DISTRIBUTION_VERSION: '38'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
MESON_ARGS: "-Ddocumentation=protocol,api"
script:
- echo "Nothing to do"
needs:
- "fedora:38@doc-build"
only:
refs:
- main

View file

@ -338,6 +338,26 @@ minimum-meson@{{distro.name}}:{{version}}:
needs:
- "{{distro.name}}:{{version}}@container-prep"
{% if distro.name == pages.distro %}
{{distro.name}}:{{version}}@doc-build:
stage: distro
extends:
- .build@template
- .fdo.distribution-image@{{distro.name}}
variables:
FDO_DISTRIBUTION_VERSION: '{{version}}'
FDO_DISTRIBUTION_TAG: ${{distro.name.upper()}}_TAG
MESON_ARGS: "-Ddocumentation=protocol,api"
script:
- .gitlab-ci/meson-build.sh
- rm -rf public/
- mv "$MESON_BUILDDIR"/doc/protocol/ei/public/ public/
- mv "$MESON_BUILDDIR"/doc/html/ public/api
artifacts:
paths:
- public
{% endif %}
{% endfor %}
{% endfor %}
@ -351,11 +371,9 @@ pages:
FDO_DISTRIBUTION_TAG: ${{pages.distro.upper()}}_TAG
MESON_ARGS: "-Ddocumentation=protocol,api"
script:
- .gitlab-ci/meson-build.sh
- rm -rf public/
- mv "$MESON_BUILDDIR"/doc/protocol/ei/public/ public/
- mv "$MESON_BUILDDIR"/doc/html/ public/api
- echo "Nothing to do"
needs:
- "{{pages.distro}}:{{pages.version}}@doc-build"
only:
refs:
- main