Skip to content

Activate Setup R dependencies #4

Activate Setup R dependencies

Activate Setup R dependencies #4

Workflow file for this run

---
name: Simple workflow
on:
pull_request:
types:
- opened
- synchronize
- reopened
- ready_for_review
branches:
- main
push:
branches:
- main
env:
# additional flags for `R CMD CHECK`
EXTRA_CHECK_FLAGS: "--no-manual --no-vignettes"
# additional environmental vars for `R CMD CHECK`
# see manual here: https://rstudio.github.io/r-manuals/r-ints/Tools.html
_R_CHECK_TESTS_NLINES_: 0
_R_CHECK_VIGNETTES_NLINES_: 0
jobs:
# First job.
hello-world-from-r:
name: Hello, world!
runs-on: ubuntu-latest
steps:
- name: Setup R 🔧
uses: r-lib/actions/setup-r@v2
- name: Hello world! 💬
run: cat(paste0("Hello ", Sys.getenv("NAME"), "! 👋"))
shell: Rscript {0}
env:
NAME: "mattkorb"
# Second job - by default jobs will run in parallel, unless some dependencies
# are introduced between them.
build-and-check:
name: Build R package
runs-on: ubuntu-latest
steps:
- name: Checkout repo 🛎
# We're using an official GitHub Action.
uses: actions/[email protected]
with:
# Action inputs (arguments/parameters).
# In this case we clone the repository to the directory called the same
# as the repository name.
path: ${{ github.event.repository.name }}
- name: Setup R 🔧
if: true
# We're using a third-party GitHub Action.
uses: r-lib/actions/setup-r@v2
- name: Hello from R! 💬
run: cat("Hello from R! 👋")
shell: Rscript {0}
- name: Setup R dependencies 🔧
# We're using a third-party GitHub Action.
uses: r-lib/actions/setup-r-dependencies@v2
with:
working-directory: ${{ github.event.repository.name }}
- name: Installed packages 📦
run: rownames(installed.packages())
shell: Rscript {0}
# Get package name and version from DESCRIPTION so that we'll know
# what's the name of the tar.gz file with the built package.
# pkgbuild is set as an output which can be accessed by subsequent steps.
- name: Get package name 📦
id: package-name
run: |
PKGBUILD="$(Rscript -e 'cat(sprintf("%s_%s.tar.gz",(dcf <- read.dcf("DESCRIPTION"))[,"Package"], dcf[,"Version"]))')"
echo "PKGBUILD = $PKGBUILD"
echo "pkgbuild=$PKGBUILD" >> $GITHUB_OUTPUT
shell: bash
working-directory: ${{ github.event.repository.name }}
# Build a package stored in a directory called ${{ github.event.repository.name }}
# --no-manual --no-build-vignettes because this requires LaTeX.
- name: Build R package 🏗
run: |
R CMD build --no-manual --no-build-vignettes ${{ github.event.repository.name }}
ls -l
shell: bash
# Check `.tar.gz` package built in previous step.
# --no-manual --no-vignettes because this requires LaTeX.
- name: Check R package 🏁
run: |
env | grep -E '^_R'
echo "Let's run R CMD check..."
R CMD check ${EXTRA_CHECK_FLAGS} ${{ steps.package-name.outputs.pkgbuild }}
shell: bash
- name: Upload logs artifact 🗞️
uses: actions/upload-artifact@v4
if: false
with:
path: |
${{ github.event.repository.name }}.Rcheck/*00install.out
${{ github.event.repository.name }}.Rcheck/*00check.log
${{ github.event.repository.name }}.Rcheck/*00build.out
${{ github.event.repository.name }}.Rcheck/*-Ex.Rout
${{ github.event.repository.name }}.Rcheck/tests/testthat.Rout
${{ github.event.repository.name }}.Rcheck/tests/testthat.Rout.fail
name: check-logs-${{ github.event.repository.name }}
- name: Get `.tar.gz` file name
if: false
id: tar-gz
# Use our custom action.
uses: user-workshop-cicd/action-example@main
with:
filename-beginning: ${{ github.event.repository.name }}
# Upload `.tar.gz` package as an artifact so it can be downloaded.
- name: Upload package build ⤴
if: false
uses: actions/upload-artifact@v4
with:
# Output of the custom action from the previous step
# are inputs of this action.
path: ${{ steps.tar-gz.outputs.full-filename }}
name: ${{ steps.tar-gz.outputs.full-filename }}
call-reusable-workflow:
name: Reusable workflow ♻️
uses: user-workshop-cicd/r.pkg.template/.github/workflows/sample-reusable-workflow.yaml@main
with:
name: Octocat