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
pull/471/head
Cedric Nugteren 2023-05-17 17:10:51 +02:00 committed by GitHub
parent 7a3ef92ff2
commit e73f0b5131
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 98 additions and 1 deletions

View File

@ -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

97
.github/workflows/release.yml vendored 100644
View File

@ -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