diff --git a/.github/workflows/download-met-data.yml b/.github/workflows/download-met-data.yml new file mode 100644 index 0000000000..1871176e0c --- /dev/null +++ b/.github/workflows/download-met-data.yml @@ -0,0 +1,57 @@ +name : Test Data Download +on : + # allow manual triggering + workflow_dispatch: + + schedule: + # run Thursday 4:30 AM UTC + - cron: '30 4 * * 4' + +env: + R_LIBS_USER: /usr/local/lib/R/site-library + LC_ALL: en_US.UTF-8 + NCPUS: 2 + PGHOST: postgres + CI: true + +jobs: + met-data-download: + runs-on: ubuntu-latest + env: + GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} + + services: + postgres: + image: mdillon/postgis:9.5 + options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 + + container: + image: pecan/depends:R4.1 + + steps: + # checkout source code + - name: work around https://github.com/actions/checkout/issues/766 + run: git config --global --add safe.directory "$GITHUB_WORKSPACE" + - uses: actions/checkout@v4 + with: + set-safe-directory: false + + # install additional tools needed + - name: install utils + run: apt-get update && apt-get install -y postgresql-client qpdf + - name: install new dependencies + run: Rscript scripts/generate_dependencies.R && cd docker/depends && Rscript pecan.depends.R + + # initialize database + - name: db setup + uses: docker://pecan/db:ci + - name: add models to db + run: ./scripts/add.models.sh + + # compile PEcAn code + - name: build + run: make -j1 + + - name: CRUNCEP + run: | + Rscript ./tests/test_met_downloads.R --settings ./tests/met_download_settings/docker.CRUNCEP.xml diff --git a/tests/met_download_settings/docker.CRUNCEP.xml b/tests/met_download_settings/docker.CRUNCEP.xml new file mode 100644 index 0000000000..77e81fc198 --- /dev/null +++ b/tests/met_download_settings/docker.CRUNCEP.xml @@ -0,0 +1,33 @@ + + + /data/tests/met_download/CRUNCEP + + + PostgreSQL + bety + bety + postgres + bety + FALSE + + + + SIPNET + + + + 1000000057 + + + + CRUNCEP + + + 2001-01-01 + 2001-12-31 + /data/dbfiles + + + localhost + + \ No newline at end of file diff --git a/tests/test_met_downloads.R b/tests/test_met_downloads.R new file mode 100644 index 0000000000..58d21b161f --- /dev/null +++ b/tests/test_met_downloads.R @@ -0,0 +1,6 @@ +library("PEcAn.all") + +args <- PEcAn.settings::get_args() +settings <- PEcAn.settings::read.settings(args$settings) +settings <- PEcAn.settings::prepare.settings(settings, force = FALSE) +settings <- PEcAn.workflow::do_conversions(settings)