[Docker, CI] Allow building pecan/depends from pecan/depends #106
Workflow file for this run
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: Weekly Checks | ||
on: | ||
# every Monday at 4:30 AM | ||
# (hopefully after the 1:30 AM `depends` build has completed) | ||
schedule: | ||
- cron: '30 4 * * 1' | ||
workflow_dispatch: | ||
env: | ||
R_LIBS_USER: /usr/local/lib/R/site-library | ||
LC_ALL: en_US.UTF-8 | ||
NCPUS: 2 | ||
PGHOST: postgres | ||
CI: true | ||
jobs: | ||
# ---------------------------------------------------------------------- | ||
# R TEST | ||
# ---------------------------------------------------------------------- | ||
test: | ||
if: github.event_name != 'issue_comment' || startsWith(github.event.comment.body, '/build') | ||
runs-on: ubuntu-latest | ||
env: | ||
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
R: | ||
- "devel" | ||
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:R${{ matrix.R }} | ||
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: update dependency lists | ||
run: Rscript scripts/generate_dependencies.R | ||
- name: check for out-of-date dependencies files | ||
uses: infotroph/tree-is-clean@v1 | ||
- name: install newly-added dependencies | ||
working-directory: docker/depends | ||
run: Rscript pecan.depends.R | ||
# initialize database | ||
- name: db setup | ||
uses: docker://pecan/db:ci | ||
- name: add models to db | ||
run: ./scripts/add.models.sh | ||
# run PEcAn tests | ||
- name: test | ||
run: make -j1 test | ||
- name: check for out-of-date files | ||
uses: infotroph/tree-is-clean@v1 | ||
# ---------------------------------------------------------------------- | ||
# R CHECK | ||
# ---------------------------------------------------------------------- | ||
check: | ||
if: github.event_name != 'issue_comment' || startsWith(github.event.comment.body, '/build') | ||
runs-on: ubuntu-latest | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
R: | ||
- "devel" | ||
env: | ||
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} | ||
_R_CHECK_LENGTH_1_CONDITION_: true | ||
_R_CHECK_LENGTH_1_LOGIC2_: true | ||
# Avoid compilation check warnings that come from the system Makevars | ||
# See https://stat.ethz.ch/pipermail/r-package-devel/2019q2/003898.html | ||
_R_CHECK_COMPILATION_FLAGS_KNOWN_: -Wformat -Werror=format-security -Wdate-time | ||
# Keep R checks from trying to consult the very flaky worldclockapi.com | ||
_R_CHECK_SYSTEM_CLOCK_: 0 | ||
container: | ||
image: pecan/depends:R${{ matrix.R }} | ||
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 | ||
# run PEcAn checks | ||
- name: check | ||
run: make -j1 check | ||
env: | ||
REBUILD_DOCS: "FALSE" | ||
RUN_TESTS: "FALSE" | ||
- name: check for out-of-date files | ||
uses: infotroph/tree-is-clean@v1 | ||
# ---------------------------------------------------------------------- | ||
# SIPNET TESTS | ||
# ---------------------------------------------------------------------- | ||
sipnet: | ||
if: github.event_name != 'issue_comment' || startsWith(github.event.comment.body, '/build') | ||
runs-on: ubuntu-latest | ||
env: | ||
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
R: | ||
- "devel" | ||
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:R${{ matrix.R }} | ||
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 | ||
# install sipnet | ||
- name: Check out SIPNET | ||
uses: actions/checkout@v4 | ||
with: | ||
repository: PecanProject/sipnet | ||
path: sipnet | ||
set-safe-directory: false | ||
- name: install sipnet | ||
run: | | ||
cd ${GITHUB_WORKSPACE}/sipnet | ||
make | ||
# compile PEcAn code | ||
- name: build | ||
run: make -j1 | ||
# run SIPNET test | ||
- name: integration test | ||
run: ./tests/integration.sh ghaction |