Skip to content
Closed
Show file tree
Hide file tree
Changes from 9 commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
c8478bd
Update workflow to use uv and Python 3.10
vishakvik Aug 25, 2025
19b2372
change python version in dockerfile
vishakvik Aug 27, 2025
250dc09
change setup classifier and update datastream workflow
vishakvik Aug 27, 2025
120fdd8
add docker tags to the workflows
vishakvik Aug 27, 2025
5f3174c
Switch to ubuntu from Amazon Linux
vishakvik Aug 27, 2025
cc58473
use latest tag and don't set tag
vishakvik Aug 28, 2025
89e2d73
download correct hfsubset binary instead of invalid .tar.gz
vishakvik Aug 29, 2025
4ce1dd5
Update build_test_create_ami.yml
harshavemula-ua Sep 2, 2025
9a30e1d
Update build_test_create_ami.yml
harshavemula-ua Sep 2, 2025
b812943
Merge remote-tracking branch 'origin/main' into update_python_version…
vishakvik Sep 4, 2025
a3efe39
Merge remote-tracking branch 'origin/main' into update_python_version…
vishakvik Sep 8, 2025
6d2f9e0
Update build_test_push_docker_x86.yaml
harshavemula-ua Sep 8, 2025
edc14c6
Update versions.yml
harshavemula-ua Sep 8, 2025
1c70784
Uncomment docker build commands in workflow
Vishak-V Sep 8, 2025
1689341
use local build
vishakvik Sep 8, 2025
8826371
updated docker deps docker file
harshavemula-ua Sep 8, 2025
3de8c71
updated workflow
harshavemula-ua Sep 8, 2025
287d1f7
Update build_test_docker_x86.yaml
harshavemula-ua Sep 8, 2025
dd45c15
Update build_test_docker_x86.yaml
harshavemula-ua Sep 8, 2025
45456bc
Update build_test_docker_x86.yaml
harshavemula-ua Sep 8, 2025
65cf8c0
updated workflow
harshavemula-ua Sep 8, 2025
57be2ca
updated datastream dockerfile
harshavemula-ua Sep 8, 2025
7b2cd4b
reverted
harshavemula-ua Sep 8, 2025
d385518
updated dockerfile
harshavemula-ua Sep 8, 2025
53975e3
updated workflow
harshavemula-ua Sep 8, 2025
d4e9c6c
updated workflow
harshavemula-ua Sep 8, 2025
277c8e3
updated workflow
harshavemula-ua Sep 8, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions .github/workflows/build_test_create_ami.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@ name: Build, Test, and Push Datastream AMI
on:
workflow_dispatch:
push:
branches:
- main
paths:
- 'ami_version.yml'

Expand Down Expand Up @@ -503,4 +501,4 @@ jobs:
echo " OVERALL RESULT: All VPU tests passed successfully"
echo " Custom AMI is validated and preserved"
echo " Ready for production deployment"
fi
fi
11 changes: 9 additions & 2 deletions .github/workflows/build_test_docker_x86.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,18 @@ jobs:

- name: Install packages for datastream
run: |
curl -L -O https://github.com/lynker-spatial/hfsubsetCLI/releases/download/v1.1.0/hfsubset-v1.1.0-linux_amd64.tar.gz && tar -xzvf hfsubset-v1.1.0-linux_amd64.tar.gz && sudo mv ./hfsubset /usr/bin/hfsubset && sudo apt-get install git pip pigz -y
# Install system packages
sudo apt-get update && sudo apt-get install -y git python3-pip pigz

# Download and install hfsubset
wget -O hfsubset-v1.1.0-linux_amd64.tar.gz https://github.com/lynker-spatial/hfsubsetCLI/releases/download/v1.1.0/hfsubset-v1.1.0-linux_amd64.tar.gz
tar -xzvf hfsubset-v1.1.0-linux_amd64.tar.gz
sudo mv ./hfsubset /usr/bin/hfsubset
sudo chmod +x /usr/bin/hfsubset

- name: Build docker containers
run : |
./scripts/docker_builds.sh -f -d
./scripts/docker_builds.sh -e -f -d

- name: Test docker containers
run : |
Expand Down
9 changes: 8 additions & 1 deletion .github/workflows/build_test_push_docker_x86.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,14 @@ jobs:

