Skip to content

Commit

Permalink
Add reusable workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
NimaSarajpoor committed Feb 17, 2024
1 parent 0bd21a3 commit 37ba082
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 125 deletions.
137 changes: 12 additions & 125 deletions .github/workflows/github-actions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,136 +6,23 @@ on:
branches: main
jobs:
minimum-version-testing:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: ['3.8']
steps:
- uses: actions/checkout@v4
- name: Set Up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Display Python Version
run: python -c "import sys; print(sys.version)"
shell: bash
- name: Generate Minimum Requirements File
run: sed 's/>/=/g' requirements.txt | sed 's/$/\.*/g' > requirements.min.txt
shell: bash
- name: Install Minimum Requirements
run: python -m pip install --upgrade -r requirements.min.txt
shell: bash
- name: Install STUMPY And Other Dependencies
run: python -m pip install --editable .[ci]
shell: bash
- name: Run Black
run: black --check --diff ./
shell: bash
- name: Run Flake8
run: flake8 ./
shell: bash
- name: Link OpenMP
run: |
if [ "$RUNNER_OS" == "macOS" ]; then
brew link --force libomp
fi
shell: bash
- name: Show Full Numba Environment
run: python -m numba -s
shell: bash
- name: Run Unit Tests
run: ./test.sh unit
shell: bash
uses: ./.github/workflows/reusable-workflow.yml@main
with:
python-version: '3.8'
test-type: 'unit'
unit-testing:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
steps:
- uses: actions/checkout@v4
- name: Set Up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Display Python Version
run: python -c "import sys; print(sys.version)"
shell: bash
- name: Install STUMPY And Other Dependencies
run: python -m pip install --editable .[ci]
shell: bash
- name: Run Black
run: black --check --diff ./
shell: bash
- name: Run Flake8
run: flake8 ./
shell: bash
- name: Link OpenMP
run: |
if [ "$RUNNER_OS" == "macOS" ]; then
# Fix libiomp5.dylib
echo "Install OpenMP via Conda"
conda install -c intel -y openmp
echo "Checking $CONDA/lib for OpenMP"
ls $CONDA/lib/libiomp5.dylib
echo "Changing @rpath for the omppool.cpython-x-darwin.so shared object to look in $CONDA/lib"
ls "$(python -c 'import site; print(site.getsitepackages()[0])')"/numba/np/ufunc/omppool.*.so | xargs install_name_tool -change @rpath/libiomp5.dylib $CONDA/lib/libiomp5.dylib
# Fix libomp.dylib
echo "Linking OpenMP into /usr/local/lib"
brew link --force libomp
echo "Checking /usr/local/lib for OpenMP"
ls /usr/local/lib/libomp.dylib
echo "Changing @rpath for the omppool.cpython-x-darwin.so shared object to look in /usr/local/lib"
ls "$(python -c 'import site; print(site.getsitepackages()[0])')"/numba/np/ufunc/omppool.*.so | xargs install_name_tool -change @rpath/libomp.dylib /usr/local/lib/libomp.dylib
echo "Checking Numba OpenMP Access"
python -c "from numba.np.ufunc import omppool"
fi
shell: bash
- name: Show Full Numba Environment
run: python -m numba -s
shell: bash
- name: Run Unit Tests
run: ./test.sh unit
shell: bash
uses: ./.github/workflows/reusable-workflow.yml@main
with:
python-version: ${{ matrix.python-version }}
test-type: 'unit'
coverage-testing:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
steps:
- uses: actions/checkout@v4
- name: Set Up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Display Python Version
run: python -c "import sys; print(sys.version)"
shell: bash
- name: Install STUMPY And Other Dependencies
run: python -m pip install --editable .[ci]
shell: bash
- name: Run Black
run: black --check --diff ./
shell: bash
- name: Run Flake8
run: flake8 ./
shell: bash
- name: Link OpenMP
run: |
if [ "$RUNNER_OS" == "macOS" ]; then
brew link --force libomp
fi
shell: bash
- name: Show Full Numba Environment
run: python -m numba -s
shell: bash
- name: Run Coverage Tests
run: ./test.sh coverage
shell: bash
- name: Check Coverage Report
run: coverage report -m --fail-under=100 --skip-covered --omit=setup.py,docstring.py,min.py,stumpy/cache.py
shell: bash
- name: Upload Coverage Tests Results
uses: codecov/codecov-action@v4
uses: ./.github/workflows/reusable-workflow.yml@main
with:
python-version: ${{ matrix.python-version }}
test-type: 'coverage'
46 changes: 46 additions & 0 deletions .github/workflows/resuable-workflow.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Reusable Workflow
on:
workflow_call:
inputs:
python-version:
required: true
type: string
test-type:
required: true
type: string
jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
steps:
- uses: actions/checkout@v4
- name: Set Up Python
uses: actions/setup-python@v5
with:
python-version: ${{ inputs.python-version }}
- name: Display Python Version
run: python -c "import sys; print(sys.version)"
shell: bash
- name: Install STUMPY And Other Dependencies
run: python -m pip install --editable .[ci]
shell: bash
- name: Run Black
run: black --check --diff ./
shell: bash
- name: Run Flake8
run: flake8 ./
shell: bash
- name: Link OpenMP
run: |
if [ "$RUNNER_OS" == "macOS" ]; then
brew link --force libomp
fi
shell: bash
- name: Show Full Numba Environment
run: python -m numba -s
shell: bash
- name: Run Tests
run: ./test.sh ${{ inputs.test-type }}
shell: bash

0 comments on commit 37ba082

Please sign in to comment.