Skip to content

[feature] Improve typing for @dsl.component to support strict LSPs #169

[feature] Improve typing for @dsl.component to support strict LSPs

[feature] Improve typing for @dsl.component to support strict LSPs #169

name: KFP Python Client Tests
on:
push:
branches: [master]
pull_request:
paths:
- '.github/workflows/kfp-sdk-client-tests.yml.yml'
- '.github/actions/create-cluster/**'
- '.github/resources/**'
- 'sdk/python/**'
- 'api/v2alpha1/**'
- 'backend/**'
- '!**/*.md'
- '!**/OWNERS'
jobs:
build:
uses: ./.github/workflows/image-builds-with-cache.yml
sdk-client-tests:
runs-on: ubuntu-24.04
needs: build
strategy:
matrix:
k8s_version: [ "v1.29.2", "v1.31.0" ]
name: KFP SDK Client Tests - K8s ${{ matrix.k8s_version }}
steps:
- name: Checkout code
uses: actions/checkout@v5
- name: Free up disk space
run: ./.github/resources/scripts/free-disk-space.sh
# This must occur after "Free up space" step
# otherwise python version will be overridden
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Create KFP cluster
id: create-kfp-cluster
uses: ./.github/actions/create-cluster
with:
k8s_version: ${{ matrix.k8s_version }}
continue-on-error: true
- name: Deploy
id: deploy
uses: ./.github/actions/deploy
if: ${{ steps.create-kfp-cluster.outcome == 'success' }}
with:
image_path: ${{ needs.build.outputs.IMAGE_PATH }}
image_tag: ${{ needs.build.outputs.IMAGE_TAG }}
image_registry: ${{ needs.build.outputs.IMAGE_REGISTRY }}
- name: Forward API port
id: forward-api-port
if: ${{ steps.deploy.outcome == 'success' }}
run: ./.github/resources/scripts/forward-port.sh "kubeflow" "ml-pipeline" 8888 8888
continue-on-error: true
- name: Install protobuf dependencies & kfp-pipeline-spec
if: ${{ steps.forward-api-port.outcome == 'success' }}
id: install-protobuf-deps
uses: ./.github/actions/protobuf
- name: Install Test dependencies
run: |
pip install -r sdk/python/requirements.txt
pip install -r sdk/python/requirements-dev.txt
pip install pytest
pip install pytest-cov
- name: Run tests
id: tests
if: ${{ steps.forward-api-port.outcome == 'success' }}
env:
apiUrl: "http://localhost:8888"
namespace: "kubeflow"
SETUP_ENV: false
run: |
./test/presubmit-tests-sdk-client.sh
continue-on-error: true
- name: Collect failed logs
if: ${{ steps.deploy.outcome != 'success' || steps.forward-api-port.outcome != 'success' || steps.tests.outcome != 'success'}}
run: |
./.github/resources/scripts/collect-logs.sh --ns kubeflow --output /tmp/tmp_pod_log.txt
exit 1
- name: Collect test results
if: always()
uses: actions/upload-artifact@v4
with:
name: periodic-functional-artifacts-k8s-${{ matrix.k8s_version }}
path: /tmp/tmp*/*