opendevstack / ods-quickstarters

Contains project quickstarters (boilerplates) for Nginx, Go, Java (Spring Boot), Python (Flask), Rust (Axum), Scala (Play), TypeScript (Express), Angular, Ionic, Jupyter, RShiny - all including CI/CD integration & Jenkins build agents
Apache License 2.0
27 stars 39 forks source link

R Jenkins agent for package support #475

Open stevegbrooks opened 3 years ago

stevegbrooks commented 3 years ago

For building R packages to be used by web apps, analysis tools, etc..., a quickstarter for setting up the CI/CD pipeline would be very helpful!

We already have a "quickstarter" written for our project needs, but its probably not good enough or complete. Please let me know if you want to reference it to see more detail for this use case.

Thanks

michaelsauter commented 3 years ago

@stevegbrooks how does this differ from the rshiny quickstarter?

gerardcl commented 3 years ago

@michaelsauter I think what @stevegbrooks means here, correct me if I am wrong please, is to at least document how can a user of the RShiny quickstarter, could make use of the pipeline to also build/pull R packages on ODS Nexus.

stevegbrooks commented 3 years ago

This is more about building packages in the R language independent of any Shiny application. Since R is fairly unique, there are some things that could go into a quickstarter that would be useful. Pushing to nexus is currently done in our project with a simple shell script that reads one of the standard R Package files and pulls out the package name and version number for the curl call. In addition, unit testing can be really nice with Jenkins if you use JUnit, and providing a template for that for R devs would be nice.

I can do a PR and we can go from there.

I think for the RShiny quickstarter, its not necessary to add anything. Once a project has a Nexus repo set up, pulling packages down is very simple. It juts requires setting the nexus repo URL as one of the repos in addition to CRAN, then you can use "install.packages()" as normal.

gerardcl commented 3 years ago

so we have been discussing and the idea is to provide in the skeleton of the rshiny quickstarter such possible steps (publish + pull from Nexus)

stevegbrooks commented 3 years ago

still working on this - once our project transitions to ODS 3 and we have our scripts tested, i'll submit the PR

gerardcl commented 3 years ago

@stevegbrooks any update on this? shall we review minimal next steps to be provided? we don't need to provide all at once but maybe for example starting with a better Dockerfile?

I might provide an update of the Dockerfile in the following weeks, I will keep you updated (see also https://github.com/opendevstack/ods-quickstarters/issues/563)

stevegbrooks commented 3 years ago

no updates. I haven't had time to think about this since we last talked about it unfortunately.

I'll contact you on teams about it.