| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204 |
- # 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'
- - '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-22.04, family: linux}]
- compiler: [{cc: clang, cxx: clang++}, {cc: gcc, cxx: g++}]
- cmake_build_type: [Debug, Release]
- steps:
- - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- - uses: lukka/get-cmake@2ecc21724e5215b0e567bc399a2602d2ecb48541 # v4.1.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 ..
- make -j4 install
- - name: Test
- run: |
- cd build
- ctest --output-on-failure
- - 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/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@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
- 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-13, family: osx}]
- compiler: [{cc: clang, cxx: clang++}]
- cmake_build_type: [Debug, Release]
- steps:
- - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- - uses: lukka/get-cmake@2ecc21724e5215b0e567bc399a2602d2ecb48541 # v4.1.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 ..
- make -j4 install
- - name: Test
- run: |
- cd build
- ctest --output-on-failure
- - 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/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@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
- 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-2022, family: windows}]
- cmake_build_type: [Debug, Release]
- steps:
- - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- - uses: lukka/get-cmake@2ecc21724e5215b0e567bc399a2602d2ecb48541 # v4.1.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"
- 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: 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 `
- 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
- - 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 `
- 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
- - name: Deploy
- env:
- ARCHIVE: glslang-master-${{matrix.os.family}}-${{matrix.cmake_build_type}}.zip
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
- with:
- script: |
- const script = require('.github/workflows/deploy.js')
- await script({github, context, core})
|