Shut up warnings clang with libstdc++ emits about non-virtual destructors #51
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Copyright 2025 The Khronos Group Inc. | |
# SPDX-License-Identifier: Apache-2.0 | |
name: KTX-Software Web CI | |
# Seems no way to avoid duplicating this on logic in each .yml file. | |
# See https://github.com/actions/starter-workflows/issues/245. | |
on: | |
# Trigger the workflow on a pull request, | |
pull_request: | |
push: | |
# And on pushes to main, which will occur when a PR is merged. | |
branches: | |
- main | |
# Also trigger on push of release tags to any branch. Useful | |
# for testing release builds before merging to main. | |
tags: | |
- 'v[0-9]+.[0-9]+.[0-9]+' | |
- 'v[0-9]+.[0-9]+.[0-9]+-*' | |
paths-ignore: | |
- .appveyor.yml | |
- .github/workflows/android.yml | |
- .github/workflows/check-mkvk.yml | |
- .github/workflows/docs.yml | |
- .github/workflows/formatting.yml | |
- .github/workflows/publish-pyktx.yml | |
- .github/workflows/windows.yml | |
- .travis.yml | |
- README.md | |
- CODE_OF_CONDUCT.md | |
- CONTRIBUTING.md | |
- LICENSE.md | |
- LICENSES | |
- RELEASE_NOTES.md | |
- REUSE.toml | |
- install-gitconfig* | |
# Allow manual trigger | |
workflow_dispatch: | |
workflow_call: | |
jobs: | |
#formatting: | |
# uses: ./.github/workflows/formatting.yml | |
web: | |
# Shortcircuit and don't burn CI time when formatting will reject | |
#needs: formatting | |
strategy: | |
matrix: | |
include: | |
- name: Debug | |
os: ubuntu-22.04 | |
generator: Ninja | |
arch: x86_64 | |
compiler: clang | |
vk_sdk_ver: '1.3.290' | |
options: { | |
config: Debug, | |
doc: OFF, jni: OFF, loadtests: OpenGL, py: OFF, tools: OFF, tools_cts: OFF, | |
sse: OFF, opencl: OFF, wasm: ON | |
} | |
- name: Package | |
os: ubuntu-22.04 | |
generator: Ninja | |
arch: x86_64 | |
compiler: clang | |
vk_sdk_ver: '1.3.290' | |
options: { | |
config: Release, | |
doc: OFF, jni: OFF, loadtests: OpenGL, py: OFF, tools: OFF, tools_cts: OFF, | |
package: YES, sse: OFF, opencl: OFF, wasm: ON | |
} | |
name: ${{ matrix.name }} | |
runs-on: ${{ matrix.os }} | |
env: | |
GIT_LFS_SKIP_SMUDGE: 1 | |
BUILD_DIR: build | |
REL_DESC_FILE: "build/rel_desc.md" | |
# Map test matrix elements to environmental variables, so that scripts launched from CI scripts may react to them. | |
# Some matrix variables have defaults if unspecified by the matrix | |
CMAKE_GEN: ${{ matrix.generator }} | |
ARCH: ${{ matrix.arch }} | |
CONFIGURATION: ${{ matrix.options.config }} | |
PLATFORM: ${{ matrix.options.platform }} | |
FEATURE_DOC: ${{ matrix.options.doc }} | |
FEATURE_JNI: ${{ matrix.options.jni }} | |
FEATURE_LOADTESTS: ${{ matrix.options.loadtests }} | |
FEATURE_PY: ${{ matrix.options.py }} | |
FEATURE_TESTS: ${{ matrix.options.tests && matrix.options.tests || 'ON' }} | |
FEATURE_TOOLS: ${{ matrix.options.tools }} | |
FEATURE_TOOLS_CTS: ${{ matrix.options.tools_cts }} | |
PACKAGE: ${{ matrix.options.package && matrix.options.package || 'NO' }} | |
SUPPORT_OPENCL: ${{ matrix.options.opencl }} | |
SUPPORT_SSE: ${{ matrix.options.sse }} | |
WASM_BUILD: ${{ matrix.options.wasm && matrix.options.wasm || 'OFF' }} | |
WERROR: ${{ matrix.options.werror && matrix.options.werror || 'ON' }} | |
# CC Handled by job step | |
# CXX Handled by job step | |
PYTHON_DIST_DIR: interface/python_binding/dist | |
VULKAN_SDK_VER: ${{ matrix.vk_sdk_ver }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
# Fetch all history to make sure tags are | |
# included (used for version creation) | |
fetch-depth: 0 | |
- name: Set compiler | |
if: matrix.compiler | |
run: | | |
if [ "${{ matrix.compiler }}" = "gcc" ]; then | |
echo "CC=gcc" >> $GITHUB_ENV | |
echo "CXX=g++" >> $GITHUB_ENV | |
elif [ "${{ matrix.compiler }}" = "clang" ]; then | |
echo "CC=clang" >> $GITHUB_ENV | |
echo "CXX=clang++" >> $GITHUB_ENV | |
else | |
echo "Unknown compiler toolchain set" | |
exit 1 | |
fi | |
- name: before_install | |
run: | | |
echo -n "Running on the following GitHub Actions CI runner: " && uname -a | |
echo -n "CMake version on the runner is " && cmake --version | |
echo -e "machine github.com\n login $GITHUB_TOKEN" >> ~/.netrc # Prevent rate limiting on Git LFS. | |
cat ~/.netrc | |
# Need to set uid/gid because, unlike when running docker locally, | |
# /src ends up being owned by the uid/gid running this script and | |
# the recent fix for CVE-2022-24765 in Git causes Git to error | |
# when the repo owner differs from the user. For details see | |
# https://github.blog/2022-04-12-git-security-vulnerability-announced/ | |
docker run -dit --name emscripten --user "$(id -u):$(id -g)" -v $(pwd):/src emscripten/emsdk bash | |
- name: Set up Python 3.11 | |
if: matrix.options.py == 'ON' | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.11.4' | |
- name: before_script | |
run: | | |
if [ "$FEATURE_TOOLS_CTS" = "ON" ]; then | |
git submodule update --init --recursive tests/cts | |
fi | |
# Make sure embedded dates are correct. | |
./install-gitconfig.sh | |
scripts/smudge_date.sh | |
- name: script | |
run: | | |
./scripts/build_wasm_docker.sh | |
- name: Prepare KTX artifacts | |
if: matrix.options.package == 'YES' | |
id: ktx-version | |
run: | | |
KTX_VERSION=`cat $BUILD_DIR/ktx.version` | |
echo "PACKAGE_NAME_SUFFIX=${KTX_VERSION}-Web" >> $GITHUB_ENV | |
# For these artifact uploads, need to take care that only one CLangCL | |
# "package" job for each architecture produces artifacts. A second | |
# job would attempt to upload a same-named artifact. | |
- name: Upload artifact Install Package | |
if: matrix.options.package == 'YES' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: KTX-Software-${{env.PACKAGE_NAME_SUFFIX}} | |
path: ${{env.BUILD_DIR}}/KTX-Software-*-* | |
compression-level: 0 # Installer already compressed. | |
- name: Upload artifact pyktx | |
if: matrix.options.package == 'YES' && matrix.options.py == 'ON' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: pyktx-${{env.PACKAGE_NAME_SUFFIX}} | |
path: ${{env.BUILD_DIR}}/${{env.PYTHON_DIST_DIR}} | |
- name: Upload to Release | |
uses: softprops/action-gh-release@v2 | |
if: matrix.options.package == 'YES' && github.event_name == 'push' && github.ref_type == 'tag' | |
with: | |
draft: true | |
prerelease: true | |
files: | | |
${{env.BUILD_DIR}}/KTX-Software-*-* | |
${{env.BUILD_DIR}}/${{env.PYTHON_DIST_DIR}}/pyktx-* | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |