CI/Docs: build [dynamic] binaries instead of [static] binaries in [documentation.update]
What
- Replaces static build jobs with dynamic build jobs in
documentation.update. - Adds
ci/run_pipeline/documentation.update.shto generate testdocumentation.updatepipelines.
Why
- [octez-snoop] was missing which led to a doc subpage being absent.
-
ci/run_pipeline/documentation.update.shis handy to generate testdocumentation.updatepipelines.
How
ci/run_pipeline/documentation.update.sh
We just adapt ci/run_pipeline/documentation.daily.sh.
[octez-snoop]
In docs/ci:
- select
dynamicbinaries injob_build_all - add relevant dynamic build jobs and remove static build job in
legacy_needsThen generate the yaml.
Manually testing the MR
- Review CI code diff:
-
make -C ci checkshould pass - for the yaml diff, you may want to use
ciaodiffto convince yourself that the diff in{before_merging|merge_train|documentation.daily}.ymlis just job reorderings - in
documentation.update.ymlobserve that static build job has been replaced with dynamic build jobs.
make -C ci
dune exec ci/ciaodiff/main.exe -- --origin HEAD^ before_merging
dune exec ci/ciaodiff/main.exe -- --origin HEAD^ merge_train
dune exec ci/ciaodiff/main.exe -- --origin HEAD^ documentation.daily
dune exec ci/ciaodiff/main.exe -- --origin HEAD^ documentation.update
- Review test pipelines to see that octez-snoop is now available.
There are two documentation.update test pipelines:
-
documentation.updatewith [static] binaries: https://gitlab.com/tezos/tezos/-/pipelines/2208818924 -
documentation.updatewith [dynamic] binaries: https://gitlab.com/tezos/tezos/-/pipelines/2208848907
NB: in both cases, documentation.publish is red because the pipeline does not run on master (which is actually a good thing since we don't want to accidentally update the public-facing doc).
Compare the documentation.manuals jobs and observe that
- a) in the first run
octez-snoopis declared as missing (https://gitlab.com/tezos/tezos/-/jobs/12400003707#L81) and - b) in the second run, this message is not present in the logs (https://gitlab.com/tezos/tezos/-/jobs/12400210160#L64).
- Check that the manual is available for octez-snoop:
- new version: https://tezos.gitlab.io/-/tezos/-/jobs/12400210168/artifacts/docs/_build/shell/cli-commands.html#benchmark-tool-manual
- current version: https://octez.tezos.com/docs/shell/cli-commands.html#benchmark-tool-manual (or https://tezos.gitlab.io/-/tezos/-/jobs/12400003727/artifacts/docs/_build/shell/cli-commands.html#benchmark-tool-manual)
- Review the doc diff:
Compare the artifacts of both documentation.build_all jobs (with static binaries, with dynamic binaries).
In attachment, you will find
- a) a bash script I used to compare the folders: folder_diff_script.sh
- b) the diff it generated: folder_comparison_summary.diff
The diff contains mostly mundane such as
############################################################
## DIFF for: _build/protocols/naming.html
############################################################
--- docs_static/_build/protocols/naming.html 2025-12-11 11:03:49
+++ docs_dynamic/_build/protocols/naming.html 2025-12-11 11:16:03
@@ -45,7 +45,7 @@
<script src="../_static/jquery.js?v=5d32c60e"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
- <script src="../_static/documentation_options.js?v=76895256"></script>
+ <script src="../_static/documentation_options.js?v=7b12907a"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/clipboard.min.js?v=a7894cd8"></script>
As well as the diff related to the octez-snoop subpage.
Further work:
- use dynamic binaries for
documentation.dailyas well and then simplify the CI code (#8169 (closed)) - streamlining of documentation jobs (#8170):
- review binary dependencies and removes non-needed ones
- merge
documentation.manualsintodocumentation.build_allas the script step duration ofdocumentation.manualsis < 10s, negligeable during the time to start the pod.
Checklist
- Document the interface of any function added or modified (see the coding guidelines)
- Document any change to the user interface, including configuration parameters (see node configuration)
- Provide automatic testing (see the testing guide).
-
For new features and bug fixes, add an item in the appropriate changelog (
docs/protocols/alpha.rstfor the protocol and the environment,CHANGES.rstat the root of the repository for everything else). -
Select suitable reviewers using the
Reviewersfield below. -
Select as
Assigneethe next person who should take action on that MR
Closes #8168 (closed)
Edited by Bruno B