From 03537d6d9fb9eb8585bbd25557241f00f88cffd6 Mon Sep 17 00:00:00 2001 From: Ian Bolliger Date: Tue, 14 May 2024 06:24:07 -0700 Subject: [PATCH] use upstream changes that move to pytest (#36) * change nodata_value to -99999 in topotools Previous value -9999 did not have enough digits since new etopo 2022 data has this as an actual topography value in the Mariana Trench (when written with `Z_format='%.0f'`). * Fix bug related to tracking pressure at gauges * simplify make_fgout_animation.py use of update_artists These do not need to be passed into update, unpacked, and repacked, since the objects created in the script will be used into update. If blit==False then they are not needed at all. * use image backend Agg in make_fgout_animation.py so animation size agrees with specified figure size * set blit=False and auto-detect number of fgout frames * clean up make_fgout_animation.py * added new chile2010_fgmax-fgout/make_fgout_animation_with_transect.py * Add dZ_format parameter to DTopography.write function The default is now '%.3f', millimeter resolution, making smaller dtopo files than previously. * handle 0 radius * fix type on set_pressure * fix duplicate r * make comparison fp-safe * handle underflow * avoid underflow in wind setting too * Initial CI GitHub action script * Update testing.yml * Add checking out of clawpack and geoclaw * Add lint and testing to CI * Disable linting for the time being * Re-enable linting but only for geoclaw * Exclude old_topotools.py Do not want to touch the old topotools file for reference. * update testing for our branch names * fix checkout in CI --------- Co-authored-by: Randy LeVeque Co-authored-by: Kyle Mandli --- .github/workflows/testing.yml | 59 +++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 .github/workflows/testing.yml diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml new file mode 100644 index 000000000..b672f0211 --- /dev/null +++ b/.github/workflows/testing.yml @@ -0,0 +1,59 @@ +# This workflow will install Python dependencies, run tests and lint with a single version of Python +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python + +name: Python application + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +permissions: + contents: read + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - name: Set up Python 3.12 + uses: actions/setup-python@v5 + with: + python-version: "3.12" + - name: Checkout clawpack + uses: actions/checkout@v4.1.5 + with: + repository: climateimpactlab/clawpack + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install gfortran liblapack-pic liblapack-dev libnetcdf-dev libnetcdff-dev + python -m pip install --upgrade pip + pip install flake8 pytest + - name: Setup clawpack super repository + run: | + git submodule init + git submodule update + pip install --user -e . + - name: Setup geoclaw + run: | + cd geoclaw + if [[ "${{ github.event_name }}" == "pull_request" ]]; then + git fetch origin pull/${{ github.event.pull_request.number }}/merge:PR + git checkout PR + else + git checkout ${{ github.ref_name }} + fi + - name: Lint with flake8 + run: | + cd geoclaw + # stop the build if there are Python syntax errors or undefined names + flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics --exclude old_dtopotools.py + # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide + flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics + - name: Test with pytest + run: | + cd geoclaw + pytest