name: CLBlast release on: workflow_dispatch: inputs: version: description: "Version of the form 1.5.3" required: true jobs: release_linux_and_macos: strategy: matrix: config: [ {name: linux, os: ubuntu-20.04, arch: x86_64, c_compiler: gcc-9, cpp_compiler: g++-9}, {name: macos, os: macos-11, arch: x86_64, c_compiler: clang, cpp_compiler: clang++}, ] runs-on: ${{ matrix.config.os }} env: RELEASE_NAME: CLBlast-${{ github.event.inputs.version }}-${{ matrix.config.name }}-${{ matrix.config.arch }} steps: - uses: actions/checkout@v3 - name: Install requirements for Ubuntu run: | sudo apt-get update sudo apt-get install -yq ocl-icd-opencl-dev opencl-c-headers --no-install-recommends if: ${{ matrix.config.name == 'linux' }} - name: Run CMake run: | mkdir ${{env.RELEASE_NAME}} export CC=${{ matrix.config.c_compiler }} export CXX=${{ matrix.config.cpp_compiler }} cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DTESTS=OFF -DCLIENTS=OFF -DSAMPLES=ON -DCMAKE_INSTALL_PREFIX=${{env.RELEASE_NAME}} - name: Compile the code run: cmake --build build - name: Package the code run: | cmake --build build --target install tar -cvf ${{env.RELEASE_NAME}}.tar.gz ${{env.RELEASE_NAME}} - name: Upload the release uses: actions/upload-artifact@v3 with: name: ${{env.RELEASE_NAME}} path: ${{env.RELEASE_NAME}}.tar.gz release_windows: strategy: matrix: config: [ {name: windows, os: windows-2019, arch: x64}, ] runs-on: ${{ matrix.config.os }} env: RELEASE_NAME: CLBlast-${{ github.event.inputs.version }}-${{ matrix.config.name }}-${{ matrix.config.arch }} steps: - uses: actions/checkout@v3 - name: Set up MSVC uses: ilammy/msvc-dev-cmd@v1 - name: Install OpenCL run: vcpkg.exe --triplet=${{ matrix.config.arch }}-windows install opencl - name: Run CMake run: | mkdir clblast_release_dir cmake -S . -B build -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DTESTS=OFF -DCLIENTS=OFF -DSAMPLES=ON -DCMAKE_INSTALL_PREFIX=clblast_release_dir -DOPENCL_ROOT=C:/vcpkg/packages/opencl_x64-windows - name: Compile the code run: cmake --build build --config Release - name: Package the code run: | cmake --build build --target install 7z a -r ${{env.RELEASE_NAME}}.7z clblast_release_dir - name: Upload the release uses: actions/upload-artifact@v3 with: name: ${{env.RELEASE_NAME}} path: ${{env.RELEASE_NAME}}.7z