blob: caecb1bbe57bbcc642ceb36ec51085d3b10369ab [file] [log] [blame]
name: python-sdk
# Trigger the workflow on push or pull request
on: [push, pull_request]
jobs:
unit:
runs-on: ubuntu-latest
timeout-minutes: 120
strategy:
matrix:
python-version: [3.5,3.6,3.7]
tf-version: [1.14.0,1.15.0]
fail-fast: false
env:
PYTHON: ${{ matrix.python }}
steps:
- uses: actions/checkout@v1
- name: Setup python environment
uses: actions/setup-python@v1
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
pip install --upgrade pip
pip install --no-cache-dir tensorflow==${{ matrix.tf-version }}
pip install --no-cache-dir torch==1.5.0
pip install --no-cache-dir ./submarine-sdk/pysubmarine/.
pip install -r ./submarine-sdk/pysubmarine/github-actions/test-requirements.txt
pip install -r ./submarine-sdk/pysubmarine/github-actions/lint-requirements.txt
- name: Check python sdk code style
if: matrix.python-version == '3.6'
run: |
./submarine-sdk/pysubmarine/github-actions/lint.sh
- name: Run unit test
run: |
pytest --cov=submarine -vs -m "not e2e"
integration:
runs-on: ubuntu-latest
timeout-minutes: 120
steps:
- uses: actions/checkout@v1
- name: Create the kind config
run: |
cat <<EOF > ./kind-config-kind.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
kubeadmConfigPatches:
- |
kind: InitConfiguration
nodeRegistration:
kubeletExtraArgs:
node-labels: "ingress-ready=true"
authorization-mode: "AlwaysAllow"
extraPortMappings:
- containerPort: 32080
hostPort: 80
protocol: TCP
- containerPort: 443
hostPort: 443
protocol: TCP
EOF
- uses: engineerd/setup-kind@v0.4.0
with:
version: "v0.7.0"
image: kindest/node:v1.15.6
config: ./kind-config-kind.yaml
- name: Show K8s cluster information
run: |
kubectl cluster-info
kubectl version
kubectl get pods -n kube-system
echo "current-context:" $(kubectl config current-context)
echo "environment-kubeconfig:" ${KUBECONFIG}
- name: Start submarine
run: |
# Fix submarine-database start failed in kind. https://github.com/kubernetes/minikube/issues/7906
sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld
helm install --wait submarine ./helm-charts/submarine
kubectl get pods
kubectl port-forward svc/submarine-database 3306:3306 &
kubectl port-forward svc/submarine-server 8080:8080 &
- name: Setup python environment
uses: actions/setup-python@v1
with:
python-version: 3.6
- name: Install dependencies
run: |
pip install --upgrade pip
pip install --no-cache-dir ./submarine-sdk/pysubmarine/.
pip install -r ./submarine-sdk/pysubmarine/github-actions/test-requirements.txt
- name: Run integration test
run: |
cd submarine-sdk/pysubmarine
pytest --cov=submarine -vs -m "e2e"