Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switched CI to GHA #239

Merged
merged 3 commits into from
Feb 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
90 changes: 90 additions & 0 deletions .github/workflows/linux.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
name: Linux
on:
workflow_dispatch:
pull_request:
push:
branches: [master]
concurrency:
group: ${{ github.workflow }}-${{ github.job }}-${{ github.ref }}
cancel-in-progress: true
defaults:
run:
shell: bash -e -l {0}
jobs:
build:
runs-on: ubuntu-20.04
name: ${{ matrix.sys.compiler }} ${{ matrix.sys.version }} - ${{ matrix.sys.blas }}
strategy:
fail-fast: false
matrix:
sys:
- {compiler: gcc, version: '8', blas: OpenBLAS}
- {compiler: gcc, version: '8', blas: mkl}
- {compiler: gcc, version: '9', blas: OpenBLAS}
- {compiler: gcc, version: '9', blas: mkl}
- {compiler: gcc, version: '10', blas: OpenBLAS}
- {compiler: gcc, version: '10', blas: mkl}
- {compiler: gcc, version: '11', blas: OpenBLAS}
- {compiler: gcc, version: '11', blas: mkl}
- {compiler: clang, version: '15', blas: OpenBLAS}
- {compiler: clang, version: '15', blas: mkl}
- {compiler: clang, version: '16', blas: OpenBLAS}
- {compiler: clang, version: '16', blas: mkl}

steps:

- name: Setup GCC
if: ${{ matrix.sys.compiler == 'gcc' }}
run: |
GCC_VERSION=${{ matrix.sys.version }}
sudo apt-get update
sudo apt-get --no-install-suggests --no-install-recommends install g++-$GCC_VERSION
CC=gcc-$GCC_VERSION
echo "CC=$CC" >> $GITHUB_ENV
CXX=g++-$GCC_VERSION
echo "CXX=$CXX" >> $GITHUB_ENV

- name: Setup clang
if: ${{ matrix.sys.compiler == 'clang' }}
run: |
LLVM_VERSION=${{ matrix.sys.version }}
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - || exit 1
sudo add-apt-repository "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-$LLVM_VERSION main" || exit 1
sudo apt-get update || exit 1
sudo apt-get --no-install-suggests --no-install-recommends install clang-$LLVM_VERSION || exit 1
sudo apt-get --no-install-suggests --no-install-recommends install g++-9 g++-9-multilib || exit 1
sudo ln -s /usr/include/asm-generic /usr/include/asm
CC=clang-$LLVM_VERSION
echo "CC=$CC" >> $GITHUB_ENV
CXX=clang++-$LLVM_VERSION
echo "CXX=$CXX" >> $GITHUB_ENV

- name: Checkout code
uses: actions/checkout@v3

- name: Set conda environment
uses: mamba-org/setup-micromamba@main
with:
environment-name: myenv
environment-file: environment-dev.yml
init-shell: bash
cache-downloads: true

- name: Install mkl
if: ${{ matrix.sys.blas == 'mkl' }}
run: micromamba install mkl

- name: Install OpenBLAS
if: ${{ matrix.sys.blas == 'OpenBLAS' }}
run: micromamba install openblas==0.3 blas-devel

- name: Configure using CMake
run: cmake -Bbuild -DDOWNLOAD_GTEST=ON -DCMAKE_PREFIX_PATH=$CONDA_PREFIX -DCMAKE_C_COMPILER=$CC -DCMAKE_CXX_COMPILER=$CXX -DCMAKE_SYSTEM_IGNORE_PATH=/usr/lib

- name: Build
working-directory: build
run: cmake --build . --target test_xtensor_blas --parallel 8

- name: Run tests
working-directory: build/test
run: ./test_xtensor_blas
49 changes: 49 additions & 0 deletions .github/workflows/osx.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: OSX
on:
workflow_dispatch:
pull_request:
push:
branches: [master]
concurrency:
group: ${{ github.workflow }}-${{ github.job }}-${{ github.ref }}
cancel-in-progress: true
defaults:
run:
shell: bash -e -l {0}
jobs:
build:
runs-on: macos-${{ matrix.os }}
name: macos-${{ matrix.os }} - mkl
strategy:
fail-fast: false
matrix:
os:
- 11
- 12

