{"id":13638020,"url":"https://github.com/MarkEdmondson1234/googleCloudRunner","last_synced_at":"2025-04-19T17:32:56.434Z","repository":{"id":39700452,"uuid":"219194808","full_name":"MarkEdmondson1234/googleCloudRunner","owner":"MarkEdmondson1234","description":"Easy R scripts on Google Cloud Platform via Cloud Run, Cloud Build and Cloud Scheduler","archived":false,"fork":false,"pushed_at":"2023-11-30T03:13:49.000Z","size":11567,"stargazers_count":82,"open_issues_count":64,"forks_count":26,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-03T11:44:36.213Z","etag":null,"topics":["cloudbuild","dockerfile","googleauthr","googlecomputeenginer"],"latest_commit_sha":null,"homepage":"https://code.markedmondson.me/googleCloudRunner/","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MarkEdmondson1234.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2019-11-02T18:14:32.000Z","updated_at":"2024-11-08T07:32:05.000Z","dependencies_parsed_at":"2024-03-23T19:06:05.140Z","dependency_job_id":"7b87c382-c0f2-444b-9b7e-89b138599425","html_url":"https://github.com/MarkEdmondson1234/googleCloudRunner","commit_stats":null,"previous_names":["markedmondson1234/cloudrunner"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkEdmondson1234%2FgoogleCloudRunner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkEdmondson1234%2FgoogleCloudRunner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkEdmondson1234%2FgoogleCloudRunner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkEdmondson1234%2FgoogleCloudRunner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MarkEdmondson1234","download_url":"https://codeload.github.com/MarkEdmondson1234/googleCloudRunner/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249750132,"owners_count":21320079,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloudbuild","dockerfile","googleauthr","googlecomputeenginer"],"created_at":"2024-08-02T01:00:38.629Z","updated_at":"2025-04-19T17:32:54.197Z","avatar_url":"https://github.com/MarkEdmondson1234.png","language":"R","funding_links":["https://github.com/sponsors/MarkEdmondson1234/card"],"categories":["Tools","R"],"sub_categories":["Container guides"],"readme":"# googleCloudRunner\n\n\u003c!-- badges: start --\u003e\n![CloudBuild](https://badger-ewjogewawq-ew.a.run.app/build/status?project=mark-edmondson-gde\u0026id=0a3cade0-425f-4adc-b86b-14cde51af674)\n[![codecov](https://codecov.io/gh/MarkEdmondson1234/googleCloudRunner/branch/master/graph/badge.svg?token=q2nnGEP8Xi)](https://app.codecov.io/gh/MarkEdmondson1234/googleCloudRunner)\n![CRAN](http://www.r-pkg.org/badges/version/googleCloudRunner)\n[![CodeFactor](https://www.codefactor.io/repository/github/markedmondson1234/googlecloudrunner/badge/master)](https://www.codefactor.io/repository/github/markedmondson1234/googlecloudrunner/overview/master)\n[![R-CMD-check](https://github.com/MarkEdmondson1234/googleCloudRunner/workflows/R-CMD-check/badge.svg)](https://github.com/MarkEdmondson1234/googleCloudRunner/actions)\n\u003c!-- badges: end --\u003e\n\nAs easy as possible R scripts in the cloud, via Cloud Run, Cloud Build and Cloud Scheduler.  Continuous Development and Integration tools on Google Cloud Platform.\n\nNot an official Google product.\n\n## Ambition\n\nSelect an R file, and have it scheduled in the cloud with a couple of clicks.\n\nDeploy your plumber API code automatically on Cloud Run to scale from 0 (no cost) to millions (auto-scaling)\n\nIntegrate R inputs and outputs with other languages in a serverless cloud environment.\n\nHave R code react to events such as GitHub pushes, pub/sub messages and Cloud Storage file events. \n\n## Install\n\nGet the CRAN stable version via \n\n```r\ninstall.packages(\"googleCloudRunner\")\n```\n\nOr the development version via:\n\n```r\nremotes::install_github(\"MarkEdmondson1234/googleCloudRunner\")\n```\n\nThe [dev version of the website is here](https://code.markedmondson.me/googleCloudRunner/dev/) which may include documentation of features not yet on CRAN.\n\n## Usage\n\nBrowse the [googleCloudRunner website](https://code.markedmondson.me/googleCloudRunner/) for topics on how to use:\n\n* [Setup](https://code.markedmondson.me/googleCloudRunner/articles/setup.html)\n* [R APIs using Cloud Run](https://code.markedmondson.me/googleCloudRunner/articles/cloudrun.html)\n* [Serverless R scripts using Cloud Build](https://code.markedmondson.me/googleCloudRunner/articles/cloudbuild.html)\n* [Scheduled R in GCP using Cloud Scheduler](https://code.markedmondson.me/googleCloudRunner/articles/cloudscheduler.html)\n* [Use Cases](https://code.markedmondson.me/googleCloudRunner/articles/usecases.html)\n* [Function Reference](https://code.markedmondson.me/googleCloudRunner/reference/index.html)\n\n\n## Diagrams\n\nSome overviews of the function dependencies are below:\n\n### Scheduling using Cloud Scheduler\n\n![](vignettes/schedule_plot.png)\n\n### Building using Cloud Build\n\n![](vignettes/build_plot.png)\n\n### Helper deployment functions calling lower-level functions\n\n![](vignettes/deploy_plot.png)\n\n### Cloud Run functionality\n\n![](vignettes/cloudrun_plot.png)\n\n### library(targets) integration functions\n\n![](vignettes/targets_plot.png)\n\n## Sponsor\n\n\u003ciframe src=\"https://github.com/sponsors/MarkEdmondson1234/card\" title=\"Sponsor MarkEdmondson1234\" height=\"225\" width=\"600\" style=\"border: 0;\"\u003e\u003c/iframe\u003e\n\n## Resources\n\nRead the blog [introducing the googleCloudRunner package](https://code.markedmondson.me/googleCloudRunner-intro/) that goes into some background.\n\nA talk at R's 20th anniversary was performed at celebRation in Copenhagen on 29th Feb, 2020.  The [slides from the talk are here](https://code.markedmondson.me/r-20.html) and a [video of it is here](https://www.youtube.com/watch?v=YRvejW9FSJ4\u0026list=PLAMHKI_J4xv1urCanNbTCm44CxXnoejdr\u0026index=3):\n\n\u003ciframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/YRvejW9FSJ4\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen\u003e\u003c/iframe\u003e\n\nA [googleCloudRunner YouTube playlist](https://www.youtube.com/playlist?list=PLAMHKI_J4xv1urCanNbTCm44CxXnoejdr) of the demos is here.\n\nIf you blog anything interesting about the package let me know and I will list it here.\n\n* Ander has a guide on using googleCloudRunner to [schedule an R script on GCP](https://anderfernandez.com/blog/automatizar-script-r-google-cloud/) [Spanish]\n* Ander also writes how to use googleCloudRunner to [productionise your R plumber API](https://anderfernandez.com/blog/como-poner-en-produccion-un-modelo-de-machine-learning-de-r/) [Spanish]\n* Arben documents his experience on how he got started [scheduling BigQuery uploads using Docker and R](https://arbenkqiku.github.io/create-docker-image-with-r-and-deploy-as-cron-job-on-google-cloud)\n* Michał Ludwicki was a huge help in mentoring Arben for the post above - he also has created a GitHub repo of some [useful example files for googleCloudRunner scripts](https://github.com/MLud/GCP_Rscheduler)\n* Sam Terfa has a guide on how to use googleCloudRunner to [create an R API you can use GoogleSheets](https://towardsdatascience.com/using-r-and-python-in-google-sheets-formulas-b397b302098) to create its front end \n* Louis shows how to [create and deploy your own Python optimisation API using googleCloudRunner](https://louis-boguchwal.medium.com/create-and-deploy-your-own-optimization-api-7b4275f159c9)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMarkEdmondson1234%2FgoogleCloudRunner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMarkEdmondson1234%2FgoogleCloudRunner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMarkEdmondson1234%2FgoogleCloudRunner/lists"}