remove pipeline #2
Workflow file for this run
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 | ||
on: | ||
push: | ||
branches: | ||
- develop | ||
- pk-actions | ||
schedule: | ||
- cron: "0 12 * * *" | ||
env: | ||
python_bld_ver: 3.9 | ||
ubuntu_bld: ubuntu-20.04 | ||
mac_bld: macOS-13 | ||
windows_bld: windows-2022 | ||
ubuntu_test: ubuntu-latest | ||
mac_test: macOS-latest | ||
windows_test: windows-latest | ||
skipComponentGovernanceDetection: true | ||
skipSCA: true | ||
skipNugetSecurityAnalysis: true | ||
runCodesignValidationInjection: false | ||
Codeql_SkipTaskAutoInjection: true | ||
jobs: | ||
bld: | ||
strategy: | ||
matrix: | ||
include: | ||
- name: linux_release_64 | ||
image: ${{ env.ubuntu_bld }} | ||
Check failure on line 31 in .github/workflows/ci.yml GitHub Actions / CIInvalid workflow file
|
||
asm: "-asm" | ||
options: "-release_64" | ||
artifact_name: "libebm_ubuntu_release_64" | ||
- name: linux_debug_64 | ||
image: ${{ env.ubuntu_bld }} | ||
asm: "" | ||
options: "-debug_64" | ||
artifact_name: "libebm_ubuntu_debug_64" | ||
- name: mac_release_64 | ||
image: ${{ env.mac_bld }} | ||
asm: "-asm" | ||
options: "-release_64" | ||
artifact_name: "libebm_mac_release_64" | ||
- name: mac_debug_64 | ||
image: ${{ env.mac_bld }} | ||
asm: "" | ||
options: "-debug_64" | ||
artifact_name: "libebm_mac_debug_64" | ||
- name: mac_release_arm | ||
image: macOS-13-arm64 | ||
asm: "-asm" | ||
options: "-release_arm" | ||
artifact_name: "libebm_mac_release_arm" | ||
- name: mac_debug_arm | ||
image: macOS-13-arm64 | ||
asm: "" | ||
options: "-debug_arm" | ||
artifact_name: "libebm_mac_debug_arm" | ||
- name: win_release_64 | ||
image: ${{ env.windows_bld }} | ||
asm: "" | ||
options: "-release_64" | ||
artifact_name: "libebm_win_release_64" | ||
- name: win_debug_64 | ||
image: ${{ env.windows_bld }} | ||
asm: "" | ||
options: "-debug_64" | ||
artifact_name: "libebm_win_debug_64" | ||
runs-on: ${{ matrix.image }} | ||
steps: | ||
- name: Check out repository | ||
uses: actions/checkout@v2 | ||
- name: Download CUDA installer | ||
if: startsWith(matrix.image, 'windows') | ||
run: | | ||
curl -O https://developer.download.nvidia.com/compute/cuda/11.2.2/network_installers/cuda_11.2.2_win10_network.exe | ||
- name: Build on Windows | ||
if: startsWith(matrix.image, 'windows') | ||
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 | ||
) | ||
.\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 native shared library | ||
uses: actions/upload-artifact@v2 | ||
with: | ||
name: ${{ matrix.artifact_name }} | ||
path: bld/lib | ||
- name: Publish assembly x64 | ||
if: ${{ matrix.asm != '' }} | ||
uses: actions/upload-artifact@v2 | ||
with: | ||
name: asm-${{ matrix.artifact_name }} | ||
path: bld/asm/ | ||
vis: | ||
runs-on: ${{ env.ubuntu_bld }} | ||
steps: | ||
- name: Check out repository | ||
uses: actions/checkout@v2 | ||
- name: Build vis | ||
run: | | ||
cd shared/vis | ||
npm install | ||
npm run build-prod | ||
- name: Publish interpret-inline.js library | ||
uses: actions/upload-artifact@v2 | ||
with: | ||
name: vis | ||
path: shared/vis/dist | ||
npm: | ||
runs-on: ${{ env.ubuntu_bld }} | ||
steps: | ||
- name: Check out repository | ||
uses: actions/checkout@v2 | ||
- 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@v2 | ||
with: | ||
name: npm | ||
path: shared/vis/pkg | ||
R: | ||
runs-on: ${{ env.ubuntu_bld }} | ||
steps: | ||
- name: Check out repository | ||
uses: actions/checkout@v2 | ||
- 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@v2 | ||
with: | ||
name: R | ||
path: bld/R | ||
sdist: | ||
runs-on: ${{ env.ubuntu_bld }} | ||
steps: | ||
- name: Check out repository | ||
uses: actions/checkout@v2 | ||
- name: Set up Python | ||
uses: actions/setup-python@v2 | ||
with: | ||
python-version: ${{ env.python_bld_ver }} | ||
- 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@v2 | ||
with: | ||
name: sdist | ||
path: bld/sdist | ||
docs: | ||
runs-on: ${{ env.ubuntu_bld }} | ||
needs: sdist | ||
steps: | ||
- name: Check out repository | ||
uses: actions/checkout@v2 | ||
- name: Set up Python | ||
uses: actions/setup-python@v2 | ||
with: | ||
python-version: ${{ env.python_bld_ver }} | ||
- name: Download sdist | ||
uses: actions/download-artifact@v2 | ||
with: | ||
name: sdist | ||
path: $(System.ArtifactsDirectory)/sdist | ||
- name: Build docs | ||
run: | | ||
cd "$(System.ArtifactsDirectory)/sdist" | ||
tarball_path=$(echo interpret_core-*.tar.gz) | ||
python -m pip install --upgrade pip setuptools wheel | ||
python -m pip install "$tarball_path"[debug,notebook,plotly,lime,sensitivity,shap,linear,treeinterpreter,aplr,dash,skoperules,testing] | ||
cd "$(Build.SourcesDirectory)/docs/" | ||
pip install -r requirements.txt | ||
/bin/sh ./build.sh | ||
continue-on-error: true | ||
- name: Publish docs | ||
uses: actions/upload-artifact@v2 | ||
with: | ||
name: docs | ||
path: docs/interpret/_build/html/ | ||
bdist: | ||
runs-on: ${{ env.ubuntu_bld }} | ||
needs: [bld, vis] | ||
steps: | ||
- name: Check out repository | ||
uses: actions/checkout@v2 | ||
- name: Set up Python | ||
uses: actions/setup-python@v2 | ||
with: | ||
python-version: ${{ env.python_bld_ver }} | ||
- name: Download artifact lib files | ||
uses: actions/download-artifact@v2 | ||
with: | ||
name: lib | ||
path: $(System.ArtifactsDirectory)/lib/ | ||
- name: Flatten and copy lib files | ||
run: | | ||
cp $(System.ArtifactsDirectory)/lib/* 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@v2 | ||
with: | ||
name: bdist | ||
path: bld/bdist | ||
testC: | ||
needs: bld | ||
strategy: | ||
matrix: | ||
include: | ||
- name: linux_release_64 | ||
image: ${{ env.ubuntu_test }} | ||
options: "-release_64 -existing_release_64" | ||
scheduled: "-valgrind" | ||
artifact_name: "libebm_ubuntu_release_64" | ||
- name: linux_debug_64 | ||
image: ${{ env.ubuntu_test }} | ||
options: "-debug_64 -existing_debug_64" | ||
scheduled: "-valgrind" | ||
artifact_name: "libebm_ubuntu_debug_64" | ||
- name: linux_release_32 | ||
image: ${{ env.ubuntu_test }} | ||
options: "-release_32" | ||
scheduled: "-valgrind" | ||
artifact_name: "" | ||
- name: linux_debug_32 | ||
image: ${{ env.ubuntu_test }} | ||
options: "-debug_32" | ||
scheduled: "-valgrind" | ||
artifact_name: "" | ||
- name: mac_release_64 | ||
image: ${{ env.mac_test }} | ||
options: "-release_64 -existing_release_64" | ||
scheduled: "" | ||
artifact_name: "libebm_mac_release_64" | ||
- name: mac_debug_64 | ||
image: ${{ env.mac_test }} | ||
options: "-debug_64 -asan" | ||
scheduled: "" | ||
artifact_name: "" | ||
- name: win_release_64 | ||
image: ${{ env.windows_test }} | ||
options: "-release_64 -existing_release_64" | ||
scheduled: "-analysis" | ||
artifact_name: "libebm_win_release_64" | ||
- name: win_debug_64 | ||
image: ${{ env.windows_test }} | ||
options: "-debug_64 -existing_debug_64" | ||
scheduled: "" | ||
artifact_name: "libebm_win_debug_64" | ||
- name: win_release_32 | ||
image: ${{ env.windows_test }} | ||
options: "-release_32" | ||
scheduled: "-analysis" | ||
artifact_name: "" | ||
- name: win_debug_32 | ||
image: ${{ env.windows_test }} | ||
options: "-debug_32" | ||
scheduled: "" | ||
artifact_name: "" | ||
runs-on: ${{ matrix.image }} | ||
steps: | ||
- name: Check out repository | ||
uses: actions/checkout@v2 | ||
- name: Copy native library to bld/lib directory | ||
if: ${{ matrix.artifact_name != '' }} | ||
uses: actions/download-artifact@v2 | ||
with: | ||
name: ${{ matrix.artifact_name }} | ||
path: bld/lib | ||
- name: Download CUDA installer | ||
if: startsWith(matrix.image, 'windows') | ||
run: | | ||
curl -O https://developer.download.nvidia.com/compute/cuda/11.2.2/network_installers/cuda_11.2.2_win10_network.exe | ||
- name: Test on macOS | ||
if: startsWith(matrix.image, 'macOS') | ||
run: | | ||
/bin/sh ./shared/libebm/tests/libebm_test.sh ${{ matrix.options }} | ||
- name: Test on Linux (CI) | ||
if: and(startsWith(matrix.image, 'ubuntu'), ne(env.BUILD_REASON, 'Schedule')) | ||
run: | | ||
/bin/sh ./shared/libebm/tests/libebm_test.sh ${{ matrix.options }} | ||
- name: Test on Linux (Schedule) | ||
if: and(startsWith(matrix.image, 'ubuntu'), eq(env.BUILD_REASON, 'Schedule')) | ||
run: | | ||
/bin/sh ./shared/libebm/tests/libebm_test.sh ${{ matrix.options }} ${{ matrix.scheduled }} | ||
- name: Test on Windows (CI) | ||
if: and(startsWith(matrix.image, 'windows'), ne(env.BUILD_REASON, '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: Test on Windows (Schedule) | ||
if: and(startsWith(matrix.image, 'windows'), eq(env.BUILD_REASON, '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 }} | ||
testS: | ||
needs: sdist | ||
strategy: | ||
matrix: | ||
include: | ||
- name: linux_39_python | ||
python_version: 3.9 | ||
image: ${{ env.ubuntu_test }} | ||
- name: linux_310_python | ||
python_version: 3.10 | ||
image: ${{ env.ubuntu_test }} | ||
- name: linux_311_python | ||
python_version: 3.11 | ||
image: ${{ env.ubuntu_test }} | ||
- name: linux_312_python | ||
python_version: 3.12 | ||
image: ${{ env.ubuntu_test }} | ||
- name: win_39_python | ||
python_version: 3.9 | ||
image: ${{ env.windows_test }} | ||
- name: win_310_python | ||
python_version: 3.10 | ||
image: ${{ env.windows_test }} | ||
- name: win_311_python | ||
python_version: 3.11 | ||
image: ${{ env.windows_test }} | ||
- name: win_312_python | ||
python_version: 3.12 | ||
image: ${{ env.windows_test }} | ||
- name: mac_39_python | ||
python_version: 3.9 | ||
image: ${{ env.mac_test }} | ||
- name: mac_310_python | ||
python_version: 3.10 | ||
image: ${{ env.mac_test }} | ||
- name: mac_311_python | ||
python_version: 3.11 | ||
image: ${{ env.mac_test }} | ||
- name: mac_312_python | ||
python_version: 3.12 | ||
image: ${{ env.mac_test }} | ||
runs-on: ${{ matrix.image }} | ||
steps: | ||
- name: Check out repository | ||
uses: actions/checkout@v2 | ||
- name: Set up Python | ||
uses: actions/setup-python@v2 | ||
with: | ||
python-version: ${{ matrix.python_version }} | ||
- name: Download sdist | ||
uses: actions/download-artifact@v2 | ||
with: | ||
name: sdist | ||
path: $(System.ArtifactsDirectory)/sdist | ||
- name: Install and run tests (Windows) | ||
if: startsWith(matrix.image, 'windows') | ||
run: | | ||
python -m pip install --upgrade pip setuptools wheel | ||
FOR %%A IN ("$(System.ArtifactsDirectory)\sdist\interpret_core-*.tar.gz") DO SET "install_file=%%~nA" | ||
REM the above line got "interpret_core-x.x.x.tar" and we now need to strip the ".tar" | ||
FOR %%A IN ("%install_file%") DO SET "install_file=%%~nA" | ||
SET PATH=%PATH%;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\ | ||
python -m pip install "$(System.ArtifactsDirectory)\sdist\%install_file%.tar.gz"[debug,notebook,plotly,lime,sensitivity,shap,linear,treeinterpreter,aplr,dash,skoperules,testing] | ||
mkdir "$(Agent.TempDirectory)\zqmr" | ||
mkdir "$(Agent.TempDirectory)\zqmr\t" | ||
tar -xzvf "$(System.ArtifactsDirectory)\sdist\%install_file%.tar.gz" -C "$(Agent.TempDirectory)\zqmr\t" "%install_file%/tests" | ||
cd /D "$(Agent.TempDirectory)\zqmr\t" | ||
set PATH=%PATH%;%GeckoWebDriver% | ||
python -m pytest -vv -n auto --junitxml=junit/test-results.xml --cov=interpret --cov-report=xml --cov-report=html | ||
- name: Install and run tests (non-Windows) | ||
if: not(startsWith(matrix.image, 'windows')) | ||
run: | | ||
python -m pip install --upgrade pip setuptools wheel | ||
cd "$(System.ArtifactsDirectory)/sdist" | ||
install_file=$(echo interpret_core-*.tar.gz) | ||
install_file=${install_file%.tar.gz} | ||
python -m pip install "$(System.ArtifactsDirectory)/sdist/$install_file.tar.gz"[debug,notebook,plotly,lime,sensitivity,shap,linear,treeinterpreter,aplr,dash,skoperules,testing] | ||
mkdir -p "$(Agent.TempDirectory)/zqmr/t" | ||
tar -xzvf "$(System.ArtifactsDirectory)/sdist/$install_file.tar.gz" -C "$(Agent.TempDirectory)/zqmr/t" "$install_file/tests" | ||
cd "$(Agent.TempDirectory)/zqmr/t" | ||
python -m pytest -vv -n auto --junitxml=junit/test-results.xml --cov=interpret --cov-report=xml --cov-report=html | ||
- name: Publish test results | ||
uses: actions/upload-artifact@v2 | ||
if: always() | ||
with: | ||
name: test-results | ||
path: "$(Agent.TempDirectory)/zqmr/t/junit/test-results.xml" | ||
- name: Publish test coverage results | ||
if: startsWith(matrix.image, 'windows') | ||
uses: actions/upload-artifact@v2 | ||
with: | ||
name: coverage-report | ||
path: "$(Agent.TempDirectory)/zqmr/t/coverage.xml" | ||
testB: | ||
needs: bdist | ||
strategy: | ||
matrix: | ||
include: | ||
- name: linux_39_python | ||
python_version: 3.9 | ||
image: ${{ env.ubuntu_test }} | ||
- name: linux_310_python | ||
python_version: 3.10 | ||
image: ${{ env.ubuntu_test }} | ||
- name: linux_311_python | ||
python_version: 3.11 | ||
image: ${{ env.ubuntu_test }} | ||
- name: linux_312_python | ||
python_version: 3.12 | ||
image: ${{ env.ubuntu_test }} | ||
- name: win_39_python | ||
python_version: 3.9 | ||
image: ${{ env.windows_test }} | ||
- name: win_310_python | ||
python_version: 3.10 | ||
image: ${{ env.windows_test }} | ||
- name: win_311_python | ||
python_version: 3.11 | ||
image: ${{ env.windows_test }} | ||
- name: win_312_python | ||
python_version: 3.12 | ||
image: ${{ env.windows_test }} | ||
- name: mac_39_python | ||
python_version: 3.9 | ||
image: ${{ env.mac_test }} | ||
- name: mac_310_python | ||
python_version: 3.10 | ||
image: ${{ env.mac_test }} | ||
- name: mac_311_python | ||
python_version: 3.11 | ||
image: ${{ env.mac_test }} | ||
- name: mac_312_python | ||
python_version: 3.12 | ||
image: ${{ env.mac_test }} | ||
runs-on: ${{ matrix.image }} | ||
steps: | ||
- name: Check out repository | ||
uses: actions/checkout@v2 | ||
- name: Set up Python | ||
uses: actions/setup-python@v2 | ||
with: | ||
python-version: ${{ matrix.python_version }} | ||
- name: Download bdist | ||
uses: actions/download-artifact@v2 | ||
with: | ||
name: bdist | ||
path: $(System.ArtifactsDirectory)/bdist | ||
- name: Install and run tests (Windows) | ||
if: startsWith(matrix.image, 'windows') | ||
run: | | ||
python -m pip install --upgrade pip setuptools wheel | ||
FOR %%A IN ("$(System.ArtifactsDirectory)\bdist\interpret_core-*.whl") DO SET "install_file=%%A" | ||
python -m pip install "%install_file%"[debug,notebook,plotly,lime,sensitivity,shap,linear,treeinterpreter,aplr,dash,skoperules,testing] | ||
mkdir "$(Agent.TempDirectory)\zqmr" | ||
mkdir "$(Agent.TempDirectory)\zqmr\t" | ||
xcopy /E "$(Build.SourcesDirectory)\python\interpret-core\tests\*" "$(Agent.TempDirectory)\zqmr\t\" | ||
cd /D "$(Agent.TempDirectory)\zqmr\t" | ||
python -m pytest -vv -n auto --junitxml=junit/test-results.xml --cov=interpret --cov-report=xml --cov-report=html | ||
- name: Install and run tests (non-Windows) | ||
if: not(startsWith(matrix.image, 'windows')) | ||
run: | | ||
python -m pip install --upgrade pip setuptools wheel | ||
cd "$(System.ArtifactsDirectory)/bdist" | ||
install_file=$(echo interpret_core-*.whl) | ||
python -m pip install "$install_file"[debug,notebook,plotly,lime,sensitivity,shap,linear,treeinterpreter,aplr,dash,skoperules,testing] | ||
mkdir -p "$(Agent.TempDirectory)/zqmr/t" | ||
cp -r "$(Build.SourcesDirectory)/python/interpret-core/tests/" "$(Agent.TempDirectory)/zqmr/t/" | ||
cd "$(Agent.TempDirectory)/zqmr/t" | ||
python -m pytest -vv -n auto --junitxml=junit/test-results.xml --cov=interpret --cov-report=xml --cov-report=html | ||
- name: Publish test results | ||
uses: actions/upload-artifact@v2 | ||
if: always() | ||
with: | ||
name: test-results | ||
path: "$(Agent.TempDirectory)/zqmr/t/junit/test-results.xml" | ||
- name: Publish test coverage results | ||
if: startsWith(matrix.image, 'windows') | ||
uses: actions/upload-artifact@v2 | ||
with: | ||
name: coverage-report | ||
path: "$(Agent.TempDirectory)/zqmr/t/coverage.xml" | ||
clang_format: | ||
needs: [testC, testS, testB] | ||
runs-on: ${{ env.ubuntu_bld }} | ||
steps: | ||
- name: Check out repository | ||
uses: actions/checkout@v2 | ||
- name: Check C++ code formatting with clang-format | ||
run: | | ||
echo "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-16 main" | sudo tee /etc/apt/sources.list.d/llvm-toolchain-jammy-16.list | ||
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/llvm-archive-keyring.gpg | ||
sudo apt --yes update | ||
sudo apt --yes install clang-format-16 | ||
find shared/libebm \( -iname "*.cpp" -o -iname "*.h" -o -iname "*.hpp" \) | xargs clang-format-16 -i -style=file | ||
git diff --exit-code | ||
continue-on-error: true | ||
format_black: | ||
needs: [testC, testS, testB] | ||
runs-on: ${{ env.ubuntu_bld }} | ||
steps: | ||
- name: Check out repository | ||
uses: actions/checkout@v2 | ||
- name: black python formatting check | ||
run: | | ||
cd python/interpret-core | ||
python -m pip install --upgrade black | ||
black --check . | ||
continue-on-error: true | ||
- name: Publish source codes | ||
uses: actions/upload-artifact@v2 | ||
with: | ||
name: source_codes | ||
path: $(Build.SourcesDirectory) |