steps:

- name: Checkout code
uses: actions/checkout@v3

- name: Set conda environment
uses: mamba-org/setup-micromamba@main
with:
environment-name: myenv
environment-file: environment-dev.yml
init-shell: bash
cache-downloads: true

- name: Install mkl
run: micromamba install mkl

- name: Configure using CMake
run: cmake -Bbuild -DDOWNLOAD_GTEST=ON -DCMAKE_PREFIX_PATH=$CONDA_PREFIX -DCMAKE_SYSTEM_IGNORE_PATH=/usr/lib

- name: Build
working-directory: build
run: cmake --build . --target test_xtensor_blas --parallel 8

- name: Run tests
working-directory: build/test
run: ./test_xtensor_blas
62 changes: 62 additions & 0 deletions .github/workflows/windows.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
name: Windows
on:
workflow_dispatch:
pull_request:
push:
branches: [master]
concurrency:
group: ${{ github.workflow }}-${{ github.job }}-${{ github.ref }}
cancel-in-progress: true
defaults:
run:
shell: bash -e -l {0}
jobs:
build:
runs-on: ${{ matrix.runs-on }}
name: ${{ matrix.sys.compiler }}
strategy:
fail-fast: false
matrix:
runs-on: [windows-latest]
sys:
- {compiler: default}
#- {compiler: clang}

steps:

- name: Setup MSVC
if: matrix.sys.compiler == 'default'
uses: ilammy/msvc-dev-cmd@v1

- name: Setup clang
if: matrix.sys.compiler == 'clang'
run: |
echo "CC=clang" >> $GITHUB_ENV
echo "CXX=clang++" >> $GITHUB_ENV

- name: Checkout code
uses: actions/checkout@v3

- name: Set conda environment
uses: mamba-org/setup-micromamba@main
with:
environment-name: myenv
environment-file: environment-dev.yml
init-shell: bash
cache-downloads: true
create-args: |
ninja

- name: Install mkl
run: micromamba install mkl-devel

- name: Configure using CMake
run: cmake -Bbuild -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX -DDOWNLOAD_GTEST=ON -G Ninja

- name: Build
working-directory: build
run: cmake --build . --target test_xtensor_blas --parallel 8

- name: Run tests
working-directory: build/test
run: ./test_xtensor_blas
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
# The full license is in the file LICENSE, distributed with this software. #
############################################################################

cmake_minimum_required(VERSION 3.1)
cmake_minimum_required(VERSION 3.8)
project(xtensor-blas)

set(INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include)
Expand Down
8 changes: 4 additions & 4 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ trigger:
- master

jobs:
- template: ./.azure-pipelines/azure-pipelines-win.yml
- template: ./.azure-pipelines/azure-pipelines-linux-clang.yml
- template: ./.azure-pipelines/azure-pipelines-linux-gcc.yml
- template: ./.azure-pipelines/azure-pipelines-osx.yml
#- template: ./.azure-pipelines/azure-pipelines-win.yml
#- template: ./.azure-pipelines/azure-pipelines-linux-clang.yml
#- template: ./.azure-pipelines/azure-pipelines-linux-gcc.yml
#- template: ./.azure-pipelines/azure-pipelines-osx.yml
4 changes: 2 additions & 2 deletions readthedocs.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
version: 2

build:
os: "ubuntu-22.04"
os: ubuntu-22.04
tools:
python: "mambaforge-22.9"
python: mambaforge-22.9

conda:
environment: docs/environment.yml
2 changes: 1 addition & 1 deletion test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
# The full license is in the file LICENSE, distributed with this software. #
############################################################################

cmake_minimum_required(VERSION 3.1)
cmake_minimum_required(VERSION 3.8)

if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
project(xtensor-blas-test)
Expand Down
Loading