Update CI/CD Workflows (#495) #1416
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: Tests | |
on: | |
push: | |
branches: [main] | |
pull_request: | |
types: [opened, synchronize, reopened] | |
jobs: | |
Linter: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
python-version: ['3.8', '3.12'] | |
os: [ubuntu-latest] | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
with: | |
submodules: true | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5.2.0 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies | |
run: .github/workflows/scripts/install_req_ubuntu.sh | |
if: ${{ matrix.os == 'ubuntu-latest' }} | |
- name: Lint with flake8 | |
run: .github/workflows/scripts/lint_python.sh | |
- name: Lint with clang-format | |
run: .github/workflows/scripts/lint_cpp.sh | |
TenSEAL: | |
needs: [Linter] | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12'] | |
os: [macos-latest, ubuntu-latest, windows-latest] | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
with: | |
submodules: true | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5.2.0 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Check LongPathsEnabled | |
run: | | |
git config --system core.longpaths true | |
(Get-ItemProperty "HKLM:System\CurrentControlSet\Control\FileSystem").LongPathsEnabled | |
if: ${{ matrix.os == 'windows-latest' }} | |
- name: Prepare ENV | |
run: | | |
echo "CC=clang" >> $GITHUB_ENV | |
echo "CXX=clang++" >> $GITHUB_ENV | |
if: ${{ matrix.os == 'ubuntu-latest' }} | |
- name: Install dependencies Ubuntu | |
run: .github/workflows/scripts/install_req_ubuntu.sh | |
if: ${{ matrix.os == 'ubuntu-latest' }} | |
- name: Install dependencies MacOS | |
run: .github/workflows/scripts/install_req_macos.sh | |
if: ${{ matrix.os == 'macos-latest' }} | |
- name: Install dependencies Windows | |
run: .github/workflows/scripts/install_req_windows.bat | |
if: ${{ matrix.os == 'windows-latest' }} | |
- name: Install dependencies Windows - msbuild | |
uses: microsoft/setup-msbuild@6fb02220983dee41ce7ae257b6f4d8f9bf5ed4ce # v2 | |
if: ${{ matrix.os == 'windows-latest' }} | |
- name: Build the library for Ubuntu/MacOS | |
run: .github/workflows/scripts/build_nix.sh | |
if: ${{ matrix.os != 'windows-latest' }} | |
- name: Build the library for Windows | |
run: .github/workflows/scripts/build_windows.bat | |
if: ${{ matrix.os == 'windows-latest' }} | |
- name: Test with pytest | |
run: pytest -m "not slow" -v ./tests/python/tenseal | |
- name: Test with gtest for Ubuntu/MacOS | |
run: .github/workflows/scripts/run_gtest_nix.sh | |
if: ${{ matrix.os != 'windows-latest' }} | |
- name: Test with gtest for Windows | |
run: .github/workflows/scripts/run_gtest_windows.bat | |
if: ${{ matrix.os == 'windows-latest' }} | |
SEAL_API: | |
needs: [Linter] | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12'] | |
os: [macos-latest, ubuntu-latest, windows-latest] | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
with: | |
submodules: true | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5.2.0 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Prepare ENV | |
run: | | |
echo "CC=clang" >> $GITHUB_ENV | |
echo "CXX=clang++" >> $GITHUB_ENV | |
if: ${{ matrix.os == 'ubuntu-latest' }} | |
- name: Check LongPathsEnabled | |
run: | | |
git config --system core.longpaths true | |
(Get-ItemProperty "HKLM:System\CurrentControlSet\Control\FileSystem").LongPathsEnabled | |
if: ${{ matrix.os == 'windows-latest' }} | |
- name: Install dependencies Ubuntu | |
run: .github/workflows/scripts/install_req_ubuntu.sh | |
if: ${{ matrix.os == 'ubuntu-latest' }} | |
- name: Install dependencies MacOS | |
run: .github/workflows/scripts/install_req_macos.sh | |
if: ${{ matrix.os == 'macos-latest' }} | |
- name: Install dependencies Windows | |
run: .github/workflows/scripts/install_req_windows.bat | |
if: ${{ matrix.os == 'windows-latest' }} | |
- name: Install dependencies Windows - msbuild | |
uses: microsoft/setup-msbuild@6fb02220983dee41ce7ae257b6f4d8f9bf5ed4ce # v2 | |
if: ${{ matrix.os == 'windows-latest' }} | |
- name: Build the library for Ubuntu/MacOS | |
run: .github/workflows/scripts/build_nix.sh | |
if: ${{ matrix.os != 'windows-latest' }} | |
- name: Build the library for Windows | |
run: .github/workflows/scripts/build_windows.bat | |
if: ${{ matrix.os == 'windows-latest' }} | |
- name: Test with pytest | |
run: pytest -v ./tests/python/sealapi |