Giter Site home page Giter Site logo

phuse-org / devops Goto Github PK

View Code? Open in Web Editor NEW
2.0 10.0 0.0 1.02 MB

Home of the Pharma DevOps Working Group, providing everything you need for R and Python codebases used for clinical reporting

Home Page: https://phuse-org.github.io/devops/

CSS 97.71% SCSS 2.29%
cicd devops pharma pharmaverse r

devops's People

Contributors

cicdguy avatar epijim avatar mstackhouse avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

devops's Issues

Submit phuse abstract

Aim to submit abstract to PHUSE US Connect about this working group, and with content from the landscaping of where we are today with CICD

Itemizing capabilities

After an initial look, the simplest use case seems to be very well covered by usethis::use_github_action, which drastically simplifies the maintenance and setup.

I'd consider any deviation from this should show some considerable value-add since it immediately means breaking with very widely used best practices.

I'm going to kick off the discussion with what I see as the matrix of actions that we might consider. Feel free to suggest additional behaviors and the scopes where they should apply.

behavior scope tool/action
R CMD check minimum usethis::use_github_action("check-standard")
recommended usethis::use_github_action("check-full")
Documentation all usethis::use_github_action("pkgdown")
Testing & Coverage all usethis::use_github_action("test-coverage")

Pick quarto template and add to this repo

Dinakar mentioned he had a great new template. Aim is to get this into main.

@dinakar - as the first bit of code going in, I'll defer to you if you want to add branch protections (maybe not needed yet as the site isn't public?)

Define a 'minimum' and 'recommended' list

Early feedback from one pharmaverse package we we need to separate out the packages from what are really the core CICD needed to have a robust release, and what are nice to haves.

Aim in this issue is to define our initial list (updating here in the desc:

Minimum

  • Generate and deploy documentation to a location outside main branch when main updated (to prevent repo bloat from artifacts)
  • Ensure man pages are always upto date on main and devel
  • Check links on PR to main, to ensure docs have working links each time a release is made
  • Check unit tests using container with CRAN + leading edge of r-universe pharmaverse page
  • Report code coverage of main and display as badge in repo

Suggested

  • Ability to fail PR to main if code coverage below certain value
  • lint R code to help with consistency | run styler
  • Check unit tests using container with CRAN + specific cohort of related R packages
  • Generate an example validation report against rocker + pharmaverse when a tag/release is made
  • Render README
  • Check spelling

Need to add example on how to use R CMD CHECK against bleeding edge repos

Currently we have:

How do I set it up?

Below is an example of using this gh-action whenever someone tries to make PR into your main or devel branch or updates the branch. We recomend you use this on both main and devel branches, as it will help you catch issues before they get into your main branch.

name: Run R-CMD-check
# sourced from phuse-org/devops-toolkit

on:
  pull_request:
    types:
      - opened
      - synchronize
      - reopened
      - ready_for_review
    branches:
      - main
  push:
    branches:
      - main
  workflow_dispatch:

jobs:
  check:
    name: Check
    uses: phuse-org/devops-toolkit/.github/workflows/R-CMD-check.yml@main

The deets

Advanced use

TODO: Add here how to also run against pharmaverse's r-universe latest & the latest release of PPM packages.

Where to 'store' gh-actions in our list

Currently we recommend and maintain gh-actions in two locations:

  • insightsengineering/r.pkg.template/.github/workflows
  • pharmaverse/admiralci

This needs be simplified - as it's confusing to look at the huge battery of CICD on Nest and admiral, and understand why they did things slightly differently, and which CICD is really needed and why.

@cicdguy and @bms63 my suggestion is:

  • Can we avoid duplicating CICD that already works? e.g. content in the tic package (https://docs.ropensci.org/tic/) and only if a gh-action is missing
  • Place all our gh-actions in a repo pharmaverse/cicd?

Dinakar - what are our thoughts?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.