Skip to content

CD - Post Release Tests #50

CD - Post Release Tests

CD - Post Release Tests #50

name: CD - Post Release Tests
on:
workflow_dispatch:
inputs:
syft_version:
description: "Syft version to test"
required: true
type: string
release_platform:
description: "Release Platform"
required: true
type: choice
options:
- "REAL_PYPI"
- "TEST_PYPI"
workflow_call:
inputs:
syft_version:
description: "Syft version to test"
required: true
type: string
release_platform:
description: "Release Platform"
required: true
type: string
default: "REAL_PYPI"
jobs:
syft-install-check:
strategy:
max-parallel: 99
matrix:
os: [ubuntu-latest, macos-latest, windows-latest, macos-14]
python-version: ["3.12", "3.11", "3.10"]
runs-on: ${{ matrix.os }}
steps:
- name: System Architecture
run: |
echo "System Architecture: $(uname -m)"
echo "System Version: $(uname -a)"
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Upgrade pip
run: |
python -m pip install --upgrade pip
- name: Get pip cache dir
id: pip-cache
shell: bash
run: |
echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT
- name: Load github cache
uses: actions/cache@v4
with:
path: ${{ steps.pip-cache.outputs.dir }}
key: ${{ runner.os }}-pip-py${{ matrix.python-version }}-${{ hashFiles('setup.cfg') }}
restore-keys: |
${{ runner.os }}-pip-py${{ matrix.python-version }}-
- name: Install Syft
shell: bash
run: |
if [[ ${{inputs.release_platform}} == "REAL_PYPI" ]]; then
pip install syft==${{inputs.syft_version}}
fi
if [[ ${{ inputs.release_platform }} == "TEST_PYPI" ]]; then
pip install --extra-index-url https://test.pypi.org/simple/ syft==${{inputs.syft_version}}
fi
- name: Check Syft version
run: |
python -c "import syft; print(syft.__version__)"
notebook-test-k8s-k3d:
if: github.event.inputs.release_platform == 'REAL_PYPI'
strategy:
max-parallel: 99
matrix:
os: [ubuntu-latest]
python-version: ["3.12"]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
# free 10GB of space
- name: Remove unnecessary files
if: matrix.os == 'ubuntu-latest'
run: |
sudo rm -rf /usr/share/dotnet
sudo rm -rf "$AGENT_TOOLSDIRECTORY"
docker image prune --all --force
docker builder prune --all --force
docker system prune --all --force
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install K3d
run: |
K3D_VERSION=v5.6.3
wget -q -O - https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | TAG=$K3D_VERSION bash
- name: Install pip dependencies
run: |
python -m pip install --upgrade pip
pip install uv==0.2.17 tox tox-uv==1.9.0
uv --version
- name: Get uv cache dir
id: pip-cache
shell: bash
run: |
echo "dir=$(uv cache dir)" >> $GITHUB_OUTPUT
- name: Load github cache
uses: actions/cache@v4
with:
path: ${{ steps.pip-cache.outputs.dir }}
key: ${{ runner.os }}-pip-py${{ matrix.python-version }}-${{ hashFiles('setup.cfg') }}
restore-keys: |
${{ runner.os }}-uv-py${{ matrix.python-version }}-
- name: Run K8s tests
env:
SYFT_VERSION: ${{ inputs.syft_version }}
run: |
tox -e syft.test.helm
# This job is used to test the syft unit tests on Test PyPi
syft-unit-tests:
strategy:
max-parallel: 99
matrix:
os: [ubuntu-latest, macos-latest]
python-version: ["3.12", "3.11", "3.10"]
runs-on: ${{ matrix.os }}
steps:
- name: System Architecture
run: |
echo "System Architecture: $(uname -m)"
echo "System Version: $(uname -a)"
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Upgrade pip
run: |
python -m pip install --upgrade pip
- name: Get pip cache dir
id: pip-cache
shell: bash
run: |
echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT
- name: Load github cache
uses: actions/cache@v4
with:
path: ${{ steps.pip-cache.outputs.dir }}
key: ${{ runner.os }}-pip-py${{ matrix.python-version }}-${{ hashFiles('setup.cfg') }}
restore-keys: |
${{ runner.os }}-pip-py${{ matrix.python-version }}-
- name: Install Syft
env:
SYFT_VERSION: ${{ inputs.syft_version }}
run: |
if [[ ${{ inputs.release_platform }} == "TEST_PYPI" ]]; then
pip install --extra-index-url https://test.pypi.org/simple/ syft[data_science,dev]==${{ inputs.syft_version }}
fi
if [[ ${{ inputs.release_platform }} == "REAL_PYPI" ]]; then
pip install syft[data_science,dev]==${{ inputs.syft_version }}
fi
- name: Install tox and uv
run: |
pip install uv==0.2.17 tox tox-uv==1.9.0 tox-current-env
- name: Run unit tests
run: |
tox -e syft.test.unit --current-env