@@ -21,15 +21,27 @@ jobs:
2121 - uses : actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
2222 with :
2323 sparse-checkout : get-build-number
24- - uses : ./get-build-number
2524 - uses : ./get-build-number
2625 id : get_build_number
2726 - name : Check build number generation
2827 run : |
29- echo "Build number : ${BUILD_NUMBER}"
28+ echo "BUILD_NUMBER : ${BUILD_NUMBER}"
3029 [[ "${BUILD_NUMBER}" =~ ^[0-9]+$ ]]
3130
32- test-build-number-reuse :
31+ - uses : ./get-build-number
32+ id : get_build_number_second_call
33+ - name : Check build number is stable across calls
34+ env :
35+ BUILD_NUMBER_FROM_FIRST_CALL : ${{ steps.get_build_number.outputs.BUILD_NUMBER }}
36+ BUILD_NUMBER_FROM_SECOND_CALL : ${{ steps.get_build_number_second_call.outputs.BUILD_NUMBER }}
37+ run : |
38+ if [[ "${BUILD_NUMBER_FROM_FIRST_CALL}" != "${BUILD_NUMBER_FROM_SECOND_CALL}" ]]; then
39+ echo -e "::error title=test-build-number-generation::Build number '${BUILD_NUMBER_FROM_FIRST_CALL}' from first call" \
40+ "does not match the build number from second call '${BUILD_NUMBER_FROM_SECOND_CALL}'."
41+ exit 1
42+ fi
43+
44+ test-build-number-reuse-from-cache :
3345 needs : test-build-number-generation
3446 runs-on : github-ubuntu-latest-s
3547 permissions :
@@ -42,14 +54,14 @@ jobs:
4254 - uses : ./get-build-number
4355 - name : Check build number was reused
4456 run : |
45- echo "Build number : ${BUILD_NUMBER}"
57+ echo "BUILD_NUMBER : ${BUILD_NUMBER}"
4658 if [[ "${BUILD_NUMBER}" != "${{ needs.test-build-number-generation.outputs.BUILD_NUMBER }}" ]]; then
4759 echo -e "::error title=test-build-number-reuse::Build number '${BUILD_NUMBER}' does not match the previous job build number" \
4860 "'${{ needs.test-build-number-generation.outputs.BUILD_NUMBER }}' despite it is the same workflow run.\n" \
4961 "Prefer using the output from SonarSource/ci-github-actions/get-build-number instead of calling it from distinct jobs."
5062 fi
5163
52- test-build-number-reuse-windows :
64+ test-build-number-reuse-from-cache- windows :
5365 needs : test-build-number-generation
5466 runs-on : github-windows-latest-s
5567 permissions :
6375 - name : Check build number was reused
6476 shell : bash
6577 run : |
66- echo "Build number : ${BUILD_NUMBER}"
78+ echo "BUILD_NUMBER : ${BUILD_NUMBER}"
6779 if [[ "${BUILD_NUMBER}" != "${{ needs.test-build-number-generation.outputs.BUILD_NUMBER }}" ]]; then
68- echo -e "::error title=test-build-number-reuse::Build number '${BUILD_NUMBER}' does not match the previous job build number " \
69- "'${{ needs.test-build-number-generation.outputs.BUILD_NUMBER }}' despite it is the same workflow run.\n" \
80+ echo -e "::error title=test-build-number-reuse-from-cache-windows ::Build number '${BUILD_NUMBER}' does not match the previous" \
81+ "job build number '${{ needs.test-build-number-generation.outputs.BUILD_NUMBER }}' despite it is the same workflow run.\n" \
7082 "Prefer using the output from SonarSource/ci-github-actions/get-build-number instead of calling it from distinct jobs."
7183 fi
84+
85+ test-build-number-reuse-from-env :
86+ needs : test-build-number-generation
87+ runs-on : github-ubuntu-latest-s
88+ permissions :
89+ id-token : write
90+ contents : read
91+ steps :
92+ - uses : actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
93+ with :
94+ sparse-checkout : get-build-number
95+ - uses : ./get-build-number
96+ id : get_build_number
97+ env :
98+ BUILD_NUMBER : ${{ needs.test-build-number-generation.outputs.BUILD_NUMBER }}
99+ - name : Check build number was reused
100+ env :
101+ BUILD_NUMBER_FROM_ENV : ${{ needs.test-build-number-generation.outputs.BUILD_NUMBER }}
102+ BUILD_NUMBER_RETURNED : ${{ steps.get_build_number.outputs.BUILD_NUMBER }}
103+ run : |
104+ echo "BUILD_NUMBER: ${BUILD_NUMBER}"
105+ if [[ "${BUILD_NUMBER_FROM_ENV}" != "${BUILD_NUMBER_RETURNED}" ]]; then
106+ echo -e "::error title=test-build-number-reuse-from-env::Build number returned by get-build-number '${BUILD_NUMBER_RETURNED}'" \
107+ "does not match the build number passed by env ${BUILD_NUMBER_FROM_ENV}."
108+ exit 1
109+ fi
110+
111+ test-build-number-reuse :
112+ if : always()
113+ needs :
114+ - test-build-number-generation
115+ - test-build-number-reuse-from-cache
116+ - test-build-number-reuse-from-cache-windows
117+ - test-build-number-reuse-from-env
118+ runs-on : github-ubuntu-latest-s
119+ steps :
120+ - uses : re-actors/alls-green@05ac9388f0aebcb5727afa17fcccfecd6f8ec5fe # v1.2.2
121+ with :
122+ jobs : ${{ toJSON(needs) }}
0 commit comments