Skip to content

Fix handling of model_dir in launch.py #1999

Fix handling of model_dir in launch.py

Fix handling of model_dir in launch.py #1999

Workflow file for this run

name: Build and Test
# Run the main build and test for all branch pushes and pull requests, do not repeat the build for tags
on:
push:
branches:
- '**'
pull_request:
env:
JAVA_DISTRIBUTION: "zulu"
PYTHON_VERSION: "3.13"
NODE_VERSION: "22"
jobs:
platform_build:
runs-on: ubuntu-latest
timeout-minutes: 20
strategy:
# Try to finish all jobs - it can be helpful to see if some succeed and others fail
fail-fast: false
matrix:
JAVA_VERSION:
- 11
- 17
- 21
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Java
uses: actions/setup-java@v4
with:
distribution: ${{ env.JAVA_DISTRIBUTION }}
java-version: ${{ matrix.JAVA_VERSION }}
# Turn on Gradle dependency caching
cache: gradle
- name: Build
run: ./gradlew classes testClasses --parallel
- name: Unit tests
run: ./gradlew test
# If the tests fail, make the output available for download
- name: Store failed test results
uses: actions/upload-artifact@v4
if: failure()
with:
name: junit-test-results
path: build/modules/*/reports/**
retention-days: 7
python_runtime:
# Testing targets for the Python model runtime
# Include the latest stable release (3.9)
# Oldest supported version is 3.6, this is required by Pandas 1.0
# (also note Python 3.5 is EOL, final release 3.5.10 was in September 2020)
# Do not include 2.7 - that ship has sailed!
strategy:
# Try to finish all jobs - it can be helpful to see if some succeed and others fail
fail-fast: false
matrix:
environment:
# Latest supported versions on all 3 major platforms
- { PLATFORM: "windows",
PYTHON_VERSION: "3.13",
PANDAS_DEPENDENCY: "'pandas ~= 2.2.0'",
PYSPARK_DEPENDENCY: "'pyspark ~= 3.5.0'" }
- { PLATFORM: "macos",
PYTHON_VERSION: "3.13",
PANDAS_DEPENDENCY: "'pandas ~= 2.2.0'",
PYSPARK_DEPENDENCY: "'pyspark ~= 3.5.0'" }
- { PLATFORM: "ubuntu",
PYTHON_VERSION: "3.13",
PANDAS_DEPENDENCY: "'pandas ~= 2.2.0'",
PYSPARK_DEPENDENCY: "'pyspark ~= 3.5.0'" }
# Python 3.12 requires Pandas 2.1, Pandas 2.0 only has binaries for 3.11
- { PLATFORM: "ubuntu",
PYTHON_VERSION: "3.12",
PANDAS_DEPENDENCY: "'pandas ~= 2.1.0'",
PYSPARK_DEPENDENCY: "'pyspark ~= 3.4.0'" }
# Force testing on the first release of the Pandas 2 series, requires Python 3.11
# Note NumPy 2.0 only works with Pandas 2.1 and later
- { PLATFORM: "ubuntu",
PYTHON_VERSION: "3.11",
PANDAS_DEPENDENCY: "'pandas == 2.0.0' 'numpy < 2.0.0'",
PYSPARK_DEPENDENCY: "'pyspark ~= 3.3.0'" }
# Test the latest release in the Pandas 1.X series
# This could also work with Python 3.11 but we want to test every supported Python version
- { PLATFORM: "ubuntu",
PYTHON_VERSION: "3.10",
PANDAS_DEPENDENCY: "'pandas ~= 1.5.0' 'numpy < 2.0.0'",
PYSPARK_DEPENDENCY: "'pyspark ~= 3.1.0'" }
# Oldest supported versions, force testing against .0 for Pandas and PySpark
# If those don't work due to bugs, we need to update README for the supported versions
- { PLATFORM: "ubuntu",
PYTHON_VERSION: "3.9",
PANDAS_DEPENDENCY: "'pandas == 1.2.0' 'numpy < 2.0.0'",
PYSPARK_DEPENDENCY: "'pyspark == 3.0.0'" }
# E.g. platform = "windows" -> build image = "windows-latest"
runs-on: ${{ matrix.environment.PLATFORM }}-latest
timeout-minutes: 20
steps:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.environment.PYTHON_VERSION }}
- name: PIP Upgrade
run: python -m pip install --upgrade pip
- name: Checkout
uses: actions/checkout@v4
- name: Install dependencies
run: |
cd tracdap-runtime/python
pip install ${{ matrix.environment.PANDAS_DEPENDENCY }}
pip install ${{ matrix.environment.PYSPARK_DEPENDENCY }}
pip install -r requirements.txt
- name: Protoc code generation
run: python tracdap-runtime/python/build_runtime.py --target codegen
- name: Unit tests
run: python tracdap-runtime/python/build_runtime.py --target test
- name: Python example models
run: python tracdap-runtime/python/build_runtime.py --target examples
web_api:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: npm
cache-dependency-path: tracdap-api/packages/web/package-lock.json
- name: Install dependencies
run: |
cd tracdap-api/packages/web
npm install
- name: Build API
run: |
cd tracdap-api/packages/web
npm run buildApi
documentation:
runs-on: ubuntu-latest
steps:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: PIP Upgrade
run: python -m pip install --upgrade pip
- name: Checkout
uses: actions/checkout@v4
- name: Install dependencies for build tools
run: |
cd dev/
pip install -r requirements.txt
- name: Run all docgen targets
run: |
cd dev/
python docgen/docgen-ctrl.py all