Skip to content

CD - Post Release Tests #40

CD - Post Release Tests

CD - Post Release Tests #40

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:
notebook-test-hagrid:
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: Upgrade pip
run: |
python -m pip install --upgrade --user pip
- name: Get pip cache dir
id: pip-cache
shell: bash
run: |
echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT
- name: pip 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 Hagrid, tox and uv
run: |
pip install -U hagrid
pip install --upgrade pip uv==0.1.18 tox tox-uv==1.5.1
- name: Hagrid Version
run: |
hagrid version
- name: Remove existing containers
continue-on-error: true
shell: bash
run: |
docker rm $(docker ps -aq) --force || true
docker volume prune -f || true
docker buildx use default || true
- name: Launch Domain
run: |
hagrid launch test-domain-1 to docker:8081 --tag=${{ inputs.syft_version }} --low-side
- name: Run tests
env:
NODE_PORT: "8081"
SYFT_VERSION: ${{ inputs.syft_version }}
EXCLUDE_NOTEBOOKS: "not 11-container-images-k8s.ipynb"
run: |
tox -e e2e.test.notebook
#Run log collector python script
- name: Run log collector
timeout-minutes: 5
if: failure()
shell: bash
run: |
python ./scripts/container_log_collector.py
# Get Job name and url
- name: Get job name and url
id: job_name
if: failure()
shell: bash
run: |
echo "job_name=$(echo ${{ github.job }})" >> $GITHUB_OUTPUT
echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT
- name: Upload logs to GitHub
uses: actions/upload-artifact@master
if: failure()
with:
name: ${{ matrix.os }}-${{ steps.job_name.outputs.job_name }}-logs-${{ steps.job_name.outputs.date }}
path: ./logs/${{ steps.job_name.outputs.job_name}}/
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 --user pip
- name: Get pip cache dir
id: pip-cache
shell: bash
run: |
echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT
- name: pip 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
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.0
wget -q -O - https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | TAG=$K3D_VERSION bash
- name: Get pip cache dir
id: pip-cache
shell: bash
run: |
echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT
- name: pip 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 tox
run: |
pip install --upgrade pip uv==0.1.18 tox tox-uv==1.5.1
- 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 --user pip
- name: Get pip cache dir
id: pip-cache
shell: bash
run: |
echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT
- name: pip 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 Hagrid, tox and uv
run: |
pip install -U hagrid
pip install --upgrade pip uv==0.1.18 tox tox-uv==1.5.1 tox-current-env
- name: Run unit tests
run: |
tox -e syft.test.unit --current-env