@@ -17,7 +17,7 @@ permissions:
1717env :
1818 DOXYGEN_VERSION : 1.14.0
1919 DOXYGEN_MD5SUM : e761a5097ae20ecccfd02041925f102a
20- JOB_COUNT : 4
20+ JOB_COUNT : 8
2121
2222jobs :
2323 doc-file-check :
3232 ref : ${{ github.event.pull_request.head.sha }}
3333 fetch-depth : 0
3434 - name : Check if Documentation related files changed
35- uses : tj-actions/changed-files@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46 .0.5
35+ uses : tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47 .0.0
3636 id : check-doc-files
3737 with :
3838 files : |
@@ -56,71 +56,75 @@ jobs:
5656 needs : [doc-file-check]
5757 if : >
5858 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.6.20251003
63+ options : ' --entrypoint /bin/bash'
64+ timeout-minutes : 20
6165 concurrency :
6266 group : doc-build-html-${{ github.ref }}
6367 cancel-in-progress : true
68+ env :
69+ BASE_REF : ${{ github.base_ref }}
70+
6471
6572 steps :
66- - name : install-pkgs
73+
74+ - name : Print cloud service information
6775 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}"
7979
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
8195 uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
8296 with :
8397 ref : ${{ github.event.pull_request.head.sha }}
8498 fetch-depth : 0
85- path : zephyr
8699
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
94101 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
102113
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 --global update.narrow true
116+ 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)
117+ west forall -c 'git reset --hard HEAD'
109118
110- - name : Setup Zephyr project
111- uses : zephyrproject-rtos/action-zephyr-setup@6a744370a22e4ecb24f5dda3c7e80ff3e0a3b847 # v1.0.8
112- with :
113- app-path : zephyr
114- toolchains : ' all'
119+ echo "ZEPHYR_SDK_INSTALL_DIR=/opt/toolchains/zephyr-sdk-$( cat SDK_VERSION )" >> $GITHUB_ENV
115120
116- - name : install-pip
117- working-directory : zephyr
121+ - name : Install Python packages required for documentation build
118122 run : |
123+ pip install -r scripts/requirements-actions.txt --require-hashes
119124 pip install -r doc/requirements.txt --require-hashes
120125
121- - name : build-docs
126+ - name : Build HTML documentation
122127 shell : bash
123- working-directory : zephyr
124128 run : |
125129 if [[ "$GITHUB_REF" =~ "refs/tags/v" ]]; then
126130 DOC_TAG="release"
@@ -145,27 +149,26 @@ jobs:
145149 lcov --remove doc-coverage.info \*/deprecated > new.info
146150 genhtml --no-function-coverage --no-branch-coverage new.info -o coverage-report
147151
148- - name : compress-docs
149- working-directory : zephyr
152+ - name : Compress documentation build artifacts
150153 run : |
151154 tar --use-compress-program="xz -T0" -cf html-output.tar.xz --exclude html/_sources --exclude html/doxygen/xml --directory=doc/_build html
152155 tar --use-compress-program="xz -T0" -cf api-output.tar.xz --directory=doc/_build html/doxygen/html
153156 tar --use-compress-program="xz -T0" -cf api-coverage.tar.xz coverage-report
154157
155- - name : upload-build
158+ - name : Upload HTML output
156159 uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
157160 with :
158161 name : html-output
159- path : zephyr/ html-output.tar.xz
162+ path : html-output.tar.xz
160163
161- - name : upload-api- coverage
164+ - name : Upload Doxygen coverage artifacts
162165 uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
163166 with :
164167 name : api-coverage
165- path : zephyr/ api-coverage.tar.xz
168+ path : api-coverage.tar.xz
166169
167170
168- - name : process-pr
171+ - name : Summarize PR documentation URLs
169172 if : github.event_name == 'pull_request'
170173 run : |
171174 REPO_NAME="${{ github.event.repository.name }}"
@@ -179,7 +182,7 @@ jobs:
179182 echo "API Documentation will be available shortly at: ${API_DOC_URL}" >> $GITHUB_STEP_SUMMARY
180183 echo "API Coverage Report will be available shortly at: ${API_COVERAGE_URL}" >> $GITHUB_STEP_SUMMARY
181184
182- - name : upload-pr- number
185+ - name : Upload PR number
183186 uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
184187 if : github.event_name == 'pull_request'
185188 with :
@@ -227,10 +230,11 @@ jobs:
227230 echo "/opt/doxygen-${DOXYGEN_VERSION}/bin" >> $GITHUB_PATH
228231
229232 - name : Setup Zephyr project
230- uses : zephyrproject-rtos/action-zephyr-setup@6a744370a22e4ecb24f5dda3c7e80ff3e0a3b847 # v1.0.8
233+ uses : zephyrproject-rtos/action-zephyr-setup@c125c5ebeeadbd727fa740b407f862734af1e52a # v1.0.9
231234 with :
232235 app-path : zephyr
233236 toolchains : ' arm-zephyr-eabi'
237+ enable-ccache : false
234238
235239 - name : install-pip-pkgs
236240 working-directory : zephyr
0 commit comments