- name: Install packages for datastream
run: |
curl -L -O https://github.com/lynker-spatial/hfsubsetCLI/releases/download/v1.1.0/hfsubset-v1.1.0-linux_amd64.tar.gz && tar -xzvf hfsubset-v1.1.0-linux_amd64.tar.gz && sudo mv ./hfsubset /usr/bin/hfsubset && sudo apt-get install git pip pigz -y
# Install system packages
sudo apt-get update && sudo apt-get install -y git python3-pip pigz

# Download and install hfsubset
wget -O hfsubset-v1.1.0-linux_amd64.tar.gz https://github.com/lynker-spatial/hfsubsetCLI/releases/download/v1.1.0/hfsubset-v1.1.0-linux_amd64.tar.gz
tar -xzvf hfsubset-v1.1.0-linux_amd64.tar.gz
sudo mv ./hfsubset /usr/bin/hfsubset
sudo chmod +x /usr/bin/hfsubset

- name: Build docker containers
run : |
Expand Down
12 changes: 8 additions & 4 deletions .github/workflows/datastream_python.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,17 +24,21 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.9
- name: Set up Python 3.10
uses: actions/setup-python@v3
with:
python-version: "3.9"
python-version: "3.10"

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e ./python_tools
pip install pytest
pip install uv
uv venv
source .venv/bin/activate
uv pip install -e ./python_tools
uv pip install pytest

- name: Test with pytest
run: |
source .venv/bin/activate
python -m pytest -vv python_tools/
12 changes: 8 additions & 4 deletions .github/workflows/forcingprocessor_aws_sources.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.9
- name: Set up Python 3.10
uses: actions/setup-python@v3
with:
python-version: "3.9"
python-version: "3.10"

- name: Configure AWS
run: |
Expand All @@ -38,11 +38,15 @@ jobs:
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e ./forcingprocessor
pip install pytest
pip install uv
uv venv
source .venv/bin/activate
uv pip install -e ./forcingprocessor
uv pip install pytest
Comment on lines +41 to +45
Copy link

Copilot AI Aug 26, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The virtual environment activation command source .venv/bin/activate may not persist between shell commands in GitHub Actions. Consider using uv run instead of manual activation, or ensure each command that needs the virtual environment includes the activation in the same step.

Copilot uses AI. Check for mistakes.

- name: Test with pytest
run: |
source .venv/bin/activate
cd forcingprocessor
python -m pytest -vv -k test_noaa_nwm_pds_https
python -m pytest -vv -k test_noaa_nwm_pds_https_short_range
Expand Down
12 changes: 8 additions & 4 deletions .github/workflows/forcingprocessor_gcs_sources.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.9
- name: Set up Python 3.10
uses: actions/setup-python@v3
with:
python-version: "3.9"
python-version: "3.10"

- name: Configure AWS
run: |
Expand All @@ -38,11 +38,15 @@ jobs:
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e ./forcingprocessor
pip install pytest
pip install uv
uv venv
source .venv/bin/activate
uv pip install -e ./forcingprocessor
uv pip install pytest
Comment on lines +41 to +45
Copy link

Copilot AI Aug 26, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The virtual environment activation command source .venv/bin/activate may not persist between shell commands in GitHub Actions. Consider using uv run instead of manual activation, or ensure each command that needs the virtual environment includes the activation in the same step.

Copilot uses AI. Check for mistakes.

- name: Test with pytest
run: |
source .venv/bin/activate
cd forcingprocessor
python -m pytest -vv -k test_google_cloud_storage
python -m pytest -vv -k test_gs
Expand Down
12 changes: 8 additions & 4 deletions .github/workflows/forcingprocessor_output_opts.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.9
- name: Set up Python 3.10
uses: actions/setup-python@v3
with:
python-version: "3.9"
python-version: "3.10"

- name: Configure AWS
run: |
Expand All @@ -38,11 +38,15 @@ jobs:
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e ./forcingprocessor
pip install pytest
pip install uv
uv venv
source .venv/bin/activate
uv pip install -e ./forcingprocessor
uv pip install pytest
Comment on lines +41 to +45
Copy link

Copilot AI Aug 26, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The virtual environment activation command source .venv/bin/activate may not persist between shell commands in GitHub Actions. Consider using uv run instead of manual activation, or ensure each command that needs the virtual environment includes the activation in the same step.

Copilot uses AI. Check for mistakes.

