Skip to content

ddsaasdf

ddsaasdf #63

Workflow file for this run

# for github runner images, see: https://github.com/actions/runner-images?tab=readme-ov-file#available-images
name: interpret-CI
on:
push:
pull_request:
workflow_dispatch:
schedule:
- cron: "0 12 * * *"
jobs:
bld:
strategy:
matrix:
include:
- name: linux_release_64
image: ubuntu-20.04
options: "-release_64"
asm: "-asm"
- name: linux_debug_64
image: ubuntu-20.04
options: "-debug_64"
asm: ""
- name: mac_release_64
image: macos-13 # macos-13 is an intel based mac
options: "-release_64"
asm: "-asm"
- name: mac_debug_64
image: macos-13 # macos-13 is an intel based mac
options: "-debug_64"
asm: ""
- name: mac_release_arm
image: macos-14 # macos-14 is an ARM based mac
options: "-release_arm"
asm: "-asm"
- name: mac_debug_arm
image: macos-14 # macos-14 is an ARM based mac
options: "-debug_arm"
asm: ""
- name: win_release_64
image: windows-2022
options: "-release_64"
asm: ""
- name: win_debug_64
image: windows-2022
options: "-debug_64"
asm: ""
runs-on: ${{ matrix.image }}
steps:
- name: Check out repo
uses: actions/checkout@v4
- name: Build on Windows
if: startsWith(matrix.image, 'windows')
run: |
$env:PATH += ';C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin'
.\build.bat ${{ matrix.options }} ${{ matrix.asm }}
- name: Build on Linux
if: startsWith(matrix.image, 'ubuntu')
run: |
sudo apt --yes update
sudo apt --yes install nvidia-cuda-toolkit
/bin/sh ./build.sh ${{ matrix.options }} ${{ matrix.asm }}
- name: Build on macOS
if: startsWith(matrix.image, 'macos')
run: |
/bin/sh ./build.sh ${{ matrix.options }} ${{ matrix.asm }}
- name: Publish shared library
uses: actions/upload-artifact@v4
with:
name: libebm_${{ matrix.name }}
path: bld/lib
- name: Publish assembly
if: ${{ matrix.asm != '' }}
uses: actions/upload-artifact@v4
with:
name: asm_${{ matrix.name }}
path: bld/asm/
vis:
runs-on: ubuntu-20.04
steps:
- name: Check out repo
uses: actions/checkout@v4
- name: Build vis
run: |
cd shared/vis
npm install
npm run build-prod
- name: Publish interpret-inline.js library
uses: actions/upload-artifact@v4
with:
name: vis
path: shared/vis/dist
npm:
runs-on: ubuntu-20.04
steps:
- name: Check out repo
uses: actions/checkout@v4
- name: Build npm package
run: |
cd shared/vis
npm install
npm run build-prod
npm pack
mkdir pkg
cp *.tgz pkg/
- name: Publish npm package
uses: actions/upload-artifact@v4
with:
name: npm
path: shared/vis/pkg
R:
runs-on: ubuntu-20.04
steps:
- name: Check out repo
uses: actions/checkout@v4
- name: Build R package
run: |
cd R
sudo apt --yes update
sudo apt --yes install texlive-latex-base texlive-fonts-extra
Rscript build.R
- name: Display errors
if: failure()
run: cat bld/tmp/R/interpret.Rcheck/00install.out
- name: Publish R package
uses: actions/upload-artifact@v4
with:
name: R
path: bld/R
sdist:
runs-on: ubuntu-20.04
steps:
- name: Check out repo
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: 3.9
- name: Build sdist package
run: |
python -m pip install --upgrade pip setuptools wheel
cd python/interpret-core
python setup.py sdist -d ../../bld/sdist
cd ../interpret
python setup.py sdist -d ../../bld/sdist
- name: Publish sdist package
uses: actions/upload-artifact@v4
with:
name: sdist
path: bld/sdist
bdist:
runs-on: ubuntu-20.04
needs: [bld, vis]
steps:
- name: Check out repo
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: 3.9
- name: Download libebm artifacts
uses: actions/download-artifact@v4
with:
pattern: libebm_*
merge-multiple: true
path: python/interpret-core/interpret/root/bld/lib/
- name: Download vis artifact
uses: actions/download-artifact@v4
with:
name: vis
path: python/interpret-core/interpret/root/bld/lib/
- name: Build bdist package
run: |
python -m pip install --upgrade pip setuptools wheel
cd python/interpret-core
python setup.py bdist_wheel -d ../../bld/bdist
cd ../interpret
python setup.py bdist_wheel -d ../../bld/bdist
- name: Publish bdist package
uses: actions/upload-artifact@v4
with:
name: bdist
path: bld/bdist
testC:
needs: [bld]
strategy:
matrix:
include:
- name: linux_release_64
image: ubuntu-latest
options: "-release_64"
existing: "-existing_release_64"
scheduled: "-valgrind"
- name: linux_debug_64
image: ubuntu-latest
options: "-debug_64"
existing: "-existing_debug_64"
scheduled: "-valgrind"
- name: linux_release_32
image: ubuntu-latest
options: "-release_32"
existing: ""
scheduled: "-valgrind"
- name: linux_debug_32
image: ubuntu-latest
options: "-debug_32"
existing: ""
scheduled: "-valgrind"
- name: mac_release_64
image: macos-13 # macos-13 is an intel based mac
options: "-release_64"
existing: "-existing_release_64"
scheduled: ""
- name: mac_debug_64
image: macos-13 # macos-13 is an intel based mac
# don't use the existing debug library since we want to rebuild with asan
options: "-debug_64 -asan"
existing: ""
scheduled: ""
- name: mac_release_arm
image: macos-latest
options: "-release_arm"
existing: "-existing_release_arm"
scheduled: ""
- name: mac_debug_arm
image: macos-latest
# don't use the existing debug library since we want to rebuild with asan
options: "-debug_arm -asan"
existing: ""
scheduled: ""
- name: win_release_64
image: windows-latest
options: "-release_64"
existing: "-existing_release_64"
scheduled: "-analysis"
- name: win_debug_64
image: windows-latest
options: "-debug_64"
existing: "-existing_debug_64"
scheduled: ""
- name: win_release_32
image: windows-latest
options: "-release_32"
existing: ""
scheduled: "-analysis"
- name: win_debug_32
image: windows-latest
options: "-debug_32"
existing: ""
scheduled: ""
runs-on: ${{ matrix.image }}
steps:
- name: Check out repo
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: 3.9
- name: Download libebm artifact
if: ${{ matrix.existing != '' }}
uses: actions/download-artifact@v4
with:
name: libebm_${{ matrix.name }}
path: bld/lib
- name: mac test_native
if: ${{ startsWith(matrix.image, 'macos') }}
run: |
/bin/sh ./shared/libebm/tests/libebm_test.sh ${{ matrix.options }} ${{ matrix.existing }}
- name: linux test_native (CI)
if: ${{ startsWith(matrix.image, 'ubuntu') && github.event_name != 'schedule' }}
run: |
/bin/sh ./shared/libebm/tests/libebm_test.sh ${{ matrix.options }} ${{ matrix.existing }}
- name: linux test_native (Schedule)
if: ${{ startsWith(matrix.image, 'ubuntu') && github.event_name == 'schedule' }}
run: |
/bin/sh ./shared/libebm/tests/libebm_test.sh ${{ matrix.options }} ${{ matrix.existing }} ${{ matrix.scheduled }}
- name: win test_native (CI)
if: ${{ startsWith(matrix.image, 'windows') && github.event_name != 'schedule' }}
run: |
$env:PATH += ';C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin'
.\shared\libebm\tests\libebm_test.bat ${{ matrix.options }} ${{ matrix.existing }}
- name: win test_native (Schedule)
if: ${{ startsWith(matrix.image, 'windows') && github.event_name == 'schedule' }}
run: |
$env:PATH += ';C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin'
.\shared\libebm\tests\libebm_test.bat ${{ matrix.options }} ${{ matrix.existing }} ${{ matrix.scheduled }}
testS:
needs: [sdist]
strategy:
matrix:
include:
- name: linux_39_python
python_ver: "3.9"
image: ubuntu-latest
- name: linux_310_python
python_ver: "3.10"
image: ubuntu-latest
- name: linux_311_python
python_ver: "3.11"
image: ubuntu-latest
- name: linux_312_python
python_ver: "3.12"
image: ubuntu-latest
- name: mac_39_python
python_ver: "3.9"
image: macos-latest
- name: mac_310_python
python_ver: "3.10"
image: macos-latest
- name: mac_311_python
python_ver: "3.11"
image: macos-latest
- name: mac_312_python
python_ver: "3.12"
image: macos-latest
- name: win_39_python
python_ver: "3.9"
image: windows-latest
- name: win_310_python
python_ver: "3.10"
image: windows-latest
- name: win_311_python
python_ver: "3.11"
image: windows-latest
- name: win_312_python
python_ver: "3.12"
image: windows-latest
runs-on: ${{ matrix.image }}
steps:
- name: Check out repo
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python_ver }}
- name: Download sdist artifact
uses: actions/download-artifact@v4
with:
name: sdist
path: bld/sdist
- name: pytest (non-win)
if: ${{ !startsWith(matrix.image, 'windows') }}
run: |
python -m pip install --upgrade pip setuptools wheel
cd "bld/sdist"
install_file=$(echo interpret_core-*.tar.gz)
install_file=${install_file%.tar.gz}
python -m pip install "bld/sdist/$install_file.tar.gz"[debug,notebook,plotly,lime,sensitivity,shap,linear,treeinterpreter,aplr,dash,skoperules,testing]
mkdir -p "tmp/zqmr/t"
tar -xzvf "bld/sdist/$install_file.tar.gz" -C "tmp/zqmr/t" "$install_file/tests"
cd "tmp/zqmr/t"
python -m pytest -vv -n auto --junitxml=junit/test-results.xml --cov=interpret --cov-report=xml --cov-report=html
- name: pytest (win)
if: ${{ startsWith(matrix.image, 'windows') }}
run: |
python -m pip install --upgrade pip setuptools wheel
$install_file = Get-ChildItem -Path "bld\sdist" -Filter "interpret_core-*.tar.gz"
$install_file = $install_file[0].BaseName
$env:PATH += ";C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\"
python -m pip install "bld\sdist\$install_file.tar.gz"[debug,notebook,plotly,lime,sensitivity,shap,linear,treeinterpreter,aplr,dash,skoperules,testing]
New-Item -Path "tmp\zqmr" -ItemType Directory -Force
New-Item -Path "tmp\zqmr\t" -ItemType Directory -Force
tar -xzvf "bld\sdist\$install_file.tar.gz" -C "tmp\zqmr\t" "$install_file/tests"
Set-Location -Path "tmp\zqmr\t"
$env:PATH += ";$env:GeckoWebDriver"
python -m pytest -vv -n auto --junitxml=junit/test-results.xml --cov=interpret --cov-report=xml --cov-report=html