summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCedric Nugteren <web@cedricnugteren.nl>2023-05-17 17:10:51 +0200
committerGitHub <noreply@github.com>2023-05-17 17:10:51 +0200
commite73f0b51310186c513846ce08c5d70b90d5e7583 (patch)
tree9354311bf4d5a1d397a2ee151ec372553862feee
parent7a3ef92ff26dfd76dc877c1f32d43a73d00d4dd4 (diff)
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
-rw-r--r--.github/workflows/build_and_test.yml2
-rw-r--r--.github/workflows/release.yml97
2 files changed, 98 insertions, 1 deletions
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