Skip to content

Commit

Permalink
Return GitHub actions.
Browse files Browse the repository at this point in the history
  • Loading branch information
Dimitri Rusin committed May 7, 2024
1 parent 6427347 commit e6b2a93
Show file tree
Hide file tree
Showing 5 changed files with 255 additions and 21 deletions.
81 changes: 81 additions & 0 deletions .github/workflows/macos.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
name: MacOS

on: [push]

env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Debug


jobs:
build-test-cpp:
runs-on: macos-12
strategy:
matrix:
rust: [stable, nightly]
compiler: [clang++]

steps:
- uses: actions/checkout@v2
with:
rust-version: ${{ matrix.rust }}
submodules: true

- name: Create Build Environment
# Some projects don't allow in-source building, so create a separate build directory
# We'll use this as our working directory for all subsequent commands
env:
CXX: ${{ matrix.compiler }}
run: cmake -E make_directory ${{runner.workspace}}/build

- name: Configure CMake
# Use a bash shell so we can use the same syntax for environment variable
# access regardless of the host operating system
shell: bash
env:
CXX: ${{ matrix.compiler }}
working-directory: ${{runner.workspace}}/build
# Note the current convention is to use the -S and -B options here to specify source
# and build directories, but this is only available with CMake 3.13 and higher.
# The CMake binaries on the Github Actions machines are (as of this writing) 3.12
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE

- name: Build
working-directory: ${{runner.workspace}}/build
shell: bash
env:
CXX: ${{ matrix.compiler }}
# Execute the build. You can specify a specific target with "--target <NAME>"
run: cmake --build . --config $BUILD_TYPE --target test_ioh

- name: Test
working-directory: ${{runner.workspace}}/build
shell: bash
run: tests/test_ioh

build-test-python:
runs-on: macos-latest
strategy:
matrix:
python-version: ["3.6.x", "3.7.x", "3.8.x", "3.9.x", "3.10.x", "3.11.x"]
compiler: [clang++]
architecture: [x64]
steps:
- uses: actions/checkout@v2
with:
submodules: true
- name: Set up Python
uses: actions/setup-python@v2
env:
CXX: ${{ matrix.compiler }}
with:
python-version: ${{matrix.python-version}}
architecture: ${{matrix.architecture}}
- name: Install library
run: |
brew install ninja
python -m pip install --upgrade pip
pip install mypy xmltodict wheel scikit-build
pip install -e . -v
- name: Run unit tests
run: python -m unittest -v
56 changes: 56 additions & 0 deletions .github/workflows/python-publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: Upload Python Package

on:
release:
types: [created]

jobs:
build_wheels:
name: Build wheels on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
# macos-13 is an intel runner, macos-14 is apple silicon
os: [ubuntu-22.04, windows-2022, macos-13, macos-14]
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Build wheels
uses: pypa/cibuildwheel@v2.16.5
env:
CIBW_SKIP: pp*
- uses: actions/upload-artifact@v4
with:
name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
path: ./wheelhouse/*.whl
build_sdist:
name: Build source distribution
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Build sdist
run: pipx run build --sdist

- uses: actions/upload-artifact@v4
with:
name: cibw-sdist
path: dist/*.tar.gz

upload_pypi:
needs: [build_wheels, build_sdist]
runs-on: ubuntu-latest
environment: pypi
permissions:
id-token: write
steps:
- uses: actions/download-artifact@v4
with:
# unpacks all CIBW artifacts into dist/
pattern: cibw-*
path: dist
merge-multiple: true
- uses: pypa/gh-action-pypi-publish@release/v1


93 changes: 93 additions & 0 deletions .github/workflows/ubuntu.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
name: Ubuntu

on: [push]

env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Debug


jobs:
build-test-cpp:
runs-on: ubuntu-20.04
strategy:
matrix:
rust: [stable, nightly]
compiler: [g++-10, g++-9, g++-8, g++-7]

steps:
- uses: actions/checkout@v2
with:
rust-version: ${{ matrix.rust }}
submodules: true

- name: Install dependencies
shell: bash
run: |
sudo apt-get update
sudo apt-get install doxygen python3-setuptools python3-dev python3-wheel -y
pip3 install wheel
- name: Create Build Environment
# Some projects don't allow in-source building, so create a separate build directory
# We'll use this as our working directory for all subsequent commands
env:
CXX: ${{ matrix.compiler }}
run: |
sudo apt-get update
sudo apt-get install ${{ matrix.compiler }} -y
git submodule status
cmake -E make_directory ${{runner.workspace}}/build
- name: Configure CMake
# Use a bash shell so we can use the same syntax for environment variable
# access regardless of the host operating system
shell: bash
env:
CXX: ${{ matrix.compiler }}
working-directory: ${{runner.workspace}}/build
# Note the current convention is to use the -S and -B options here to specify source
# and build directories, but this is only available with CMake 3.13 and higher.
# The CMake binaries on the Github Actions machines are (as of this writing) 3.12
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE

- name: Build
working-directory: ${{runner.workspace}}/build
shell: bash
env:
CXX: ${{ matrix.compiler }}
# Execute the build. You can specify a specific target with "--target <NAME>"
run: cmake --build . --config $BUILD_TYPE --target test_ioh

- name: Test
working-directory: ${{runner.workspace}}/build
shell: bash
run: tests/test_ioh

build-test-python:
runs-on: ubuntu-20.04
strategy:
matrix:
python-version: ["3.6.x", "3.7.x", "3.8.x", "3.9.x", "3.10.x", "3.11.x"]
compiler: [g++-10]
architecture: [x64]
steps:
- uses: actions/checkout@v2
with:
submodules: true
- name: Set up Python
uses: actions/setup-python@v2
env:
CXX: ${{ matrix.compiler }}
with:
python-version: ${{matrix.python-version}}
architecture: ${{matrix.architecture}}
- name: Install library
run: |
sudo apt-get update -y
sudo apt-get install ninja-build -y
python -m pip install --upgrade pip
pip install mypy xmltodict wheel scikit-build
pip install -e . -v
- name: Run unit tests
run: python -m unittest -v
25 changes: 25 additions & 0 deletions .github/workflows/windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,3 +40,28 @@ jobs:
working-directory: ${{runner.workspace}}/build
shell: bash
run: tests/Debug/test_ioh.exe

build-test-python:
runs-on: windows-2022
strategy:
matrix:
python-version: ["3.6.x", "3.7.x", "3.8.x", "3.9.x", "3.10.x", "3.11.x"]
architecture: [x64, x86]

steps:
- uses: actions/checkout@v2
with:
submodules: true

- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: ${{matrix.python-version}}
architecture: ${{matrix.architecture}}
- name: Install library
run: |
python -m pip install --upgrade pip
pip install mypy xmltodict wheel
pip install -e . -v
- name: Run unit tests
run: python -m unittest -v
21 changes: 0 additions & 21 deletions workstory.md

This file was deleted.

0 comments on commit e6b2a93

Please sign in to comment.