Mangle buffer reference types by block name #963
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
| # NOTE: The following documentation may be useful to maintainers of this workflow. | |
| # Github actions: https://docs.github.com/en/actions | |
| # Github github-script action: https://github.com/actions/github-script | |
| # GitHub REST API: https://docs.github.com/en/rest | |
| # Octokit front-end to the GitHub REST API: https://octokit.github.io/rest.js/v18 | |
| # Octokit endpoint methods: https://github.com/octokit/plugin-rest-endpoint-methods.js/tree/master/docs/repos | |
| # softprops/action-gh-release: https://github.com/softprops/action-gh-release | |
| name: Continuous Deployment | |
| on: | |
| workflow_dispatch: | |
| push: | |
| branches: | |
| - main | |
| paths-ignore: | |
| - 'README.md' | |
| - 'LICENSE.txt' | |
| - 'CODE_OF_CONDUCT.md' | |
| - 'BUILD.*' | |
| - 'WORKSPACE' | |
| - 'kokoro/*' | |
| - 'make-revision' | |
| - 'Android.mk' | |
| - '_config.yml' | |
| tags: | |
| - '[0-9]*.[0-9]*.[0-9]*' | |
| permissions: read-all | |
| jobs: | |
| linux: | |
| runs-on: ${{matrix.os.runner}} | |
| permissions: | |
| contents: write | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [{runner: ubuntu-22.04, platform: linux, arch: x86_64}] | |
| compiler: [{cc: clang, cxx: clang++}, {cc: gcc, cxx: g++}] | |
| cmake_build_type: [Debug, Release] | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| - run: ./update_glslang_sources.py | |
| - name: Build | |
| env: | |
| CC: ${{matrix.compiler.cc}} | |
| CXX: ${{matrix.compiler.cxx}} | |
| run: | | |
| mkdir build && cd build | |
| cmake -DCMAKE_BUILD_TYPE=${{matrix.cmake_build_type}} -DCMAKE_INSTALL_PREFIX=`pwd`/install -DSPIRV_SKIP_EXECUTABLES=ON .. | |
| make -j4 install | |
| - name: Test | |
| run: | | |
| cd build | |
| ctest --output-on-failure | |
| - name: Package | |
| if: ${{ matrix.compiler.cc == 'clang' }} | |
| id: package | |
| shell: bash | |
| env: | |
| BUILD_TYPE: ${{matrix.cmake_build_type}} | |
| PLATFORM: ${{matrix.os.platform}} | |
| ARCH: ${{matrix.os.arch}} | |
| run: | | |
| cd build/install | |
| BUILD_TYPE_LOWER="${BUILD_TYPE,,}" | |
| if [[ "${{ startsWith(github.ref, 'refs/tags/') }}" == "true" ]]; then | |
| VERSION="${{ github.ref_name }}" | |
| ARCHIVE_BASE="glslang-${VERSION}-${PLATFORM}-${ARCH}-${BUILD_TYPE_LOWER}" | |
| else | |
| ARCHIVE_BASE="glslang-main-${PLATFORM}-${ARCH}-${BUILD_TYPE_LOWER}" | |
| fi | |
| FILES=( | |
| bin/glslang | |
| bin/glslangValidator | |
| include/glslang/build_info.h | |
| include/glslang/Include/ResourceLimits.h | |
| include/glslang/Include/glslang_c_interface.h | |
| include/glslang/Include/glslang_c_shader_types.h | |
| include/glslang/Include/visibility.h | |
| include/glslang/MachineIndependent/Versions.h | |
| include/glslang/Public/ResourceLimits.h | |
| include/glslang/Public/ShaderLang.h | |
| include/glslang/Public/resource_limits_c.h | |
| include/glslang/SPIRV/GlslangToSpv.h | |
| include/glslang/SPIRV/Logger.h | |
| include/glslang/SPIRV/SpvTools.h | |
| include/glslang/SPIRV/disassemble.h | |
| include/glslang/SPIRV/spirv.hpp11 | |
| lib/libGenericCodeGen.a | |
| lib/libMachineIndependent.a | |
| lib/libOSDependent.a | |
| lib/libSPIRV.a | |
| lib/libSPIRV-Tools.a | |
| lib/libSPIRV-Tools-opt.a | |
| lib/libglslang.a | |
| lib/libglslang-default-resource-limits.a | |
| ) | |
| # -y stores the glslangValidator symlink as-is rather than dereferencing it. | |
| zip -y "${ARCHIVE_BASE}.zip" "${FILES[@]}" | |
| tar -czf "${ARCHIVE_BASE}.tar.gz" "${FILES[@]}" | |
| echo "ARCHIVE_ZIP=build/install/${ARCHIVE_BASE}.zip" >> $GITHUB_OUTPUT | |
| echo "ARCHIVE_TAR=build/install/${ARCHIVE_BASE}.tar.gz" >> $GITHUB_OUTPUT | |
| - name: Update main-tot tag | |
| if: ${{ matrix.compiler.cc == 'clang' && !startsWith(github.ref, 'refs/tags/') }} | |
| uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 | |
| with: | |
| script: | | |
| await github.rest.git.updateRef({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| ref: 'tags/main-tot', | |
| sha: context.sha | |
| }) | |
| - name: Upload assets | |
| if: ${{ matrix.compiler.cc == 'clang' }} | |
| uses: softprops/action-gh-release@efb35369e0ad2afab669f228072c1b0d510eae64 # v3.0.3 | |
| with: | |
| tag_name: ${{ startsWith(github.ref, 'refs/tags/') && github.ref_name || 'main-tot' }} | |
| fail_on_unmatched_files: true | |
| files: | | |
| ${{steps.package.outputs.ARCHIVE_ZIP}} | |
| ${{steps.package.outputs.ARCHIVE_TAR}} | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| macos: | |
| runs-on: ${{matrix.os.runner}} | |
| permissions: | |
| contents: write | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [{runner: macos-latest, platform: macos, arch: universal}] | |
| compiler: [{cc: clang, cxx: clang++}] | |
| cmake_build_type: [Debug, Release] | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| - run: ./update_glslang_sources.py | |
| - name: Build | |
| env: | |
| CC: ${{matrix.compiler.cc}} | |
| CXX: ${{matrix.compiler.cxx}} | |
| MACOSX_DEPLOYMENT_TARGET: 11.0 | |
| run: | | |
| mkdir build && cd build | |
| cmake -DCMAKE_BUILD_TYPE=${{matrix.cmake_build_type}} -DCMAKE_INSTALL_PREFIX=`pwd`/install -DSPIRV_SKIP_EXECUTABLES=ON "-D CMAKE_OSX_ARCHITECTURES=arm64;x86_64" .. | |
| make -j4 install | |
| - name: Test | |
| run: | | |
| cd build | |
| ctest --output-on-failure | |
| - name: Package | |
| id: package | |
| shell: bash | |
| env: | |
| BUILD_TYPE: ${{matrix.cmake_build_type}} | |
| PLATFORM: ${{matrix.os.platform}} | |
| ARCH: ${{matrix.os.arch}} | |
| run: | | |
| cd build/install | |
| # macOS ships bash 3.2, which lacks ${VAR,,} lowercasing; use tr for portability. | |
| BUILD_TYPE_LOWER=$(echo "${BUILD_TYPE}" | tr '[:upper:]' '[:lower:]') | |
| if [[ "${{ startsWith(github.ref, 'refs/tags/') }}" == "true" ]]; then | |
| VERSION="${{ github.ref_name }}" | |
| ARCHIVE_BASE="glslang-${VERSION}-${PLATFORM}-${ARCH}-${BUILD_TYPE_LOWER}" | |
| else | |
| ARCHIVE_BASE="glslang-main-${PLATFORM}-${ARCH}-${BUILD_TYPE_LOWER}" | |
| fi | |
| FILES=( | |
| bin/glslang | |
| bin/glslangValidator | |
| include/glslang/build_info.h | |
| include/glslang/Include/ResourceLimits.h | |
| include/glslang/Include/glslang_c_interface.h | |
| include/glslang/Include/glslang_c_shader_types.h | |
| include/glslang/Include/visibility.h | |
| include/glslang/MachineIndependent/Versions.h | |
| include/glslang/Public/ResourceLimits.h | |
| include/glslang/Public/ShaderLang.h | |
| include/glslang/Public/resource_limits_c.h | |
| include/glslang/SPIRV/GlslangToSpv.h | |
| include/glslang/SPIRV/Logger.h | |
| include/glslang/SPIRV/SpvTools.h | |
| include/glslang/SPIRV/disassemble.h | |
| include/glslang/SPIRV/spirv.hpp11 | |
| lib/libGenericCodeGen.a | |
| lib/libMachineIndependent.a | |
| lib/libOSDependent.a | |
| lib/libSPIRV.a | |
| lib/libSPIRV-Tools.a | |
| lib/libSPIRV-Tools-opt.a | |
| lib/libglslang.a | |
| lib/libglslang-default-resource-limits.a | |
| ) | |
| # -y stores the glslangValidator symlink as-is rather than dereferencing it. | |
| zip -y "${ARCHIVE_BASE}.zip" "${FILES[@]}" | |
| tar -czf "${ARCHIVE_BASE}.tar.gz" "${FILES[@]}" | |
| echo "ARCHIVE_ZIP=build/install/${ARCHIVE_BASE}.zip" >> $GITHUB_OUTPUT | |
| echo "ARCHIVE_TAR=build/install/${ARCHIVE_BASE}.tar.gz" >> $GITHUB_OUTPUT | |
| - name: Update main-tot tag | |
| if: ${{ !startsWith(github.ref, 'refs/tags/') }} | |
| uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 | |
| with: | |
| script: | | |
| await github.rest.git.updateRef({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| ref: 'tags/main-tot', | |
| sha: context.sha | |
| }) | |
| - name: Upload assets | |
| uses: softprops/action-gh-release@efb35369e0ad2afab669f228072c1b0d510eae64 # v3.0.3 | |
| with: | |
| tag_name: ${{ startsWith(github.ref, 'refs/tags/') && github.ref_name || 'main-tot' }} | |
| fail_on_unmatched_files: true | |
| files: | | |
| ${{steps.package.outputs.ARCHIVE_ZIP}} | |
| ${{steps.package.outputs.ARCHIVE_TAR}} | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| windows: | |
| runs-on: ${{matrix.os.runner}} | |
| permissions: | |
| contents: write | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [{runner: windows-2022, platform: windows, arch: x86_64}] | |
| cmake_build_type: [Debug, Release] | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| - run: python update_glslang_sources.py | |
| - name: Build | |
| run: | | |
| cmake -S. -Bbuild -G "Visual Studio 17 2022" -A x64 -DCMAKE_INSTALL_PREFIX="$PWD/build/install" -DSPIRV_SKIP_EXECUTABLES=ON | |
| cmake --build build --config ${{matrix.cmake_build_type}} --target install | |
| - name: Test | |
| run: | | |
| cd build | |
| ctest -C ${{matrix.cmake_build_type}} --output-on-failure | |
| - name: Package | |
| id: package | |
| shell: bash | |
| env: | |
| BUILD_TYPE: ${{matrix.cmake_build_type}} | |
| PLATFORM: ${{matrix.os.platform}} | |
| ARCH: ${{matrix.os.arch}} | |
| run: | | |
| cd build/install | |
| BUILD_TYPE_LOWER="${BUILD_TYPE,,}" | |
| if [[ "${{ startsWith(github.ref, 'refs/tags/') }}" == "true" ]]; then | |
| VERSION="${{ github.ref_name }}" | |
| ARCHIVE_BASE="glslang-${VERSION}-${PLATFORM}-${ARCH}-${BUILD_TYPE_LOWER}" | |
| else | |
| ARCHIVE_BASE="glslang-main-${PLATFORM}-${ARCH}-${BUILD_TYPE_LOWER}" | |
| fi | |
| if [ "${BUILD_TYPE}" == "Debug" ]; then | |
| 7z a "${ARCHIVE_BASE}.zip" \ | |
| bin/glslang.exe \ | |
| include/glslang/* \ | |
| lib/GenericCodeGend.lib \ | |
| lib/glslangd.lib \ | |
| lib/glslang-default-resource-limitsd.lib \ | |
| lib/MachineIndependentd.lib \ | |
| lib/OSDependentd.lib \ | |
| lib/SPIRVd.lib \ | |
| lib/SPIRV-Toolsd.lib \ | |
| lib/SPIRV-Tools-optd.lib | |
| else | |
| 7z a "${ARCHIVE_BASE}.zip" \ | |
| bin/glslang.exe \ | |
| include/glslang/* \ | |
| lib/GenericCodeGen.lib \ | |
| lib/glslang.lib \ | |
| lib/glslang-default-resource-limits.lib \ | |
| lib/MachineIndependent.lib \ | |
| lib/OSDependent.lib \ | |
| lib/SPIRV.lib \ | |
| lib/SPIRV-Tools.lib \ | |
| lib/SPIRV-Tools-opt.lib | |
| fi | |
| echo "ARCHIVE_ZIP=build/install/${ARCHIVE_BASE}.zip" >> $GITHUB_OUTPUT | |
| - name: Update main-tot tag | |
| if: ${{ !startsWith(github.ref, 'refs/tags/') }} | |
| uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 | |
| with: | |
| script: | | |
| await github.rest.git.updateRef({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| ref: 'tags/main-tot', | |
| sha: context.sha | |
| }) | |
| - name: Upload assets | |
| uses: softprops/action-gh-release@efb35369e0ad2afab669f228072c1b0d510eae64 # v3.0.3 | |
| with: | |
| tag_name: ${{ startsWith(github.ref, 'refs/tags/') && github.ref_name || 'main-tot' }} | |
| fail_on_unmatched_files: true | |
| files: ${{steps.package.outputs.ARCHIVE_ZIP}} | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |