Skip to content

skyCatalogs CI

skyCatalogs CI #313

Workflow file for this run

name: skyCatalogs CI
on:
push:
branches:
- main
- releases/*
pull_request:
branches:
- main
- releases/*
schedule:
- cron: 0 23 * * 4
jobs:
rubin_sim_data:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-latest ]
py: [ "3.13" ]
CC: [ gcc ]
CXX: [ g++ ]
defaults:
run:
# cf. https://github.com/conda-incubator/setup-miniconda#important
shell: bash -l {0}
steps:
- uses: actions/checkout@v4
- name: Cache files
uses: actions/cache@v4
id: cache-rubin-sim-data
env:
cache-name: cache-rubin-sim-data
with:
path: rubin_sim_data/
key: rubin_sim_data_files
- name: Install rubin_sim_data (if not cached)
if: ${{ steps.cache-rubin-sim-data.outputs.cache-hit != 'true' }}
run: |
echo ${{ steps.cache-rubin-sim-data.outputs.cache-hit }}
mkdir rubin_sim_data
mkdir rubin_sim_data/sims_sed_library
# Just get the throughputs and SED data for now.
curl https://s3df.slac.stanford.edu/groups/rubin/static/sim-data/rubin_sim_data/throughputs_2023_09_07.tgz | tar -C rubin_sim_data -xz
curl https://s3df.slac.stanford.edu/groups/rubin/static/sim-data/sed_library/seds_170124.tar.gz | tar -C rubin_sim_data/sims_sed_library -xz
no-stack-build:
needs: [rubin_sim_data]
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-latest ]
py: [ "3.13" ]
CC: [ gcc ]
CXX: [ g++ ]
defaults:
run:
# cf. https://github.com/conda-incubator/setup-miniconda#important
shell: bash -l {0}
env:
VIRTUAL_ENV: .venv
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.py }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.py }}
- name: Cache files
uses: actions/cache@v4
id: cache-rubin-sim-data
env:
cache-name: cache-rubin-sim-data
with:
path: rubin_sim_data/
key: rubin_sim_data_files
- name: Install rubin_sim_data (if not cached)
if: ${{ steps.cache-rubin-sim-data.outputs.cache-hit != 'true' }}
run: |
echo ${{ steps.cache-rubin-sim-data.outputs.cache-hit }}
mkdir rubin_sim_data
mkdir rubin_sim_data/sims_sed_library
# Just get the throughputs and SED data for now.
curl https://s3df.slac.stanford.edu/groups/rubin/static/sim-data/rubin_sim_data/throughputs_2023_09_07.tgz | tar -C rubin_sim_data -xz
curl https://s3df.slac.stanford.edu/groups/rubin/static/sim-data/sed_library/seds_170124.tar.gz | tar -C rubin_sim_data/sims_sed_library -xz
- name: Install uv
uses: astral-sh/setup-uv@v6
with:
python-version: ${{ matrix.python-version }}
- name: Install skyCatalogs
run: |
uv venv
uv pip install pytest
uv pip install .
- name: Run tests without the LSST Stack
run: |
export RUBIN_SIM_DATA_DIR=`pwd`/rubin_sim_data
export SIMS_SED_LIBRARY_DIR=${RUBIN_SIM_DATA_DIR}/sims_sed_library
uv run pytest --ignore-glob=tests/test_gaia*.py --ignore-glob=tests/test_trilegal.py
full-stack-build:
needs: [rubin_sim_data]
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-latest ]
py: [ "3.13" ]
CC: [ gcc ]
CXX: [ g++ ]
defaults:
run:
# cf. https://github.com/conda-incubator/setup-miniconda#important
shell: bash -l {0}
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.py }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.py }}
- name: Verify python and pip versions
run: |
python --version
pip --version
- name: Audit disk usage and remove unneeded tooling
run: |
df -h
sudo rm -rf /usr/lib/jvm
sudo rm -rf /usr/share/dotnet
sudo rm -rf /usr/local/.ghcup
sudo rm -rf /usr/local/lib/android
sudo rm -rf /usr/local/chromium
df -h
- name: Setup conda
uses: conda-incubator/setup-miniconda@v3
with:
# Temporary to address conda issue
auto-update-conda: false
conda-version: "25.11.1"
activate-environment: stack
python-version: ${{ matrix.py }}
condarc-file: etc/.condarc
- name: Load cached files
uses: actions/cache@v4
id: cache-rubin-sim-data
env:
cache-name: cache-rubin-sim-data
with:
path: rubin_sim_data/
key: rubin_sim_data_files
- name: Install rubin_sim_data (if not cached)
if: ${{ steps.cache-rubin-sim-data.outputs.cache-hit != 'true' }}
run: |
mkdir rubin_sim_data
mkdir rubin_sim_data/sims_sed_library
# Just get the throughputs and SED data for now.
curl https://s3df.slac.stanford.edu/groups/rubin/static/sim-data/rubin_sim_data/throughputs_2023_09_07.tgz | tar -C rubin_sim_data -xz
curl https://s3df.slac.stanford.edu/groups/rubin/static/sim-data/sed_library/seds_170124.tar.gz | tar -C rubin_sim_data/sims_sed_library -xz
- name: Install conda test deps
run: |
# conda update -n base conda
conda info
conda list
conda install -y --file etc/conda_test_requirements.txt
conda info
- name: Install dependencies via conda
run: |
conda install -y --file etc/conda_requirements.txt
- name: Install pystellibs
run: |
git clone https://github.com/mfouesneau/pystellibs.git
cd pystellibs
pip install --no-build-isolation --no-deps -e .
cd ..
- name: Run tests with the LSST Stack
run: |
export RUBIN_SIM_DATA_DIR=`pwd`/rubin_sim_data
export SIMS_SED_LIBRARY_DIR=${RUBIN_SIM_DATA_DIR}/sims_sed_library
export PYTHONPATH=`pwd`/pystellibs:${PYTHONPATH}
eups list lsst_distrib
setup -k -r .
pytest --cov=skycatalogs --cov-report=xml --cov-report=term-missing tests/
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
fail_ci_if_error: false
files: coverage.xml
flags: unittests
name: codecov-umbrella
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true