CD - Post Release Tests #40
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: 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 |