name: Build on: push: branches: [ main ] pull_request: branches: [ main ] jobs: build-and-test-python: runs-on: ubuntu-latest strategy: matrix: python-version: [3.7, 3.8] fail-fast: false steps: - name: "Get OS version (Linux)" if: startsWith(runner.os, 'Linux') run: | echo "OS_VERSION=`lsb_release -sr`" >> $GITHUB_ENV echo "PIP_DEFAULT_CACHE=$HOME/.cache/pip" >> $GITHUB_ENV echo "DEFAULT_HOME=$HOME" >> $GITHUB_ENV - uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - name: "Restore pip cache" id: cache-pip uses: actions/cache@v2 with: path: ${{ env.PIP_DEFAULT_CACHE }} key: ${{ runner.os }}-pip-${{ hashFiles('**/python/requirements.txt') }}-v1 restore-keys: | ${{ runner.os }}-pip- - name: Install and test run: | pip install -U -r python/requirements.txt dask[dataframe] distributed cd python python setup.py develop test build-and-test-r: runs-on: ${{ matrix.config.os }} strategy: matrix: config: - {os: ubuntu-20.04, r: 'release', rspm: "https://packagemanager.rstudio.com/cran/__linux__/focal/latest"} fail-fast: false env: R_REMOTES_NO_ERRORS_FROM_WARNINGS: true RSPM: ${{ matrix.config.rspm }} steps: - uses: actions/checkout@v2 - name: Set up R uses: r-lib/actions/setup-r@v2 with: r-version: ${{ matrix.config.r }} - name: Install remotes run: | install.packages('remotes') shell: Rscript {0} - name: Query dependencies run: | saveRDS(remotes::dev_package_deps(pkgdir = "R/", dependencies = TRUE), ".github/depends.Rds", version = 2) writeLines(sprintf("R-%i.%i", getRversion()$major, getRversion()$minor), ".github/R-version") shell: Rscript {0} - name: Restore R package cache if: runner.os != 'Windows' uses: actions/cache@v2 with: path: ${{ env.R_LIBS_USER }} key: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1-${{ hashFiles('.github/depends.Rds') }} restore-keys: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1- - name: Install system dependencies if: runner.os == 'Linux' run: | while read -r cmd do eval sudo $cmd done < <(Rscript -e 'writeLines(remotes::system_requirements(os = "ubuntu", os_release = "20.04", path = "R/"))') - name: Install dependencies run: | remotes::install_deps(pkgdir = "R/", dependencies = NA) remotes::install_cran(c("rcmdcheck", "knitr", "testthat", "readr", "rmarkdown")) install.packages(c("cmdstanr", "posterior"), repos = c("https://mc-stan.org/r-packages/", getOption("repos"))) shell: Rscript {0} - name: Check env: _R_CHECK_CRAN_INCOMING_REMOTE_: false run: | options(crayon.enabled = TRUE) rcmdcheck::rcmdcheck(path = "R/", args = c("--no-manual", "--as-cran"), error_on = "warning", check_dir = "check") shell: Rscript {0} - name: Upload check results if: failure() uses: actions/upload-artifact@main with: name: ${{ runner.os }}-r${{ matrix.config.r }}-results path: check