Skip to content

New Python environment based on FastAPI framework #458

New Python environment based on FastAPI framework

New Python environment based on FastAPI framework #458

Workflow file for this run

name: Environments build and test
on:
pull_request:
branches: [master]
jobs:
# Job to run change detection
check:
runs-on: ubuntu-latest
outputs:
packages: ${{ steps.filter.outputs.changes }}
steps:
- name: Checkout the current repo
uses: actions/checkout@v1
- uses: dorny/paths-filter@v2
id: filter
with:
filters: .github/workflows/filters/filters.yaml
binary:
runs-on: ubuntu-latest
needs: check
if: contains( needs.check.outputs.packages, 'binary')
steps:
- name: Checkout sources
uses: actions/checkout@v2
- name: setup go
uses: actions/setup-go@v2
with:
go-version: 1.22
- name: Unit test
run: |
pushd binary/
./test/local_test.sh
popd
- name: Helm
uses: Azure/setup-helm@5119fcb9089d432beecbf79bb2c7915207344b78 # v3.5
with:
version: v3.13.0
- name: Kind Clutser
uses: engineerd/[email protected]
with:
image: kindest/node:v1.25.16
version: v0.23.0
config: kind.yaml
- name: Base Setup
run: |
make verify-kind-cluster
make install-fission-cli
make install-skaffold
make create-crds
- name: Fission and test images
run: |
SKAFFOLD_PROFILE=binary make skaffold-run
make binary-test-images
make router-port-forward
- name: binary-tests
run: ./test_utils/run_test.sh ./binary/test/test_binary_env.sh
- name: Collect Fission Dump
if: ${{ always() }}
run: |
command -v fission && fission support dump
- name: Archive fission dump
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: fission-dump
path: fission-dump/*.zip
retention-days: 5
go:
runs-on: ubuntu-latest
needs: check
if: contains( needs.check.outputs.packages, 'go' )
steps:
- name: Checkout sources
uses: actions/checkout@v2
- name: Helm
uses: Azure/setup-helm@5119fcb9089d432beecbf79bb2c7915207344b78 # v3.5
with:
version: v3.13.0
- name: Kind Clutser
uses: engineerd/[email protected]
with:
image: kindest/node:v1.25.16
version: v0.23.0
config: kind.yaml
- name: Base Setup
run: |
make verify-kind-cluster
make install-fission-cli
make install-skaffold
make create-crds
- name: Fission and Test images
run: |
SKAFFOLD_PROFILE=go make skaffold-run
make go-test-images
make router-port-forward
- name: go-tests
run: ./test_utils/run_test.sh ./go/tests/test_go_env.sh
- name: Collect Fission Dump
if: ${{ always() }}
run: |
command -v fission && fission support dump
- name: Archive fission dump
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: fission-dump
path: fission-dump/*.zip
retention-days: 5
jvm:
runs-on: ubuntu-latest
needs: check
if: contains( needs.check.outputs.packages, 'jvm' )
steps:
- name: Checkout sources
uses: actions/checkout@v2
- uses: dorny/paths-filter@v2
id: filter
with:
filters: .github/workflows/filters/filters.yaml
- name: Helm
uses: Azure/setup-helm@5119fcb9089d432beecbf79bb2c7915207344b78 # v3.5
with:
version: v3.13.0
- name: Kind Clutser
uses: engineerd/[email protected]
with:
image: kindest/node:v1.25.16
version: v0.23.0
config: kind.yaml
- name: Configuring and testing the Installation
run: |
kubectl cluster-info --context kind-kind
kind get kubeconfig >$HOME/.kube/config
kubectl get nodes
- name: Base Setup
run: |
make verify-kind-cluster
make install-fission-cli
make install-skaffold
make create-crds
- name: jvm
run: |
SKAFFOLD_PROFILE=jvm make skaffold-run
make jvm-test-images
make router-port-forward
- name: jvm-tests
run: ./test_utils/run_test.sh jvm/tests/test_java_env.sh
nodejs:
runs-on: ubuntu-latest
needs: check
if: contains( needs.check.outputs.packages, 'nodejs' )
steps:
- name: Checkout sources
uses: actions/checkout@v2
- uses: actions/setup-node@v4
with:
node-version: '20'
- name: Unit test
run: |
pushd nodejs/
npm install
./test/local_test.sh
popd
- name: Helm
uses: Azure/setup-helm@5119fcb9089d432beecbf79bb2c7915207344b78 # v3.5
with:
version: v3.13.0
- name: Kind Clutser
uses: engineerd/[email protected]
with:
image: kindest/node:v1.25.16
version: v0.23.0
config: kind.yaml
- name: Base Setup
run: |
make verify-kind-cluster
make install-fission-cli
make install-skaffold
make create-crds
- name: Fission and Test images
run: |
SKAFFOLD_PROFILE=nodejs make skaffold-run
make nodejs-test-images
make router-port-forward
- name: nodejs-tests
run: |
./test_utils/run_test.sh ./nodejs/test/test_node_env.sh
- name: Collect Fission Dump
if: ${{ always() }}
run: |
command -v fission && fission support dump
- name: Archive fission dump
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: fission-dump
path: fission-dump/*.zip
retention-days: 5
perl:
runs-on: ubuntu-latest
if: contains( needs.check.outputs.packages, 'perl' )
needs: check
steps:
- name: Checkout sources
uses: actions/checkout@v2
- uses: dorny/paths-filter@v2
id: filter
with:
filters: .github/workflows/filters/filters.yaml
- name: Helm
uses: Azure/setup-helm@v1
- name: Kind Clutser
uses: engineerd/[email protected]
with:
config: kind.yaml
- name: Configuring and testing the Installation
run: |
kubectl cluster-info --context kind-kind
kind get kubeconfig >$HOME/.kube/config
kubectl get nodes
- name: Install Fission CLI
run: |
curl -Lo fission https://github.com/fission/fission/releases/download/1.12.0/fission-cli-linux \
&& chmod +x fission && sudo mv fission /usr/local/bin/
- name: perl
if: steps.filter.outputs.perl == 'true'
uses: hiberbee/[email protected]
with:
command: run
profile: perl
php7:
runs-on: ubuntu-latest
needs: check
if: contains( needs.check.outputs.packages, 'php7' )
steps:
- name: Checkout sources
uses: actions/checkout@v2
- uses: dorny/paths-filter@v2
id: filter
with:
filters: .github/workflows/filters/filters.yaml
- name: Helm
uses: Azure/setup-helm@v1
- name: Kind Clutser
uses: engineerd/[email protected]
with:
config: kind.yaml
- name: Configuring and testing the Installation
run: |
kubectl cluster-info --context kind-kind
kind get kubeconfig >$HOME/.kube/config
kubectl get nodes
- name: Install Fission CLI
run: |
curl -Lo fission https://github.com/fission/fission/releases/download/1.12.0/fission-cli-linux \
&& chmod +x fission && sudo mv fission /usr/local/bin/
- name: php7
uses: hiberbee/[email protected]
with:
command: run
profile: php7
python:
runs-on: ubuntu-latest
needs: check
if: contains( needs.check.outputs, 'python' )
steps:
- name: Checkout sources
uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: '3.11'
- name: Unit test
run: |
pip3 install virtualenv
sudo apt-get update -y && sudo apt-get install -y libev-dev
pushd python/
export USERFUNCVOL=/tmp
export RUNTIME_PORT=8882
./tests/local_test.sh
export RUNTIME_PORT=8883
export WSGI_FRAMEWORK=GEVENT
./tests/local_test.sh
unset RUNTIME_PORT
popd
- name: Helm
uses: Azure/setup-helm@5119fcb9089d432beecbf79bb2c7915207344b78 # v3.5
with:
version: v3.13.0
- name: Kind Clutser
uses: engineerd/[email protected]
with:
image: kindest/node:v1.25.16
version: v0.23.0
config: kind.yaml
- name: Base Setup
run: |
make verify-kind-cluster
make install-fission-cli
make install-skaffold
make create-crds
- name: Fission and Test images
run: |
SKAFFOLD_PROFILE=python make skaffold-run
make python-test-images
make router-port-forward
- name: python-tests
run: |
./test_utils/run_test.sh ./python/tests/test_python_env.sh
- name: Collect Fission Dump
if: ${{ always() }}
run: |
command -v fission && fission support dump
- name: Archive fission dump
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: fission-dump
path: fission-dump/*.zip
retention-days: 5
python-fastapi:
runs-on: ubuntu-latest
needs: check
if: contains( needs.check.outputs.packages, 'python-fastapi' )
steps:
- name: Checkout sources
uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: '3.11'
- name: Unit test
run: |
pip3 install virtualenv
sudo apt-get update -y && sudo apt-get install -y libev-dev
pushd python-fastapi/
export USERFUNCVOL=/tmp
export RUNTIME_PORT=8882
./tests/local_test.sh
unset RUNTIME_PORT
popd
- name: Helm
uses: Azure/setup-helm@5119fcb9089d432beecbf79bb2c7915207344b78 # v3.5
with:
version: v3.13.0
- name: Kind Clutser
uses: engineerd/[email protected]
with:
image: kindest/node:v1.25.16
version: v0.23.0
config: kind.yaml
- name: Base Setup
run: |
make verify-kind-cluster
make install-fission-cli
make install-skaffold
make create-crds
- name: Fission and Test images
run: |
SKAFFOLD_PROFILE=python-fastapi make skaffold-run
make python-fastapi-test-images
make router-port-forward
- name: python-fastapi-tests
run: |
./test_utils/run_test.sh ./python-fastapi/tests/test_python_fastapi_env.sh
- name: Collect Fission Dump
if: ${{ always() }}
run: |
command -v fission && fission support dump
- name: Archive fission dump
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: fission-dump
path: fission-dump/*.zip
retention-days: 5
ruby:
runs-on: ubuntu-latest
needs: check
if: contains(needs.check.outputs.packages, 'ruby')
steps:
- name: Checkout sources
uses: actions/checkout@v2
- uses: dorny/paths-filter@v2
id: filter
with:
filters: .github/workflows/filters/filters.yaml
- name: Helm
uses: Azure/setup-helm@v1
- name: Kind Clutser
uses: engineerd/[email protected]
with:
config: kind.yaml
- name: Configuring and testing the Installation
run: |
kubectl cluster-info --context kind-kind
kind get kubeconfig >$HOME/.kube/config
kubectl get nodes
- name: Install Fission CLI
run: |
curl -Lo fission https://github.com/fission/fission/releases/download/1.12.0/fission-cli-linux \
&& chmod +x fission && sudo mv fission /usr/local/bin/
- name: ruby
uses: hiberbee/[email protected]
with:
command: run
profile: ruby
tensorflow:
runs-on: ubuntu-latest
needs: check
if: contains(needs.check.outputs.packages, 'tensorflow-serving')
steps:
- name: Checkout sources
uses: actions/checkout@v2
- uses: dorny/paths-filter@v2
id: filter
with:
filters: .github/workflows/filters/filters.yaml
- name: Helm
uses: Azure/setup-helm@v1
- name: Kind Clutser
uses: engineerd/[email protected]
with:
config: kind.yaml
- name: Configuring and testing the Installation
run: |
kubectl cluster-info --context kind-kind
kind get kubeconfig >$HOME/.kube/config
kubectl get nodes
- name: Install Fission CLI
run: |
curl -Lo fission https://github.com/fission/fission/releases/download/1.12.0/fission-cli-linux \
&& chmod +x fission && sudo mv fission /usr/local/bin/
- name: tensorflow-serving
if: steps.filter.outputs.tensorflow-serving == 'true'
uses: hiberbee/[email protected]
with:
command: run
profile: tensorflow-serving