3535 type : string
3636 fmt_ver :
3737 type : string
38+ fmt_commit :
39+ type : string
40+ gcc_action_ver :
41+ type : string
42+ llvm_action_ver :
43+ type : string
3844 opencolorio_ver :
3945 type : string
4046 openexr_ver :
4147 type : string
4248 pybind11_ver :
4349 type : string
50+ python_action_ver :
51+ type : string
4452 python_ver :
4553 type : string
4654 setenvs :
7886 type : string
7987 optional_deps :
8088 type : string
89+ build_local_deps :
90+ type : string
8191 secrets :
8292 PASSED_GITHUB_TOKEN :
8393 required : false
@@ -109,6 +119,7 @@ jobs:
109119 CTEST_TEST_TIMEOUT : ${{inputs.ctest_test_timeout}}
110120 USE_SIMD : ${{inputs.simd}}
111121 fmt_BUILD_VERSION : ${{inputs.fmt_ver}}
122+ fmt_GIT_COMMIT : ${{inputs.fmt_commit}}
112123 OPENCOLORIO_VERSION : ${{inputs.opencolorio_ver}}
113124 OPENEXR_VERSION : ${{inputs.openexr_ver}}
114125 PYBIND11_VERSION : ${{inputs.pybind11_ver}}
@@ -122,35 +133,69 @@ jobs:
122133 # against and testing an optional dependency, but in fact are not.
123134 OpenImageIO_REQUIRED_DEPS : ${{inputs.required_deps}}
124135 OpenImageIO_OPTIONAL_DEPS : ${{inputs.optional_deps}}
136+ OpenImageIO_BUILD_LOCAL_DEPS : ${{inputs.build_local_deps}}
137+ SETENVS : ${{inputs.setenvs}}
138+ DEPCMDS : ${{inputs.depcmds}}
125139
126140 steps :
127141 - name : install nodejs20glibc2.17
128142 if : inputs.old_node == '1'
129143 run : |
130144 curl --silent https://unofficial-builds.nodejs.org/download/release/v20.18.1/node-v20.18.1-linux-x64-glibc-217.tar.xz | tar -xJ --strip-components 1 -C /node20217 -f -
131145 - name : Checkout repo
132- uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
146+ if : inputs.old_node != '1'
147+ uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
148+ - name : Checkout repo-OLD
149+ if : inputs.old_node == '1'
150+ # Must use an old checkout action for old containers
151+ uses : actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
133152 - name : Build setup
134153 shell : bash
135154 run : |
136- ${{inputs.setenvs}}
155+ eval "$SETENVS"
137156 src/build-scripts/ci-startup.bash
138157 - name : Prepare ccache timestamp
139158 id : ccache_cache_keys
140159 shell : bash
141160 run : echo "date=`date -u +'%Y-%m-%dT%H:%M:%SZ'`" >> $GITHUB_OUTPUT
142161 - name : ccache-restore
162+ if : inputs.old_node != '1'
143163 id : ccache-restore
164+ uses : actions/cache/restore@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
165+ with :
166+ path : ${{ env.CCACHE_DIR }}
167+ key : ${{inputs.nametag}}-${{steps.ccache_cache_keys.outputs.date}}
168+ restore-keys : ${{inputs.nametag}}
169+ - name : ccache-restore-OLD
170+ if : inputs.old_node == '1'
171+ id : ccache-restore-old
172+ # Must use an old cache restore action for old containers
144173 uses : actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
145174 with :
146175 path : ${{ env.CCACHE_DIR }}
147176 # path: ./ccache
148177 key : ${{inputs.nametag}}-${{steps.ccache_cache_keys.outputs.date}}
149178 restore-keys : ${{inputs.nametag}}
179+ - name : Install gcc
180+ if : inputs.gcc_action_ver != ''
181+ run : |
182+ sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
183+ sudo apt-get update -y
184+ sudo apt-get install -y g++-${{inputs.gcc_action_ver}}
185+ - name : Install python
186+ if : inputs.python_action_ver != ''
187+ uses : actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
188+ with :
189+ python-version : ${{ inputs.python_action_ver }}
190+ - name : Install LLVM and Clang
191+ if : inputs.llvm_action_ver != ''
192+ uses : KyleMayes/install-llvm-action@ebc0426251bc40c7cd31162802432c68818ab8f0 # v2.0.9
193+ with :
194+ version : ${{ inputs.llvm_action_ver }}
150195 - name : Dependencies
151196 shell : bash
152197 run : |
153- ${{inputs.depcmds}}
198+ eval "$DEPCMDS"
154199 if [[ "$RUNNER_OS" == "Linux" ]]; then
155200 src/build-scripts/gh-installdeps.bash
156201 elif [[ "$RUNNER_OS" == "macOS" ]]; then
@@ -160,14 +205,14 @@ jobs:
160205 fi
161206 - name : Install sonar-scanner and build-wrapper
162207 if : inputs.sonar == '1'
163- uses : sonarsource/sonarqube-scan-action@fd88b7d7ccbaefd23d8f36f73b59db7a3d246602 # v6 .0.0
208+ uses : sonarsource/sonarqube-scan-action@a31c9398be7ace6bbfaf30c0bd5d415f843d45e9 # v7 .0.0
164209 - name : Build
165210 if : inputs.skip_build != '1'
166211 shell : bash
167212 run : src/build-scripts/ci-build.bash
168213 - name : Check out ABI standard
169214 if : inputs.abi_check != ''
170- uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2 .2
215+ uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0 .2
171216 with :
172217 ref : ${{inputs.abi_check}}
173218 path : abi_standard
@@ -180,7 +225,16 @@ jobs:
180225 src/build-scripts/ci-build.bash
181226 popd
182227 - name : ccache-save
228+ if : inputs.old_node != '1'
183229 id : ccache-save
230+ uses : actions/cache/save@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
231+ with :
232+ path : ${{ env.CCACHE_DIR }}
233+ key : ${{inputs.nametag}}-${{steps.ccache_cache_keys.outputs.date}}
234+ - name : ccache-save-OLD
235+ if : inputs.old_node == '1'
236+ id : ccache-save-old
237+ # Must use an old cache action for old containers
184238 uses : actions/cache/save@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
185239 with :
186240 path : ${{ env.CCACHE_DIR }}
@@ -208,10 +262,10 @@ jobs:
208262 run : |
209263 which sonar-scanner
210264 ls -l /__w/OpenImageIO/OpenImageIO/bw_output
211- echo "BUILD_OUTPUT_DIR is " "${{ env. BUILD_WRAPPER_OUT_DIR } }"
265+ echo "BUILD_OUTPUT_DIR is ${ BUILD_WRAPPER_OUT_DIR}"
212266 find . -name "*.gcov" -print
213- # sonar-scanner --define sonar.cfamily.compile-commands="${{ env. BUILD_WRAPPER_OUT_DIR } }/compile_commands.json"
214- time sonar-scanner --define sonar.host.url="${{ env. SONAR_SERVER_URL } }" --define sonar.cfamily.compile-commands="$BUILD_WRAPPER_OUT_DIR/compile_commands.json" --define sonar.cfamily.gcov.reportsPath="_coverage" --define sonar.cfamily.threads="$PARALLEL"
267+ # sonar-scanner --define sonar.cfamily.compile-commands="${BUILD_WRAPPER_OUT_DIR}/compile_commands.json"
268+ time sonar-scanner --define sonar.host.url="${SONAR_SERVER_URL}" --define sonar.cfamily.compile-commands="$BUILD_WRAPPER_OUT_DIR/compile_commands.json" --define sonar.cfamily.gcov.reportsPath="_coverage" --define sonar.cfamily.threads="$PARALLEL"
215269 # Consult https://docs.sonarcloud.io/advanced-setup/ci-based-analysis/sonarscanner-cli/ for more information and options
216270 - name : Check ABI
217271 if : inputs.abi_check != ''
@@ -226,8 +280,24 @@ jobs:
226280 time make doxygen
227281 time make sphinx
228282 - name : Upload testsuite debugging artifacts
283+ uses : actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
284+ if : ${{ inputs.old_node != '1' && (failure() || inputs.build_docs == '1' || inputs.benchmark == '1' || inputs.abi_check != '') }}
285+ with :
286+ name : oiio-${{github.job}}-${{inputs.nametag}}
287+ path : |
288+ build/cmake-save
289+ build/compat_reports
290+ build/sphinx
291+ build/benchmarks
292+ build/testsuite/*/*.*
293+ !build/testsuite/oiio-images
294+ !build/testsuite/openexr-images
295+ !build/testsuite/fits-images
296+ !build/testsuite/j2kp4files_v1_5
297+ ${{ inputs.extra_artifacts }}
298+ - name : Upload testsuite debugging artifacts-OLD
229299 uses : actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0
230- if : ${{ failure() || inputs.build_docs == '1' || inputs.benchmark == '1' || inputs.abi_check != '' }}
300+ if : ${{ inputs.old_node == '1' && ( failure() || inputs.build_docs == '1' || inputs.benchmark == '1' || inputs.abi_check != '') }}
231301 with :
232302 name : oiio-${{github.job}}-${{inputs.nametag}}
233303 path : |
0 commit comments