Reusable action workflows #1
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: check | ||
on: | ||
workflow_call: | ||
inputs: | ||
R-version: | ||
required: true | ||
type: string | ||
make-grouping: | ||
required: true | ||
type: string | ||
secrets: | ||
GITHUB_TOKEN: | ||
required: true | ||
env: | ||
R_LIBS_USER: /usr/local/lib/R/site-library | ||
LC_ALL: en_US.UTF-8 | ||
NCPUS: 2 | ||
PGHOST: postgres | ||
CI: true | ||
jobs: | ||
check: | ||
runs-on: ubuntu-latest | ||
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${{ inputs.R-version }} | ||
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 | ||
# Forbid spaces in names. Yes, *we* know it's not 1980 anymore, but Make doesn't. | ||
- name: check for filenames that would confuse Make | ||
run: | | ||
SPACENAMES=`find . -name '* *'` | ||
if [ -n "$SPACENAMES" ]; then | ||
echo "::error file=${SPACENAMES}::Spaces in filename(s): ${SPACENAMES}. Please rename these files by converting spaces to underscores." | ||
exit 1 | ||
fi | ||
# 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 && Rscript docker/depends/pecan.depends.R | ||
# run PEcAn checks | ||
# The package names of base, modules, and models are passed as matrix variables to avoid repeatability of code | ||
- name: check | ||
run: make -j1 ${{ inputs.make-grouping }} | ||
env: | ||
REBUILD_DOCS: "FALSE" | ||
RUN_TESTS: "FALSE" | ||
- name: check for out-of-date files | ||
uses: infotroph/tree-is-clean@v1 |