ci: use composite workflow #671
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: ci | |
env: | |
GEMINI_CIROOT: ~/ci | |
CMAKE_BUILD_TYPE: Release | |
CMAKE_INSTALL_PREFIX: ~/libgem | |
GEMINI_ROOT: ~/libgem | |
CMAKE_GENERATOR: Ninja | |
HOMEBREW_NO_INSTALL_CLEANUP: 1 | |
CMAKE_BUILD_PARALLEL_LEVEL: 4 | |
# GEMINI_ROOT is used to find Gemini3D by PyGemini | |
on: | |
push: | |
paths: | |
- "**.py" | |
- ".github/workflows/ci.yml" | |
- "src/gemini3d/libraries.json" | |
- "!scripts/**" | |
- "!example/**" | |
- "!Examples/**" | |
jobs: | |
lint: | |
runs-on: ubuntu-latest | |
timeout-minutes: 5 | |
strategy: | |
matrix: | |
os: [ubuntu-latest] | |
python-version: ["3.9", "3.10", "3.11", "3.12"] | |
include: | |
- os: macos-latest | |
python-version: "3.12" | |
- os: windows-latest | |
python-version: "3.12" | |
name: Lint ${{ matrix.os }} Python ${{ matrix.python-version }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- run: python -m pip install -e .[lint] | |
- run: flake8 | |
- run: mypy | |
linux-macos: | |
timeout-minutes: 45 | |
strategy: | |
matrix: | |
python-version: ['3.9', '3.10', '3.11', '3.12'] | |
os: [ubuntu-24.04] | |
include: | |
- os: macos-latest | |
python-version: '3.12' | |
runs-on: ${{ matrix.os }} | |
name: ${{ matrix.os }} Python ${{ matrix.python-version }} | |
env: | |
FC: gfortran-13 | |
steps: | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Git Checkout ${{ github.action_repository }} | |
uses: actions/checkout@v4 | |
- uses: ./.github/workflows/composite-pkg | |
- uses: ./.github/workflows/composite-gemini3d | |
- name: Install Python packages | |
run: python -m pip install .[tests,plots] | |
timeout-minutes: 5 | |
# transient CI download speed | |
- name: Unit and Integration Tests | |
run: pytest | |
timeout-minutes: 15 | |
env: | |
GEMCI_ROOT: ${{ github.workspace }}/gemci | |
# codecov coverage | |
# - run: pip install codecov pytest-cov | |
# - run: pytest --cov --cov-report=xml | |
# - name: Upload coverage to Codecov | |
# uses: codecov/codecov-action@v1 |