https://github.com/parmsam/cicdworkshop
practice material from cicd workshop for rinpharma 2022
https://github.com/parmsam/cicdworkshop
Last synced: about 1 month ago
JSON representation
practice material from cicd workshop for rinpharma 2022
- Host: GitHub
- URL: https://github.com/parmsam/cicdworkshop
- Owner: parmsam
- License: other
- Created: 2022-11-04T14:15:35.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2022-11-04T16:45:18.000Z (over 3 years ago)
- Last Synced: 2023-03-08T03:08:54.845Z (over 3 years ago)
- Language: R
- Homepage: https://parmsam.github.io/cicdworkshop/
- Size: 3.21 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# CI/CD Workshop | R in Pharma 2022
R in Pharma 2022 CI/CD workshop repository.
Date: November 4th, 2022
## Exercises
### Exercise 1
Fix issues identified by **R CMD check** workflow.
Click here for a hint 🔎
A unit test is failing for hello.R.
Click here for the solution ✅
The expected message should be Welcome to the R/Pharma CI/CD workshop! (R/Pharma is missing from the message) in the tests/testthat/test-hello.R file.
### Exercise 2
Fix broken links after implementing the **Check URLs** workflow.
Click here for a hint 🔎
An R/Pharma link is broken in the NEWS.md file.
Click here for the solution ✅
The rinpharma website domain is incorrectly set as .xcom. It should be .com.
### Exercise 3
Find and fix all spelling errors determined by the **Spellcheck** workflow.
Click here for a hint 🔎
One or more words are misspelled in the NEWS.md file.
Click here for the solution ✅
The word link is misspelled as linke in NEWS.md.
The word strangephrase should be strange phrase in NEWS.md.
Fix the spelling first in the NEWS.md file.
Next, simply run spelling::update_wordlist(confirm="Yes") to add technical jargon to the wordlist.
### Exercise 4
Fix code style errors implementing the **Style** workflow.
Click here for a hint 🔎
There's a minor style issue in the R/hello.R file.
Click here for the solution ✅
Simply run styler::style_file("R/hello.R") to automatically style the file.
### Exercise 5
Reduce the cyclomatic complexity identified by the **Lint Code Base** workflow.
Click here for a hint 🔎
The issue is manifested in the R/hello.R file.
Click here for the solution ✅
Reduce the number of if statements to reduce the cyclomatic complexity in the R/hello.R file for the linter_ex() function.
Run styler::style_file("R/hello.R") to fix style issues, if any.
Then, run lintr::lint_package() iteratively to determine whether the issue has been resolved.
### Exercise 6
Update man pages based on the errors reported by the **ROxygen** workflow.
Click here for a hint 🔎
Function documentation is not up-to-date for R/cicdworkshop-package.R and the linter_ex() function.
Click here for the solution ✅
Simply run roxygen2::roxygenize('.', roclets = c('rd', 'collate', 'namespace')) or devtools::document() to automatically update all man pages.
### Exercise 7
Increase code coverage for the package.
Click here for a hint 🔎
Add a simple unit test for the linter_ex() function defined in the R/hello.R file.
Click here for the solution ✅
Run covr::package_coverage() to note the current code coverage.
In the tests/testthat/test-hello.R file, add the following test:
test_that("linter_ex is surprised", {
expect_message(
linter_ex("lint"),
"^Whoa!\\n"
)
})
Run tests locally by executing devtools::test() to make sure that the tests succeed.
Then, run covr::package_coverage() to see that the code coverage has increased.
### Exercise 8
Publish a website for your package using GitHub Pages.
Click here for a hint 🔎
Update the _pkgdown.yml and add the pkgdown workflow.
Click here for the solution ✅
Update the url by replacing pharmaverse with your GitHub username and repository name.