@@ -21,7 +21,108 @@ concurrency:
2121
2222jobs :
2323 twister-build-prep :
24- uses : ./.github/workflows/twister-prep.yaml
24+ if : github.repository_owner == 'zephyrproject-rtos'
25+ runs-on :
26+ group : zephyr-runner-v2-linux-x64-4xlarge
27+ container :
28+ image : ghcr.io/zephyrproject-rtos/ci-repo-cache:v0.27.4.20241026
29+ options : ' --entrypoint /bin/bash'
30+ outputs :
31+ subset : ${{ steps.output-services.outputs.subset }}
32+ size : ${{ steps.output-services.outputs.size }}
33+ fullrun : ${{ steps.output-services.outputs.fullrun }}
34+ env :
35+ MATRIX_SIZE : 10
36+ PUSH_MATRIX_SIZE : 20
37+ DAILY_MATRIX_SIZE : 80
38+ BSIM_OUT_PATH : /opt/bsim/
39+ BSIM_COMPONENTS_PATH : /opt/bsim/components
40+ TESTS_PER_BUILDER : 700
41+ COMMIT_RANGE : ${{ github.event.pull_request.base.sha }}..${{ github.event.pull_request.head.sha }}
42+ BASE_REF : ${{ github.base_ref }}
43+ steps :
44+ - name : Apply container owner mismatch workaround
45+ run : |
46+ # FIXME: The owner UID of the GITHUB_WORKSPACE directory may not
47+ # match the container user UID because of the way GitHub
48+ # Actions runner is implemented. Remove this workaround when
49+ # GitHub comes up with a fundamental fix for this problem.
50+ git config --global --add safe.directory ${GITHUB_WORKSPACE}
51+
52+ - name : Print cloud service information
53+ run : |
54+ echo "ZEPHYR_RUNNER_CLOUD_PROVIDER = ${ZEPHYR_RUNNER_CLOUD_PROVIDER}"
55+ echo "ZEPHYR_RUNNER_CLOUD_NODE = ${ZEPHYR_RUNNER_CLOUD_NODE}"
56+ echo "ZEPHYR_RUNNER_CLOUD_POD = ${ZEPHYR_RUNNER_CLOUD_POD}"
57+
58+ - name : Clone cached Zephyr repository
59+ if : github.event_name == 'pull_request_target'
60+ continue-on-error : true
61+ run : |
62+ git clone --shared /repo-cache/zephyrproject/zephyr .
63+ git remote set-url origin ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}
64+
65+ - name : Checkout
66+ if : github.event_name == 'pull_request_target'
67+ uses : actions/checkout@v4
68+ with :
69+ ref : ${{ github.event.pull_request.head.sha }}
70+ fetch-depth : 0
71+ persist-credentials : false
72+
73+ - name : Environment Setup
74+ if : github.event_name == 'pull_request_target'
75+ run : |
76+ git config --global user.email "[email protected] " 77+ git config --global user.name "Zephyr Bot"
78+ rm -fr ".git/rebase-apply"
79+ git rebase origin/${BASE_REF}
80+ git clean -f -d
81+ git log --pretty=oneline | head -n 10
82+ west init -l . || true
83+ west config manifest.group-filter -- +ci,+optional
84+ west config --global update.narrow true
85+ 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)
86+ west forall -c 'git reset --hard HEAD'
87+
88+ echo "ZEPHYR_SDK_INSTALL_DIR=/opt/toolchains/zephyr-sdk-$( cat SDK_VERSION )" >> $GITHUB_ENV
89+
90+ - name : Generate Test Plan with Twister
91+ if : github.event_name == 'pull_request_target'
92+ id : test-plan
93+ run : |
94+ export ZEPHYR_BASE=${PWD}
95+ export ZEPHYR_TOOLCHAIN_VARIANT=zephyr
96+ python3 ./scripts/ci/test_plan.py -c origin/${BASE_REF}.. --pull-request -t $TESTS_PER_BUILDER
97+ if [ -s .testplan ]; then
98+ cat .testplan >> $GITHUB_ENV
99+ else
100+ echo "TWISTER_NODES=${MATRIX_SIZE}" >> $GITHUB_ENV
101+ fi
102+ rm -f testplan.json .testplan
103+
104+ - name : Determine matrix size
105+ id : output-services
106+ run : |
107+ if [ "${{github.event_name}}" = "pull_request_target" ]; then
108+ if [ -n "${TWISTER_NODES}" ]; then
109+ subset="[$(seq -s',' 1 ${TWISTER_NODES})]"
110+ else
111+ subset="[$(seq -s',' 1 ${MATRIX_SIZE})]"
112+ fi
113+ size=${TWISTER_NODES}
114+ elif [ "${{github.event_name}}" = "push" ]; then
115+ subset="[$(seq -s',' 1 ${PUSH_MATRIX_SIZE})]"
116+ size=${MATRIX_SIZE}
117+ elif [ "${{github.event_name}}" = "schedule" -a "${{github.repository}}" = "zephyrproject-rtos/zephyr" ]; then
118+ subset="[$(seq -s',' 1 ${DAILY_MATRIX_SIZE})]"
119+ size=${DAILY_MATRIX_SIZE}
120+ else
121+ size=0
122+ fi
123+ echo "subset=${subset}" >> $GITHUB_OUTPUT
124+ echo "size=${size}" >> $GITHUB_OUTPUT
125+ echo "fullrun=${TWISTER_FULL}" >> $GITHUB_OUTPUT
25126
26127 twister-build :
27128 runs-on :
0 commit comments