| # 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 |
| |
| # TODO: Use actions/upload-artifact and actions/download-artifact to simplify deployment. |
| # TODO: Use composite actions to refactor redundant code. |
| |
| name: Continuous Deployment |
| |
| on: |
| workflow_dispatch: |
| push: |
| branches: |
| - main |
| paths-ignore: |
| - 'README.md' |
| - 'README-spirv-remap.txt' |
| - 'LICENSE.txt' |
| - 'CODE_OF_CONDUCT.md' |
| - 'BUILD.*' |
| - 'WORKSPACE' |
| - 'kokoro/*' |
| - 'make-revision' |
| - 'Android.mk' |
| - '_config.yml' |
| |
| permissions: read-all |
| |
| jobs: |
| linux: |
| runs-on: ${{matrix.os.genus}} |
| permissions: |
| contents: write |
| strategy: |
| fail-fast: false |
| matrix: |
| os: [{genus: ubuntu-20.04, family: linux}] |
| compiler: [{cc: clang, cxx: clang++}, {cc: gcc, cxx: g++}] |
| cmake_build_type: [Debug, Release] |
| steps: |
| - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 |
| - uses: lukka/get-cmake@139aae96315b496d9af1b5e9abe53b15ca7eece8 # v3.28.3 |
| - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0 |
| with: |
| python-version: '3.7' |
| - name: Install Ubuntu Package Dependencies |
| run: | |
| sudo apt-get -qq update |
| sudo apt-get install -y clang-6.0 |
| - 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 .. |
| make -j4 install |
| - name: Test |
| run: | |
| cd build |
| ctest --output-on-failure && |
| cd ../Test && ./runtests |
| - name: Zip |
| if: ${{ matrix.compiler.cc == 'clang' }} |
| env: |
| ARCHIVE: glslang-main-${{matrix.os.family}}-${{matrix.cmake_build_type}}.zip |
| run: | |
| cd build/install |
| zip ${ARCHIVE} \ |
| bin/glslang \ |
| bin/glslangValidator \ |
| include/glslang/* \ |
| include/glslang/**/* \ |
| lib/libGenericCodeGen.a \ |
| lib/libglslang.a \ |
| lib/libglslang-default-resource-limits.a \ |
| lib/libMachineIndependent.a \ |
| lib/libOSDependent.a \ |
| lib/libSPIRV.a \ |
| lib/libSPVRemapper.a \ |
| lib/libSPIRV-Tools.a \ |
| lib/libSPIRV-Tools-opt.a |
| - name: Deploy |
| if: ${{ matrix.compiler.cc == 'clang' }} |
| env: |
| ARCHIVE: glslang-main-${{matrix.os.family}}-${{matrix.cmake_build_type}}.zip |
| uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 |
| with: |
| script: | |
| const script = require('.github/workflows/deploy.js') |
| await script({github, context, core}) |
| |
| macos: |
| runs-on: ${{matrix.os.genus}} |
| permissions: |
| contents: write |
| strategy: |
| fail-fast: false |
| matrix: |
| os: [{genus: macos-11, family: osx}] |
| compiler: [{cc: clang, cxx: clang++}] |
| cmake_build_type: [Debug, Release] |
| steps: |
| - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 |
| - uses: lukka/get-cmake@139aae96315b496d9af1b5e9abe53b15ca7eece8 # v3.28.3 |
| - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0 |
| with: |
| python-version: '3.7' |
| - 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 .. |
| make -j4 install |
| - name: Test |
| run: | |
| cd build |
| ctest --output-on-failure && |
| cd ../Test && ./runtests |
| - name: Zip |
| env: |
| ARCHIVE: glslang-main-${{matrix.os.family}}-${{matrix.cmake_build_type}}.zip |
| run: | |
| cd build/install |
| zip ${ARCHIVE} \ |
| bin/glslang \ |
| bin/glslangValidator \ |
| include/glslang/* \ |
| include/glslang/**/* \ |
| lib/libGenericCodeGen.a \ |
| lib/libglslang.a \ |
| lib/libglslang-default-resource-limits.a \ |
| lib/libMachineIndependent.a \ |
| lib/libOSDependent.a \ |
| lib/libSPIRV.a \ |
| lib/libSPVRemapper.a \ |
| lib/libSPIRV-Tools.a \ |
| lib/libSPIRV-Tools-opt.a |
| - name: Deploy |
| env: |
| ARCHIVE: glslang-main-${{matrix.os.family}}-${{matrix.cmake_build_type}}.zip |
| uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 |
| with: |
| script: | |
| const script = require('.github/workflows/deploy.js') |
| await script({github, context, core}) |
| |
| windows: |
| runs-on: ${{matrix.os.genus}} |
| permissions: |
| contents: write |
| strategy: |
| fail-fast: false |
| matrix: |
| os: [{genus: windows-2019, family: windows}] |
| cmake_build_type: [Debug, Release] |
| steps: |
| - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 |
| - uses: lukka/get-cmake@139aae96315b496d9af1b5e9abe53b15ca7eece8 # v3.28.3 |
| - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0 |
| with: |
| python-version: '3.7' |
| - run: python update_glslang_sources.py |
| - name: Build |
| run: | |
| cmake -S. -Bbuild -G "Visual Studio 16 2019" -A x64 -DCMAKE_INSTALL_PREFIX="$PWD/build/install" |
| cmake --build build --config ${{matrix.cmake_build_type}} --target install |
| - name: Test |
| run: | |
| cd build |
| ctest -C ${{matrix.cmake_build_type}} --output-on-failure |
| cd ../Test && bash runtests |
| - name: Zip |
| if: ${{ matrix.cmake_build_type == 'Debug' }} |
| env: |
| ARCHIVE: glslang-master-${{matrix.os.family}}-Debug.zip |
| run: | |
| cd build/install |
| 7z a ${{env.ARCHIVE}} ` |
| bin/glslang.exe ` |
| bin/glslangValidator.exe ` |
| bin/spirv-remap.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/SPVRemapperd.lib ` |
| lib/SPIRV-Toolsd.lib ` |
| lib/SPIRV-Tools-optd.lib |
| - name: Zip |
| if: ${{ matrix.cmake_build_type == 'Release' }} |
| env: |
| ARCHIVE: glslang-master-${{matrix.os.family}}-Release.zip |
| run: | |
| cd build/install |
| 7z a ${{env.ARCHIVE}} ` |
| bin/glslang.exe ` |
| bin/glslangValidator.exe ` |
| bin/spirv-remap.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/SPVRemapper.lib ` |
| lib/SPIRV-Tools.lib ` |
| lib/SPIRV-Tools-opt.lib |
| - name: Deploy |
| env: |
| ARCHIVE: glslang-master-${{matrix.os.family}}-${{matrix.cmake_build_type}}.zip |
| uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 |
| with: |
| script: | |
| const script = require('.github/workflows/deploy.js') |
| await script({github, context, core}) |