Reusable GitHub Actions workflows for IndrajeetPatil repositories.
All external actions are pinned to commit SHAs to prevent supply chain attacks. Most R package workflows are check-only — they validate code but never modify or auto-commit changes. Some workflows do perform deployment or release actions, including pkgdown.yaml, which deploys the pkgdown site to gh-pages, and submit-cran.yaml, which builds a source tarball, creates a GitHub Release, and submits the package to CRAN.
Reference a reusable workflow from your repository:
on:
push:
branches: [main, master]
pull_request:
branches: [main, master]
jobs:
style:
uses: IndrajeetPatil/workflows/.github/workflows/style.yaml@mainFor workflows with inputs:
jobs:
R-CMD-check:
uses: IndrajeetPatil/workflows/.github/workflows/R-CMD-check.yaml@main
with:
error-on: '"note"'| Workflow | Description | Inputs |
|---|---|---|
python-docs.yaml |
Build & deploy Python package documentation to GitHub Pages | — |
python-qa.yaml |
Code Quality checks, including build, test coverage, and README render | — |
python-release.yaml |
Create GitHub Release and Publish to PyPI | — |
python-test.yaml |
Run Tests across multiple OS and Python versions | — |
check-link-rot.yaml |
Check for broken links using lychee | — |
| Workflow | Description | Inputs |
|---|---|---|
R-CMD-check.yaml |
R CMD check across multiple OS/R versions | error-on, extra-packages |
R-CMD-check-hard.yaml |
R CMD check with hard (Imports) dependencies only | extra-packages |
check-extra.yaml |
Parallel extra checks: no-warnings, random test order, spelling, link rot, README render | extra-packages, http-user-agent |
lint.yaml |
Package linting with {lintr} |
— |
pkgdown.yaml |
Build & deploy pkgdown site; use no-suggests: true for a hard-deps-only CI check |
no-suggests, pkgdown-source |
pre-commit.yaml |
Run pre-commit hooks; fails if hooks would modify files | — |
style.yaml |
Check code style with {styler}; fails if any file needs reformatting |
— |
submit-cran.yaml |
Build source tarball, create GitHub Release, and submit package to CRAN | extra-packages |
test-coverage.yaml |
Two parallel coverage jobs: unit tests (enforces 100%) + examples/vignettes (enforces 100%) | runner-os |
check-link-rot.yaml |
Check for broken links using lychee | — |
| Workflow | Description | Inputs |
|---|---|---|
build-presentation-python.yaml |
Build & deploy Python/UV Quarto RevealJS presentation to GitHub Pages | — |
build-presentation-r.yaml |
Build & deploy R Quarto RevealJS presentation to GitHub Pages | — |
check-link-rot.yaml |
Check for broken links using lychee | — |