# Workflow derived from https://github.com/r-lib/actions/tree/v2/examples
# Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help
#
# NOTE: This workflow only directly installs "hard" dependencies, i.e. Depends,
# Imports, and LinkingTo dependencies. Notably, Suggests dependencies are never
# installed, with the exception of testthat, knitr, and rmarkdown. The cache is
# never used to avoid accidentally restoring a cache containing a suggested
# dependency.
on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

name: R-CMD-check-hard

jobs:
  R-CMD-check:
    runs-on: ${{ matrix.config.os }}

    name: ${{ matrix.config.os }} (${{ matrix.config.r }})

    strategy:
      fail-fast: false
      matrix:
        config:
          - {os: ubuntu-20.04,   r: 'release'}

    env:
      GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
      R_KEEP_PKG_SOURCE: yes

    steps:
      - uses: actions/checkout@v2

      - uses: r-lib/actions/setup-pandoc@v2

      - uses: r-lib/actions/setup-r@v2
        with:
          r-version: ${{ matrix.config.r }}
          http-user-agent: ${{ matrix.config.http-user-agent }}
          use-public-rspm: true

      - uses: r-lib/actions/setup-r-dependencies@v2
        with:
          dependencies: '"hard"'
          cache: false
          extra-packages: |
            any::rcmdcheck
            any::testthat
            any::knitr
            any::rmarkdown
          needs: check

      # We need PROJ >= 7.0.0 in order to take advantage of the CDN
      #
      # Older Linux builds have older PROJ versions, and as such we need to
      # install the newer versions from ppa:ubuntugis
      #
      # Unfortunately, that means waiting until we're testing on 22.04
      # (which has 8.2.1-1 in `universe`)
      # to get rid of this step
      - name: Install Linux dependencies
        if: runner.os == 'Linux'
        run: |
          sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable
          sudo apt-get update
          sudo apt-get install libspatialite-dev libgeotiff-dev libudunits2-dev libgdal-dev libgeos-dev libproj-dev
          Rscript -e 'install.packages("sf", repos = "https://cloud.r-project.org")'
      - uses: r-lib/actions/check-r-package@v2
        with:
          upload-snapshots: true
