Skip to content

Issue #221: Add marginal model #49

Issue #221: Add marginal model

Issue #221: Add marginal model #49

name: check-cmdstan
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref }}
cancel-in-progress: true
on:
push:
paths:
- '**.stan'
branches:
- main
- develop
schedule:
- cron: '5 4 * * 1'
pull_request:
paths:
- '**.stan'
branches:
- main
- develop
merge_group:
workflow_dispatch:
jobs:
check-cmdstan:
if: "! contains(github.event.head_commit.message, '[ci skip]')"
runs-on: ubuntu-latest
env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
steps:
- name: cmdstan env vars
run: |
echo "CMDSTAN_PATH=${HOME}/.cmdstan" >> $GITHUB_ENV
shell: bash
- uses: actions/checkout@v4
- name: Install cmdstan Linux system dependencies
run: |
sudo apt-get update
sudo apt-get install -y libcurl4-openssl-dev || true
sudo apt-get install -y openmpi-bin openmpi-common libopenmpi-dev || true
sudo apt-get install -y libpng-dev || true
- uses: r-lib/actions/setup-r@v2
with:
use-public-rspm: true
extra-repositories: 'https://stan-dev.r-universe.dev'
- uses: r-lib/actions/setup-r-dependencies@v2
with:
extra-packages: local::.
- name: Install cmdstan
uses: epinowcast/actions/install-cmdstan@v1
with:
cmdstan-version: 'latest'
num-cores: 2
- name: Compile model and check syntax
run: |
dummy_obs <- dplyr::tibble(
pdate_lwr = as.Date("2020-01-01"),
sdate_lwr = as.Date("2020-02-01")
)
dummy_obs <- epidist::as_epidist_linelist_data(dummy_obs)
dummy_obs <- epidist::as_epidist_latent_model(dummy_obs)
stancode <- epidist::epidist(
data = dummy_obs, fn = brms::make_stancode
)
mod <- cmdstanr::cmdstan_model(
stan_file = cmdstanr::write_stan_file(stancode), compile = FALSE
)
message <- capture.output(
mod$check_syntax(pedantic = FALSE),
type = "message"
)
# We can't use TRUE here as pendatic check return lots of false
# positives related to our use of functions.
stopifnot(
length(message) != 0 &&
all(message == "Stan program is syntactically correct")
)
shell: Rscript {0}