Skip to content

Commit bbfadc6

Browse files
committed
Merge remote-tracking branch 'upstream/main'
2 parents 66fa607 + 6e8d62b commit bbfadc6

182 files changed

Lines changed: 5818 additions & 1201 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,12 @@ instructions!
3030
<!-- Put an 'x' in the boxes as you complete the checklist items -->
3131

3232
- [ ] **I have read the guidelines** on [contributions](https://github.com/AcademySoftwareFoundation/OpenImageIO/blob/main/CONTRIBUTING.md) and [code review procedures](https://github.com/AcademySoftwareFoundation/OpenImageIO/blob/main/docs/dev/CodeReview.md).
33+
- [ ] **I have read the [Policy on AI Coding Assistants](https://github.com/AcademySoftwareFoundation/OpenImageIO/blob/main/docs/dev/AI_Policy.md)**
34+
and if I used AI coding assistants, I have an `Assisted-by: TOOL / MODEL`
35+
line in the pull request description above.
3336
- [ ] **I have updated the documentation** if my PR adds features or changes
3437
behavior.
35-
- [ ] **I am sure that this PR's changes are tested somewhere in the
36-
testsuite**.
38+
- [ ] **I am sure that this PR's changes are tested in the testsuite**.
3739
- [ ] **I have run and passed the testsuite in CI** *before* submitting the
3840
PR, by pushing the changes to my fork and seeing that the automated CI
3941
passed there. (Exceptions: If most tests pass and you can't figure out why

.github/workflows/build-steps.yml

Lines changed: 79 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,20 @@ on:
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:
@@ -78,6 +86,8 @@ on:
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

Comments
 (0)