Skip to content

asdfasd

asdfasd #47

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"
artifact_name: "libebm_ubuntu_release_64"
- name: linux_debug_64
image: ubuntu-20.04
options: "-debug_64"
asm: ""
artifact_name: "libebm_ubuntu_debug_64"
- name: mac_release_64
image: macos-13 # macos-13 is an intel based mac
options: "-release_64"
asm: "-asm"
artifact_name: "libebm_mac_release_64"
- name: mac_debug_64
image: macos-13 # macos-13 is an intel based mac
options: "-debug_64"
asm: ""
artifact_name: "libebm_mac_debug_64"
- name: mac_release_arm
image: macos-14 # macos-14 is an ARM based mac
options: "-release_arm"
asm: "-asm"
artifact_name: "libebm_mac_release_arm"
- name: mac_debug_arm
image: macos-14 # macos-14 is an ARM based mac
options: "-debug_arm"
asm: ""
artifact_name: "libebm_mac_debug_arm"
- name: win_release_64
image: windows-2022
options: "-release_64"
asm: ""
artifact_name: "libebm_win_release_64"
- name: win_debug_64
image: windows-2022
options: "-debug_64"
asm: ""
artifact_name: "libebm_win_debug_64"
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: ${{ matrix.artifact_name }}
path: bld/lib
- name: Publish assembly
if: ${{ matrix.asm != '' }}
uses: actions/upload-artifact@v4
with:
name: asm-${{ matrix.artifact_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_release_64"
scheduled: "-valgrind"
artifact_name: "libebm_ubuntu_release_64"
- name: linux_debug_64
image: ubuntu-latest
options: "-debug_64 -existing_debug_64"
scheduled: "-valgrind"
artifact_name: "libebm_ubuntu_debug_64"
- name: linux_release_32
image: ubuntu-latest
options: "-release_32"
scheduled: "-valgrind"
artifact_name: ""
- name: linux_debug_32
image: ubuntu-latest
options: "-debug_32"
scheduled: "-valgrind"
artifact_name: ""
- name: mac_release_64
image: macos-latest-large
options: "-release_64 -existing_release_64"
scheduled: ""
artifact_name: "libebm_mac_release_64"
- name: mac_debug_64
image: macos-latest-large
# don't use the existing debug library since we want to rebuild with asan
options: "-debug_64 -asan"
scheduled: ""
artifact_name: ""
- name: mac_release_arm
image: macos-latest
options: "-release_arm -existing_release_arm"
scheduled: ""
artifact_name: "libebm_mac_release_arm"
- 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"
scheduled: ""
artifact_name: ""
- name: win_release_64
image: windows-latest
options: "-release_64 -existing_release_64"
scheduled: "-analysis"
artifact_name: "libebm_win_release_64"
- name: win_debug_64
image: windows-latest
options: "-debug_64 -existing_debug_64"
scheduled: ""
artifact_name: "libebm_win_debug_64"
- name: win_release_32
image: windows-latest
options: "-release_32"
scheduled: "-analysis"
artifact_name: ""
- name: win_debug_32
image: windows-latest
options: "-debug_32"
scheduled: ""
artifact_name: ""
runs-on: ${{ matrix.image }}
steps:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: 3.9
- name: Download libebm artifact
if: ${{ matrix.artifact_name != '' }}
uses: actions/download-artifact@v4
with:
name: ${{ matrix.artifact_name }}
path: bld/lib
- name: mac test_native
if: ${{ startsWith(matrix.os, 'macos') }}
run: |
/bin/sh ./shared/libebm/tests/libebm_test.sh ${{ matrix.options }}
- name: linux test_native (CI)
if: ${{ startsWith(matrix.os, 'ubuntu') && github.event_name != 'schedule' }}
run: |
/bin/sh ./shared/libebm/tests/libebm_test.sh ${{ matrix.options }}
- name: linux test_native (Schedule)
if: ${{ startsWith(matrix.os, 'ubuntu') && github.event_name == 'schedule' }}
run: |
/bin/sh ./shared/libebm/tests/libebm_test.sh ${{ matrix.options }} ${{ matrix.scheduled }}
- name: win test_native (CI)
if: ${{ startsWith(matrix.os, 'windows') && github.event_name != 'schedule' }}
run: |
SET PATH=%PATH%;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\
SET CudaToolkitDir=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2
cuda_11.2.2_win10_network.exe -s nvcc_11.2 visual_studio_integration_11.2 cudart_11.2
IF ERRORLEVEL 1 (
ECHO cuda_11.2.2_win10_network.exe FAILED
EXIT /B 201
)
.\shared\libebm\tests\libebm_test.bat ${{ matrix.options }}
- name: win test_native (Schedule)
if: ${{ startsWith(matrix.os, 'windows') && github.event_name == 'schedule' }}
run: |
SET PATH=%PATH%;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\
SET CudaToolkitDir=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2
cuda_11.2.2_win10_network.exe -s nvcc_11.2 visual_studio_integration_11.2 cudart_11.2
IF ERRORLEVEL 1 (
ECHO cuda_11.2.2_win10_network.exe FAILED
EXIT /B 201
)
.\shared\libebm\tests\libebm_test.bat ${{ matrix.options }} ${{ matrix.scheduled }}