@@ -17,7 +17,7 @@ permissions:
17
17
env :
18
18
DOXYGEN_VERSION : 1.14.0
19
19
DOXYGEN_MD5SUM : e761a5097ae20ecccfd02041925f102a
20
- JOB_COUNT : 4
20
+ JOB_COUNT : 30
21
21
22
22
jobs :
23
23
doc-file-check :
@@ -56,26 +56,37 @@ jobs:
56
56
needs : [doc-file-check]
57
57
if : >
58
58
needs.doc-file-check.outputs.file_check == 'true' || github.event_name != 'pull_request'
59
- runs-on : ubuntu-24.04
60
- timeout-minutes : 90
59
+ runs-on :
60
+ group : zephyr-runner-v2-linux-x64-4xlarge
61
+ container :
62
+ image : ghcr.io/zephyrproject-rtos/ci-repo-cache:v0.28.5.20250930
63
+ options : ' --entrypoint /bin/bash'
64
+ timeout-minutes : 20
61
65
concurrency :
62
66
group : doc-build-html-${{ github.ref }}
63
67
cancel-in-progress : true
64
68
65
69
steps :
66
- - name : install-pkgs
70
+
71
+ - name : Print cloud service information
67
72
run : |
68
- sudo apt-get update
69
- sudo apt-get install -y wget python3-pip git ninja-build graphviz lcov
70
- wget --no-verbose "https://github.com/doxygen/doxygen/releases/download/Release_${DOXYGEN_VERSION//./_}/doxygen-${DOXYGEN_VERSION}.linux.bin.tar.gz"
71
- echo "${DOXYGEN_MD5SUM} doxygen-${DOXYGEN_VERSION}.linux.bin.tar.gz" | md5sum -c
72
- if [ $? -ne 0 ]; then
73
- echo "Failed to verify doxygen tarball"
74
- exit 1
75
- fi
76
- sudo tar xf doxygen-${DOXYGEN_VERSION}.linux.bin.tar.gz -C /opt
77
- echo "/opt/doxygen-${DOXYGEN_VERSION}/bin" >> $GITHUB_PATH
78
- echo "${HOME}/.local/bin" >> $GITHUB_PATH
73
+ echo "ZEPHYR_RUNNER_CLOUD_PROVIDER = ${ZEPHYR_RUNNER_CLOUD_PROVIDER}"
74
+ echo "ZEPHYR_RUNNER_CLOUD_NODE = ${ZEPHYR_RUNNER_CLOUD_NODE}"
75
+ echo "ZEPHYR_RUNNER_CLOUD_POD = ${ZEPHYR_RUNNER_CLOUD_POD}"
76
+
77
+ - name : Apply container owner mismatch workaround
78
+ run : |
79
+ # FIXME: The owner UID of the GITHUB_WORKSPACE directory may not
80
+ # match the container user UID because of the way GitHub
81
+ # Actions runner is implemented. Remove this workaround when
82
+ # GitHub comes up with a fundamental fix for this problem.
83
+ git config --global --add safe.directory ${GITHUB_WORKSPACE}
84
+
85
+ - name : Clone cached Zephyr repository
86
+ continue-on-error : true
87
+ run : |
88
+ git clone --shared /repo-cache/zephyrproject/zephyr .
89
+ git remote set-url origin ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}
79
90
80
91
- name : checkout
81
92
uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
@@ -107,32 +118,29 @@ jobs:
107
118
cache : pip
108
119
cache-dependency-path : doc/requirements.txt
109
120
110
- - name : Setup Zephyr project
111
- uses : zephyrproject-rtos/action-zephyr-setup@c125c5ebeeadbd727fa740b407f862734af1e52a # v1.0.9
112
- with :
113
- app-path : zephyr
114
- toolchains : ' all'
115
-
116
- - name : install-pip
121
+ - name : Install Python packages required for documentation build
117
122
working-directory : zephyr
118
123
run : |
124
+ pip install -r scripts/requirements-actions.txt --require-hashes
119
125
pip install -r doc/requirements.txt --require-hashes
120
126
121
- - name : build-docs
127
+ - name : Build HTML documentation
122
128
shell : bash
123
129
working-directory : zephyr
124
130
run : |
131
+ pip list
132
+
125
133
if [[ "$GITHUB_REF" =~ "refs/tags/v" ]]; then
126
134
DOC_TAG="release"
127
135
else
128
136
DOC_TAG="development"
129
137
fi
130
138
131
- if [[ "${{ github.event_name }}" == "pull_request" ]]; then
132
- DOC_TARGET="html-fast"
133
- else
139
+ # if [[ "${{ github.event_name }}" == "pull_request" ]]; then
140
+ # DOC_TARGET="html-fast"
141
+ # else
134
142
DOC_TARGET="html"
135
- fi
143
+ # fi
136
144
137
145
DOC_TAG=${DOC_TAG} \
138
146
SPHINXOPTS="-j ${JOB_COUNT} -W --keep-going -T" \
@@ -145,27 +153,27 @@ jobs:
145
153
lcov --remove doc-coverage.info \*/deprecated > new.info
146
154
genhtml --no-function-coverage --no-branch-coverage new.info -o coverage-report
147
155
148
- - name : compress-docs
156
+ - name : Compress documentation build artifacts
149
157
working-directory : zephyr
150
158
run : |
151
159
tar --use-compress-program="xz -T0" -cf html-output.tar.xz --exclude html/_sources --exclude html/doxygen/xml --directory=doc/_build html
152
160
tar --use-compress-program="xz -T0" -cf api-output.tar.xz --directory=doc/_build html/doxygen/html
153
161
tar --use-compress-program="xz -T0" -cf api-coverage.tar.xz coverage-report
154
162
155
- - name : upload-build
163
+ - name : Upload HTML output
156
164
uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
157
165
with :
158
166
name : html-output
159
167
path : zephyr/html-output.tar.xz
160
168
161
- - name : upload-api- coverage
169
+ - name : Upload Doxygen coverage artifacts
162
170
uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
163
171
with :
164
172
name : api-coverage
165
173
path : zephyr/api-coverage.tar.xz
166
174
167
175
168
- - name : process-pr
176
+ - name : Summarize PR documentation URLs
169
177
if : github.event_name == 'pull_request'
170
178
run : |
171
179
REPO_NAME="${{ github.event.repository.name }}"
@@ -179,7 +187,7 @@ jobs:
179
187
echo "API Documentation will be available shortly at: ${API_DOC_URL}" >> $GITHUB_STEP_SUMMARY
180
188
echo "API Coverage Report will be available shortly at: ${API_COVERAGE_URL}" >> $GITHUB_STEP_SUMMARY
181
189
182
- - name : upload-pr- number
190
+ - name : Upload PR number
183
191
uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
184
192
if : github.event_name == 'pull_request'
185
193
with :
0 commit comments