Skip to content

[CI] Bump python version to 3.9 (#72) #178

[CI] Bump python version to 3.9 (#72)

[CI] Bump python version to 3.9 (#72) #178

Workflow file for this run

# Copyright 2018 The Nuclio Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
name: CI
on:
push:
branches:
- master
- development
pull_request:
branches:
- master
- development
env:
NUCLIO_LABEL: unstable
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Dump github context
run: echo "$GITHUB_CONTEXT"
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
- name: Dump runner context
run: echo "$RUNNER_CONTEXT"
env:
RUNNER_CONTEXT: ${{ toJson(runner) }}
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python_version }}
uses: actions/setup-python@v2
with:
python-version: 3.8
- name: Install dependencies
run: |
python -m pip install --upgrade pip
make install_pipenv
- name: Lint
run: make lint
unit:
name: Unit test (Python ${{ matrix.python_version }})
runs-on: ubuntu-latest
strategy:
matrix:
python_version: [ '3.8', '3.9', '3.10', '3.11' ]
steps:
- name: Dump github context
run: echo "$GITHUB_CONTEXT"
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
- name: Dump runner context
run: echo "$RUNNER_CONTEXT"
env:
RUNNER_CONTEXT: ${{ toJson(runner) }}
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python_version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python_version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
make install_pipenv PIPENV_PYTHON_VERSION=${{ matrix.python_version }}
- name: Test
run: make test
integration:
name: Integration test (Python ${{ matrix.python_version }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python_version: [ '3.8', '3.9', '3.10', '3.11' ]
steps:
- name: Dump github context
run: echo "$GITHUB_CONTEXT"
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
- name: Dump runner context
run: echo "$RUNNER_CONTEXT"
env:
RUNNER_CONTEXT: ${{ toJson(runner) }}
- name: Clone Nuclio sdk py
uses: actions/checkout@v3
with:
path: nuclio-sdk-py
- name: Clone Nuclio
uses: actions/checkout@v3
with:
repository: nuclio/nuclio
ref: development
path: nuclio
token: ${{ github.token }}
- uses: actions/setup-go@v4
with:
go-version: "^1.21.0"
- uses: actions/cache@v2
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/nuclio/go.sum') }}
restore-keys: |
${{ runner.os }}-go-
- name: Set runtime env
run: |
function_name=$(echo "sdk-py-func-${{ matrix.python_version }}" | tr '.' '-')
# if pull request, else push
if [ "${{ github.event_name }}" == "pull_request" ]; then\
actor=${{ github.actor }};\
branch=${{ github.head_ref }};\
else\
actor=${{ github.repository_owner }};\
branch=${GITHUB_REF#refs/heads/};\
fi
echo "FUNCTION_NAME=$function_name" >> $GITHUB_ENV
echo "ACTOR=$actor" >> $GITHUB_ENV
echo "BRANCH=$branch" >> $GITHUB_ENV
- name: Build nuctl
run: make nuctl-bin
working-directory: nuclio
- name: Install nuctl
run: |
# install nuctl
cp nuctl-$NUCLIO_LABEL-linux-amd64 nuctl
sudo -EH install nuctl /usr/local/bin
# print version for sanity
nuctl version
working-directory: nuclio
- name: Deploy function
run: |
nuctl deploy $FUNCTION_NAME \
--verbose \
--runtime python:${{ matrix.python_version }} \
--handler main:handler \
--build-command "@nuclio.postCopy" \
--build-command "pip install git+https://github.com/$ACTOR/nuclio-sdk-py.git@$BRANCH" \
--path $(pwd)/hack/ci_assets/function/main.py
working-directory: nuclio-sdk-py
env:
NUCLIO_DASHBOARD_DEFAULT_FUNCTION_MOUNT_MODE: volume
- name: Invoke function
run: |
echo "Hello, from CI" | nuctl invoke $FUNCTION_NAME --raise-on-status
- name: Print function container logs
run: |
docker logs nuclio-nuclio-$FUNCTION_NAME