on: push: # Sequence of patterns matched against refs/tags tags: - 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10 name: Linux Release jobs: build: name: Upload Release Asset runs-on: ubuntu-20.04 strategy: matrix: configuration: ['release'] compiler: ['gcc'] platform: ['x64'] targetPlatform: ['x64'] steps: - name: select gcc 10 run: | sudo update-alternatives \ --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 \ --slave /usr/bin/g++ g++ /usr/bin/g++-10 \ --slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-10 \ --slave /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-10 \ --slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-10 \ --slave /usr/bin/gcov gcov /usr/bin/gcov-10 \ --slave /usr/bin/gcov-dump gcov-dump /usr/bin/gcov-dump-10 \ --slave /usr/bin/gcov-tool gcov-tool /usr/bin/gcov-tool-10 - name: Checkout code uses: actions/checkout@v3 with: submodules: 'true' fetch-depth: '0' - name: Build release project id: build run: | echo "starting to build..." export CC=${{matrix.compiler}} export CONFIGURATION=${{matrix.configuration}} export ARCH=${{matrix.platform}} export TARGETARCH=${{matrix.targetPlatform}} echo "building..." source ./github_build.sh echo "creating binary archieves..." export SLANG_OS_NAME=linux export SLANG_ARCH_NAME=`uname -p` export TAG_NAME=`git describe --tags` export SLANG_TAG=${TAG_NAME#v} echo "tag:$TAG_NAME" echo "slang-tag:$SLANG_TAG" export SLANG_BINARY_ARCHIVE=slang-${SLANG_TAG}-${SLANG_OS_NAME}-${SLANG_ARCH_NAME}.zip export SLANG_BINARY_ARCHIVE_TAR=slang-${SLANG_TAG}-${SLANG_OS_NAME}-${SLANG_ARCH_NAME}.tar.gz echo "creating zip" zip -r ${SLANG_BINARY_ARCHIVE} bin/*/*/slangc bin/*/*/slangd bin/*/*/libslang.so bin/*/*/libslang-glslang.so bin/*/*/libgfx.so bin/*/*/libslang-llvm.so docs/*.md README.md LICENSE slang.h slang-com-helper.h slang-com-ptr.h slang-tag-version.h slang-gfx.h prelude/*.h echo "creating tar" tar -czf ${SLANG_BINARY_ARCHIVE_TAR} bin/*/*/slangc bin/*/*/slangd bin/*/*/libslang.so bin/*/*/libslang-glslang.so bin/*/*/libgfx.so bin/*/*/libslang-llvm.so docs/*.md README.md LICENSE slang.h slang-com-helper.h slang-com-ptr.h slang-tag-version.h slang-gfx.h prelude/*.h echo "::set-output name=SLANG_BINARY_ARCHIVE::${SLANG_BINARY_ARCHIVE}" echo "::set-output name=SLANG_BINARY_ARCHIVE_TAR::${SLANG_BINARY_ARCHIVE_TAR}" - name: UploadBinary uses: softprops/action-gh-release@v1 with: files: | ${{ steps.build.outputs.SLANG_BINARY_ARCHIVE }} ${{ steps.build.outputs.SLANG_BINARY_ARCHIVE_TAR }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}