feat(api): Refactor API server to introduce support for Docker image registries and s3 bucket support #1028
Workflow file for this run
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: sdk | |
on: | |
# Automatically run CI on Release and Pre-Release tags and main branch | |
# (only if there are changes to relevant paths) | |
push: | |
tags: | |
- "sdk/v[0-9]+.[0-9]+.[0-9]+*" | |
branches: | |
- main | |
paths: | |
- ".github/workflows/sdk.yaml" | |
- "sdk/**" | |
# Automatically run CI on branches, that have active PR opened | |
pull_request: | |
branches: | |
- main | |
paths: | |
- ".github/workflows/sdk.yaml" | |
- "sdk/**" | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: ["3.8", "3.9", "3.10"] | |
defaults: | |
run: | |
working-directory: ./sdk | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Setup Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
cache: pip | |
cache-dependency-path: | | |
sdk/requirements.txt | |
sdk/requirements.dev.txt | |
engines/pyfunc-ensembler-service/requirements.dev.txt | |
- name: Install dependencies | |
run: make setup | |
- name: Run unit tests | |
run: make test | |
- uses: codecov/codecov-action@v4 | |
with: | |
flags: sdk-test-${{ matrix.python-version }} | |
name: sdk-test-${{ matrix.python-version }} | |
token: ${{ secrets.CODECOV_TOKEN }} | |
codecov_yml_path: ./.github/workflows/codecov-config/codecov.yml | |
release-rules: | |
runs-on: ubuntu-latest | |
outputs: | |
release-type: ${{ steps.release-rules.outputs.release-type }} | |
steps: | |
- uses: actions/checkout@v4 | |
- id: release-rules | |
uses: ./.github/actions/release-rules | |
with: | |
prefix: sdk/ | |
publish: | |
# Automatically publish release and pre-release artifacts. | |
# | |
# Dev builds can be released from the 'main' branch by | |
# approving 'deployment' into the 'manual' environment | |
if: >- | |
contains('release,pre-release', needs.release-rules.outputs.release-type) | |
|| ( github.event_name != 'pull_request' ) | |
|| ( github.event.pull_request.head.repo.full_name == github.repository ) | |
runs-on: ubuntu-latest | |
needs: | |
- release-rules | |
- test | |
environment: ${{ needs.release-rules.outputs.release-type == 'dev' && 'manual' || '' }} | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
with: | |
# fetch full history for a proper version number assignment | |
fetch-depth: 0 | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.8 | |
cache: pip | |
cache-dependency-path: | | |
sdk/requirements.txt | |
sdk/requirements.dev.txt | |
engines/pyfunc-ensembler-service/requirements.dev.txt | |
- name: Build | |
working-directory: ./sdk | |
run: | | |
make setup | |
make build | |
- name: Publish | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
with: | |
user: __token__ | |
password: ${{ secrets.PYPI_API_TOKEN }} | |
packages_dir: sdk/dist |