From e73f0b51310186c513846ce08c5d70b90d5e7583 Mon Sep 17 00:00:00 2001 From: Cedric Nugteren Date: Wed, 17 May 2023 17:10:51 +0200 Subject: Add Github Actions release script (#469) * Add first version of release script * Several fixes for the Windows release job * Install OpenCL for Windows release * Fix issue with environment variable * Set OpenCL root * Fix zipping in Windows build --- .github/workflows/build_and_test.yml | 2 +- .github/workflows/release.yml | 97 ++++++++++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 5fe1eb25..59487fd8 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -22,7 +22,7 @@ jobs: - name: Install requirements for Ubuntu run: | sudo apt-get update - sudo apt-get install -yq cmake ninja-build ocl-icd-opencl-dev opencl-c-headers libopenblas-dev --no-install-recommends + sudo apt-get install -yq ninja-build ocl-icd-opencl-dev opencl-c-headers libopenblas-dev --no-install-recommends if: ${{ matrix.config.os == 'ubuntu-latest' }} - name: Install requirements for macOS diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..98c8c536 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,97 @@ +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 ${{env.RELEASE_NAME}} + cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DTESTS=OFF -DCLIENTS=OFF -DSAMPLES=ON -DCMAKE_INSTALL_PREFIX=${{env.RELEASE_NAME}} -DOPENCL_ROOT=C:/vcpkg/packages/opencl_x64-windows + + - name: Compile the code + run: cmake --build build + + - name: Package the code + run: | + cmake --build build --target install + 7z a -r ${{env.RELEASE_NAME}}.7z ${{env.RELEASE_NAME}} + + - name: Upload the release + uses: actions/upload-artifact@v3 + with: + name: ${{env.RELEASE_NAME}} + path: ${{env.RELEASE_NAME}}.7z -- cgit v1.2.3