sqme: xrmemreader #931
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: Run Code Checks | |
on: | |
pull_request: | |
push: | |
jobs: | |
build-wheels: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.10" | |
- uses: actions/cache@v4 | |
id: wheels_cache | |
with: | |
path: ./wheels | |
key: wheels-${{ github.sha }} | |
- name: Install Dependencies | |
run: | | |
python -m pip install --upgrade pip | |
python -m pip install --upgrade setuptools | |
python -m pip install --upgrade \ | |
toml \ | |
wheel \ | |
packaging \ | |
twine | |
python -m pip freeze | |
- name: Build Clean Packages | |
run: | | |
mkdir -p ./wheels/clean | |
python setup.py bdist_wheel --dist-dir ./wheels/clean/ | |
python setup.py sdist --dist-dir ./wheels/clean/ | |
find ./wheels/clean -type f | |
- name: Patch Package Versions | |
run: | | |
find . -name _version.py | xargs python ./scripts/patch_version.py ${GITHUB_RUN_NUMBER:-0} | |
- name: Build Dev Packages | |
run: | | |
mkdir -p ./wheels/dev | |
python setup.py bdist_wheel --dist-dir ./wheels/dev/ | |
python setup.py sdist --dist-dir ./wheels/dev/ | |
find ./wheels/dev -type f | |
build-test-env-base: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/cache@v4 | |
id: conda_cache | |
with: | |
path: /tmp/test_env | |
key: ${{ runner.os }}-test-env-py310-${{ hashFiles('tests/test-env-py310.yml') }} | |
- uses: conda-incubator/setup-miniconda@v3 | |
if: steps.conda_cache.outputs.cache-hit != 'true' | |
with: | |
miniforge-variant: Mambaforge | |
miniforge-version: latest | |
use-mamba: true | |
- name: Dump Conda Environment Info | |
shell: bash -l {0} | |
if: steps.conda_cache.outputs.cache-hit != 'true' | |
run: | | |
conda info | |
conda list | |
mamba -V | |
conda config --show-sources | |
conda config --show | |
printenv | sort | |
- name: Build Python Environment for Testing | |
shell: bash -l {0} | |
if: steps.conda_cache.outputs.cache-hit != 'true' | |
run: | | |
mamba env create -f tests/test-env-py310.yml -p /tmp/test_env | |
- name: Check Python Env | |
shell: bash -l {0} | |
if: steps.conda_cache.outputs.cache-hit != 'true' | |
run: | | |
mamba env export -p /tmp/test_env | |
build-binder-env: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/cache@v4 | |
id: binder_cache | |
with: | |
path: /tmp/binder_env | |
key: ${{ runner.os }}-binder-env-${{ hashFiles('binder/environment.yml') }} | |
- uses: conda-incubator/setup-miniconda@v3 | |
if: steps.binder_cache.outputs.cache-hit != 'true' | |
with: | |
miniforge-variant: Mambaforge | |
miniforge-version: latest | |
use-mamba: true | |
- name: Dump Conda Environment Info | |
shell: bash -l {0} | |
if: steps.binder_cache.outputs.cache-hit != 'true' | |
run: | | |
conda info | |
conda list | |
mamba -V | |
conda config --show-sources | |
conda config --show | |
printenv | sort | |
- name: Build Python Environment for Notebooks | |
shell: bash -l {0} | |
if: steps.binder_cache.outputs.cache-hit != 'true' | |
run: | | |
cd binder | |
mamba env create -f environment.yml -p /tmp/binder_env | |
- name: Check Python Env | |
shell: bash -l {0} | |
if: steps.binder_cache.outputs.cache-hit != 'true' | |
run: | | |
mamba env export -p /tmp/binder_env | |
run-black-check: | |
runs-on: ubuntu-latest | |
needs: | |
- build-test-env-base | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Get Conda Environment from Cache | |
uses: actions/cache@v4 | |
id: conda_cache | |
with: | |
path: /tmp/test_env | |
key: ${{ runner.os }}-test-env-py310-${{ hashFiles('tests/test-env-py310.yml') }} | |
- name: Update PATH | |
shell: bash | |
run: | | |
echo "/tmp/test_env/bin" >> $GITHUB_PATH | |
- name: Check formatting (black) | |
shell: bash | |
run: | | |
black --version | |
black --check --diff . | |
run-pylint: | |
runs-on: ubuntu-latest | |
needs: | |
- build-test-env-base | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Get Conda Environment from Cache | |
uses: actions/cache@v4 | |
id: conda_cache | |
with: | |
path: /tmp/test_env | |
key: ${{ runner.os }}-test-env-py310-${{ hashFiles('tests/test-env-py310.yml') }} | |
- name: Update PATH | |
shell: bash | |
run: | | |
echo "/tmp/test_env/bin" >> $GITHUB_PATH | |
- name: Install in Edit mode | |
shell: bash | |
run: | | |
pip install -e . --no-deps | |
- name: Check with pylint | |
shell: bash | |
run: | | |
pylint -v odc | |
run-mypy: | |
runs-on: ubuntu-latest | |
needs: | |
- build-test-env-base | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Get Conda Environment from Cache | |
uses: actions/cache@v4 | |
id: conda_cache | |
with: | |
path: /tmp/test_env | |
key: ${{ runner.os }}-test-env-py310-${{ hashFiles('tests/test-env-py310.yml') }} | |
- name: Update PATH | |
shell: bash | |
run: | | |
echo "/tmp/test_env/bin" >> $GITHUB_PATH | |
- name: Check with mypy | |
shell: bash | |
run: | | |
python -m mypy --namespace-packages --explicit-package-bases odc | |
test-without-botocore: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.10" | |
cache: "pip" | |
cache-dependency-path: | | |
setup.cfg | |
requirements-dev.txt | |
- name: Install odc-stac | |
shell: bash -l {0} | |
run: pip install -e . | |
- name: Install development requirements | |
shell: bash -l {0} | |
run: pip install -r requirements-dev.txt | |
- name: Run tests | |
shell: bash -l {0} | |
run: pytest tests odc | |
env: | |
DASK_TEMPORARY_DIRECTORY: /tmp/dask | |
test-with-botocore-and-coverage: | |
runs-on: ubuntu-latest | |
needs: | |
- build-test-env-base | |
- run-black-check | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Get Conda Environment from Cache | |
uses: actions/cache@v4 | |
id: conda_cache | |
with: | |
path: /tmp/test_env | |
key: ${{ runner.os }}-test-env-py310-${{ hashFiles('tests/test-env-py310.yml') }} | |
- name: Update PATH | |
shell: bash | |
run: | | |
echo "/tmp/test_env/bin" >> $GITHUB_PATH | |
- name: Install in Edit mode | |
shell: bash | |
run: | | |
pip install -e '.[botocore]' --no-deps | |
- name: Run Tests | |
shell: bash | |
run: | | |
echo "Running Tests" | |
pytest --cov=. \ | |
--cov-report=html \ | |
--cov-report=xml:coverage.xml \ | |
--timeout=30 \ | |
tests odc | |
env: | |
AWS_DEFAULT_REGION: us-west-2 | |
DASK_TEMPORARY_DIRECTORY: /tmp/dask | |
- name: Upload Coverage | |
if: | | |
github.repository == 'opendatacube/odc-stac' | |
uses: codecov/codecov-action@v4 | |
with: | |
fail_ci_if_error: false | |
verbose: false | |
test-wheels: | |
runs-on: ubuntu-latest | |
needs: | |
- build-test-env-base | |
- run-black-check | |
- build-wheels | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Get Wheels from Cache | |
uses: actions/cache@v4 | |
id: wheels_cache | |
with: | |
path: ./wheels | |
key: wheels-${{ github.sha }} | |
- name: Get Conda Environment from Cache | |
uses: actions/cache@v4 | |
id: conda_cache | |
with: | |
path: /tmp/test_env | |
key: ${{ runner.os }}-test-env-py310-${{ hashFiles('tests/test-env-py310.yml') }} | |
- name: Update PATH | |
shell: bash | |
run: | | |
echo "/tmp/test_env/bin" >> $GITHUB_PATH | |
- name: Install wheels for testing | |
shell: bash | |
run: | | |
which python | |
ls -lh wheels/clean | |
python -m pip install --no-deps wheels/clean/*whl | |
python -m pip check || true | |
- name: Run Tests | |
shell: bash | |
run: | | |
echo "Running Tests" | |
pytest --timeout=30 tests odc | |
env: | |
AWS_DEFAULT_REGION: us-west-2 | |
DASK_TEMPORARY_DIRECTORY: /tmp/dask | |
build-notebooks: | |
runs-on: ubuntu-latest | |
needs: | |
- build-binder-env | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/cache@v4 | |
id: nb_cache | |
with: | |
path: docs/notebooks | |
key: docs-notebooks-${{ hashFiles('notebooks/*.py') }} | |
- name: Get Conda Environment from Cache | |
if: steps.nb_cache.outputs.cache-hit != 'true' | |
uses: actions/cache@v4 | |
id: conda_cache | |
with: | |
path: /tmp/binder_env | |
key: ${{ runner.os }}-binder-env-${{ hashFiles('binder/environment.yml') }} | |
- name: Update PATH | |
if: steps.nb_cache.outputs.cache-hit != 'true' | |
shell: bash | |
run: | | |
echo "/tmp/binder_env/bin" >> $GITHUB_PATH | |
- name: Run Notebooks | |
if: steps.nb_cache.outputs.cache-hit != 'true' | |
run: | | |
nb_dir=docs/notebooks | |
mkdir -p $nb_dir | |
for src in $(find notebooks -type f -maxdepth 1 -name '*py'); do | |
dst="$nb_dir/$(basename ${src%%.py}.ipynb)" | |
echo "$src -> $dst" | |
./binder/render-nb-pipe.sh <$src >$dst | |
done | |
ls -lh $nb_dir | |
check-docs: | |
runs-on: ubuntu-latest | |
needs: | |
- build-test-env-base | |
- run-black-check | |
- build-notebooks | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Get Rendered Notebooks | |
uses: actions/cache@v4 | |
id: nb_cache | |
with: | |
path: docs/notebooks | |
key: docs-notebooks-${{ hashFiles('notebooks/*.py') }} | |
- name: Get Conda Environment from Cache | |
uses: actions/cache@v4 | |
id: conda_cache | |
with: | |
path: /tmp/test_env | |
key: ${{ runner.os }}-test-env-py310-${{ hashFiles('tests/test-env-py310.yml') }} | |
- name: Update PATH | |
shell: bash | |
run: | | |
echo "/tmp/test_env/bin" >> $GITHUB_PATH | |
- name: Config | |
id: cfg | |
run: | | |
find notebooks/ -maxdepth 1 -name '*.py' -type f | sort -f -d | |
nb_dir="docs/notebooks" | |
nb_hash=$(python scripts/notebook_hash.py) | |
echo "Notebooks hash: ${nb_hash}" | |
echo "nb-hash=${nb_hash}" >> $GITHUB_OUTPUT | |
echo "nb-hash-short=${nb_hash:0:16}" >> $GITHUB_OUTPUT | |
- name: Install in Edit mode | |
shell: bash | |
run: | | |
pip install -e . --no-deps | |
- name: Build STAC docs | |
shell: bash | |
run: | | |
make -C docs html | |
- name: Deploy to Netlify | |
id: netlify | |
if: github.event_name == 'pull_request' | |
uses: nwtgck/actions-netlify@v2 | |
with: | |
production-branch: "develop" | |
publish-dir: "docs/_build/html" | |
deploy-message: "Deploy from GitHub Actions" | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
enable-pull-request-comment: true | |
enable-commit-comment: false | |
alias: ${{ steps.cfg.outputs.nb-hash-short }} | |
env: | |
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} | |
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} | |
- name: Print Notice | |
uses: actions/github-script@v7 | |
if: github.event_name == 'pull_request' | |
env: | |
NETLIFY_URL: ${{ steps.netlify.outputs.deploy-url }} | |
with: | |
script: | | |
const {NETLIFY_URL} = process.env | |
core.notice(`Published to: ${NETLIFY_URL}`) |