- name: Test with pytest
run: |
source .venv/bin/activate
cd forcingprocessor
# netcdf already tested
python -m pytest -vv -k test_csv_output_type
Expand Down
12 changes: 8 additions & 4 deletions .github/workflows/forcingprocessor_plotting.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.9
- name: Set up Python 3.10
uses: actions/setup-python@v3
with:
python-version: "3.9"
python-version: "3.10"

- name: Configure AWS
run: |
Expand All @@ -38,11 +38,15 @@ jobs:
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e ./forcingprocessor
pip install pytest
pip install uv
uv venv
source .venv/bin/activate
uv pip install -e ./forcingprocessor
uv pip install pytest
Comment on lines +41 to +45
Copy link

Copilot AI Aug 26, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The virtual environment activation command source .venv/bin/activate may not persist between shell commands in GitHub Actions. Consider using uv run instead of manual activation, or ensure each command that needs the virtual environment includes the activation in the same step.

Copilot uses AI. Check for mistakes.

- name: Test with pytest
run: |
source .venv/bin/activate
cd forcingprocessor
python -m pytest -vv tests/test_plotter.py
python -m pytest -vv -k test_plotting
Expand Down
12 changes: 8 additions & 4 deletions .github/workflows/forcingprocessor_weights.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.9
- name: Set up Python 3.10
uses: actions/setup-python@v3
with:
python-version: "3.9"
python-version: "3.10"

- name: Configure AWS
run: |
Expand All @@ -38,10 +38,14 @@ jobs:
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e ./forcingprocessor
pip install pytest
pip install uv
uv venv
source .venv/bin/activate
uv pip install -e ./forcingprocessor
uv pip install pytest

- name: Test with hf2ds
run: |
source .venv/bin/activate
cd forcingprocessor
python -m pytest -vv tests/test_hf2ds.py
Comment on lines +43 to 51
Copy link

Copilot AI Aug 26, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The virtual environment activation command source .venv/bin/activate may not persist between shell commands in GitHub Actions. Consider using uv run instead of manual activation, or ensure each command that needs the virtual environment includes the activation in the same step.

Suggested change
source .venv/bin/activate
uv pip install -e ./forcingprocessor
uv pip install pytest
- name: Test with hf2ds
run: |
source .venv/bin/activate
cd forcingprocessor
python -m pytest -vv tests/test_hf2ds.py
uv pip install -e ./forcingprocessor
uv pip install pytest
- name: Test with hf2ds
run: |
cd forcingprocessor
uv run python -m pytest -vv tests/test_hf2ds.py

Copilot uses AI. Check for mistakes.
2 changes: 1 addition & 1 deletion .github/workflows/test_datastream_ngiab.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ jobs:

- name: Build docker containers
run : |
./scripts/docker_builds.sh -f -d
./scripts/docker_builds.sh -e -f -d

- name: Base test and NWM_RETRO_V3
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test_datastream_options.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ jobs:

- name: Build docker containers
run : |
./scripts/docker_builds.sh -f -d
./scripts/docker_builds.sh -e -f -d

- name: Get geopackage
run: |
Expand Down
7 changes: 5 additions & 2 deletions .github/workflows/test_hfsubset_v2_1.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,14 @@ jobs:

- name: Build docker containers
run : |
./scripts/docker_builds.sh -f -d
./scripts/docker_builds.sh -e -f -d

- name: Install packages for datastream
run: |
curl -L -O https://github.com/lynker-spatial/hfsubsetCLI/releases/download/v1.1.0/hfsubset-v1.1.0-linux_amd64.tar.gz && tar -xzvf hfsubset-v1.1.0-linux_amd64.tar.gz && sudo mv ./hfsubset /usr/bin/hfsubset
wget -O hfsubset-v1.1.0-linux_amd64.tar.gz https://github.com/lynker-spatial/hfsubsetCLI/releases/download/v1.1.0/hfsubset-v1.1.0-linux_amd64.tar.gz
tar -xzvf hfsubset-v1.1.0-linux_amd64.tar.gz
sudo mv ./hfsubset /usr/bin/hfsubset
sudo chmod +x /usr/bin/hfsubset

- name: Get geopackage v2.1
if: always()
Expand Down
7 changes: 5 additions & 2 deletions .github/workflows/test_hfsubset_v2_2.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,14 @@ jobs:

- name: Build docker containers
run : |
./scripts/docker_builds.sh -f -d
./scripts/docker_builds.sh -e -f -d

