@@ -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 : 8
21
21
22
22
jobs :
23
23
doc-file-check :
@@ -56,71 +56,76 @@ 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
68
+ env :
69
+ BASE_REF : ${{ github.base_ref }}
70
+
64
71
65
72
steps :
66
- - name : install-pkgs
73
+
74
+ - name : Print cloud service information
67
75
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
76
+ echo "ZEPHYR_RUNNER_CLOUD_PROVIDER = ${ZEPHYR_RUNNER_CLOUD_PROVIDER}"
77
+ echo "ZEPHYR_RUNNER_CLOUD_NODE = ${ZEPHYR_RUNNER_CLOUD_NODE}"
78
+ echo "ZEPHYR_RUNNER_CLOUD_POD = ${ZEPHYR_RUNNER_CLOUD_POD}"
79
79
80
- - name : checkout
80
+ - name : Apply container owner mismatch workaround
81
+ run : |
82
+ # FIXME: The owner UID of the GITHUB_WORKSPACE directory may not
83
+ # match the container user UID because of the way GitHub
84
+ # Actions runner is implemented. Remove this workaround when
85
+ # GitHub comes up with a fundamental fix for this problem.
86
+ git config --global --add safe.directory ${GITHUB_WORKSPACE}
87
+
88
+ - name : Clone cached Zephyr repository
89
+ continue-on-error : true
90
+ run : |
91
+ git clone --shared /repo-cache/zephyrproject/zephyr .
92
+ git remote set-url origin ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}
93
+
94
+ - name : Checkout
81
95
uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
82
96
with :
83
97
ref : ${{ github.event.pull_request.head.sha }}
84
98
fetch-depth : 0
85
- path : zephyr
86
99
87
- - name : Rebase
88
- if : github.event_name == 'pull_request'
89
- continue-on-error : true
90
- env :
91
- BASE_REF : ${{ github.base_ref }}
92
- PR_HEAD : ${{ github.event.pull_request.head.sha }}
93
- working-directory : zephyr
100
+ - name : Environment Setup
94
101
run : |
95
- git config --global user.email "[email protected] "
96
- git config --global user.name "Github Actions"
97
- rm -fr ".git/rebase-apply"
98
- rm -fr ".git/rebase-merge"
99
- git rebase origin/${BASE_REF}
100
- git clean -f -d
101
- git log --graph --oneline HEAD...${PR_HEAD}
102
+ if [ "${{github.event_name}}" = "pull_request" ]; then
103
+ git config --global user.email "[email protected] "
104
+ git config --global user.name "Zephyr Builder"
105
+ rm -fr ".git/rebase-apply"
106
+ rm -fr ".git/rebase-merge"
107
+ git rebase origin/${BASE_REF}
108
+ git clean -f -d
109
+ git log --pretty=oneline | head -n 10
110
+ fi
111
+ echo "$HOME/.local/bin" >> $GITHUB_PATH
112
+ echo "$HOME/.cargo/bin" >> $GITHUB_PATH
102
113
103
- - name : Set up Python
104
- uses : actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
105
- with :
106
- python-version : 3.12
107
- cache : pip
108
- cache-dependency-path : doc/requirements.txt
114
+ west init -l . || true
115
+ west config manifest.group-filter -- +ci,+optional
116
+ west config --global update.narrow true
117
+ west update --path-cache /repo-cache/zephyrproject 2>&1 1> west.update.log || west update --path-cache /repo-cache/zephyrproject 2>&1 1> west.update.log || ( rm -rf ../modules ../bootloader ../tools && west update --path-cache /repo-cache/zephyrproject)
118
+ west forall -c 'git reset --hard HEAD'
109
119
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'
120
+ echo "ZEPHYR_SDK_INSTALL_DIR=/opt/toolchains/zephyr-sdk-$( cat SDK_VERSION )" >> $GITHUB_ENV
115
121
116
- - name : install-pip
117
- working-directory : zephyr
122
+ - name : Install Python packages required for documentation build
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
- working-directory : zephyr
124
129
run : |
125
130
if [[ "$GITHUB_REF" =~ "refs/tags/v" ]]; then
126
131
DOC_TAG="release"
@@ -145,27 +150,26 @@ jobs:
145
150
lcov --remove doc-coverage.info \*/deprecated > new.info
146
151
genhtml --no-function-coverage --no-branch-coverage new.info -o coverage-report
147
152
148
- - name : compress-docs
149
- working-directory : zephyr
153
+ - name : Compress documentation build artifacts
150
154
run : |
151
155
tar --use-compress-program="xz -T0" -cf html-output.tar.xz --exclude html/_sources --exclude html/doxygen/xml --directory=doc/_build html
152
156
tar --use-compress-program="xz -T0" -cf api-output.tar.xz --directory=doc/_build html/doxygen/html
153
157
tar --use-compress-program="xz -T0" -cf api-coverage.tar.xz coverage-report
154
158
155
- - name : upload-build
159
+ - name : Upload HTML output
156
160
uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
157
161
with :
158
162
name : html-output
159
- path : zephyr/ html-output.tar.xz
163
+ path : html-output.tar.xz
160
164
161
- - name : upload-api- coverage
165
+ - name : Upload Doxygen coverage artifacts
162
166
uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
163
167
with :
164
168
name : api-coverage
165
- path : zephyr/ api-coverage.tar.xz
169
+ path : api-coverage.tar.xz
166
170
167
171
168
- - name : process-pr
172
+ - name : Summarize PR documentation URLs
169
173
if : github.event_name == 'pull_request'
170
174
run : |
171
175
REPO_NAME="${{ github.event.repository.name }}"
@@ -179,7 +183,7 @@ jobs:
179
183
echo "API Documentation will be available shortly at: ${API_DOC_URL}" >> $GITHUB_STEP_SUMMARY
180
184
echo "API Coverage Report will be available shortly at: ${API_COVERAGE_URL}" >> $GITHUB_STEP_SUMMARY
181
185
182
- - name : upload-pr- number
186
+ - name : Upload PR number
183
187
uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
184
188
if : github.event_name == 'pull_request'
185
189
with :
0 commit comments