- name: Install packages for datastream
run: |
curl -L -O https://github.com/lynker-spatial/hfsubsetCLI/releases/download/v1.1.0/hfsubset-v1.1.0-linux_amd64.tar.gz && tar -xzvf hfsubset-v1.1.0-linux_amd64.tar.gz && sudo mv ./hfsubset /usr/bin/hfsubset
wget -O hfsubset-v1.1.0-linux_amd64.tar.gz https://github.com/lynker-spatial/hfsubsetCLI/releases/download/v1.1.0/hfsubset-v1.1.0-linux_amd64.tar.gz
tar -xzvf hfsubset-v1.1.0-linux_amd64.tar.gz
sudo mv ./hfsubset /usr/bin/hfsubset
sudo chmod +x /usr/bin/hfsubset

- name: Get geopackage v2.2
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test_teehr_integration.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ jobs:

- name: Build docker containers
run : |
./scripts/docker_builds.sh -f -d
./scripts/docker_builds.sh -e -f -d

- name: Get geopackage
run: |
Expand Down
25 changes: 18 additions & 7 deletions docker/Dockerfile.datastream-deps
Original file line number Diff line number Diff line change
@@ -1,12 +1,23 @@
FROM amazonlinux:2023 AS datastream-base
FROM ubuntu:22.04 AS datastream-base

RUN dnf -y install pigz tar git python3.9 python3-pip
# Install basic tools and Python 3.10 (default in Ubuntu 22.04)
RUN apt-get update && apt-get install -y \
pigz tar git python3 python3-pip python3-dev \
wget gcc g++ make cmake \
zlib1g-dev libssl-dev libffi-dev libsqlite3-dev \
&& apt-get clean && rm -rf /var/lib/apt/lists/*

# Verify Python version
RUN python3 --version && pip3 --version

ARG ARCH="x86"
RUN if [ "${ARCH}" = "aarch64" ]; then \
dnf -y install wget gcc-c++ cpp sqlite-devel libtiff cmake python3-devel openssl-devel tcl libtiff-devel libcurl-devel swig libpng-devel libjpeg-turbo-devel expat-devel && \
dnf clean all && \
pip3 install setuptools numpy; \
apt-get update && apt-get install -y \
wget g++ cpp libsqlite3-dev libtiff-dev cmake python3-dev \
libssl-dev tcl libtiff5-dev libcurl4-openssl-dev swig \
libpng-dev libjpeg-turbo8-dev libexpat1-dev \
&& apt-get clean && rm -rf /var/lib/apt/lists/* \
&& pip3 install setuptools numpy; \
fi

# --- PROJ Install ---
Expand Down Expand Up @@ -37,7 +48,7 @@ RUN if [ "${ARCH}" = "aarch64" ]; then \

# --- HDF5 Install ---
RUN if [ "${ARCH}" = "aarch64" ]; then \
dnf -y install python3.11-devel python3-Cython && \
apt-get update && apt-get install -y python3-dev cython3 && \
wget https://hdf-wordpress-1.s3.amazonaws.com/wp-content/uploads/manual/HDF5/HDF5_1_14_3/src/hdf5-1.14.3.tar.gz && \
tar zxvf hdf5-1.14.3.tar.gz && \
cd hdf5-1.14.3 && \
Expand All @@ -52,7 +63,7 @@ RUN if [ "${ARCH}" = "aarch64" ]; then \

# --- GEOS Install ---
RUN if [ "${ARCH}" = "aarch64" ]; then \
dnf -y install wget gcc-c++ make cmake bzip2 && \
apt-get update && apt-get install -y wget g++ make cmake bzip2 && \
wget https://download.osgeo.org/geos/geos-3.12.1.tar.bz2 && \
tar xvjf geos-3.12.1.tar.bz2 && \
cd geos-3.12.1 && \
Expand Down
4 changes: 2 additions & 2 deletions forcingprocessor/setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ classifiers =
Intended Audience :: Education
Intended Audience :: Science/Research
License :: Free To Use But Restricted
Programming Language :: Python :: 3.9
Programming Language :: Python :: 3.10
Topic :: Scientific/Engineering :: Hydrology
Operating System :: OS Independent

Expand Down Expand Up @@ -46,7 +46,7 @@ install_requires =
scipy
xarray

python_requires = >=3.9
python_requires = >=3.10
include_package_data = True

[options.packages.find]
Expand Down