{"id":22793408,"url":"https://github.com/pharmaverse/admiralci","last_synced_at":"2025-04-16T18:51:37.002Z","repository":{"id":50377621,"uuid":"518906638","full_name":"pharmaverse/admiralci","owner":"pharmaverse","description":"CI/CD workflows used across the admiral family of packages","archived":false,"fork":false,"pushed_at":"2025-04-16T12:05:41.000Z","size":10690,"stargazers_count":13,"open_issues_count":10,"forks_count":4,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-16T17:20:27.479Z","etag":null,"topics":["actions","admiral","cicd","clinical-trials","r-package","workflows"],"latest_commit_sha":null,"homepage":"https://pharmaverse.github.io/admiralci","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/pharmaverse.png","metadata":{"files":{"readme":"README.Rmd","changelog":"NEWS.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-07-28T15:48:59.000Z","updated_at":"2025-04-16T12:05:44.000Z","dependencies_parsed_at":"2023-12-11T13:48:34.365Z","dependency_job_id":"2e6c7feb-c74d-4f90-9665-4defeb4e22c8","html_url":"https://github.com/pharmaverse/admiralci","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":"pharmaverse/admiraltemplate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pharmaverse%2Fadmiralci","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pharmaverse%2Fadmiralci/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pharmaverse%2Fadmiralci/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pharmaverse%2Fadmiralci/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pharmaverse","download_url":"https://codeload.github.com/pharmaverse/admiralci/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249266646,"owners_count":21240792,"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":["actions","admiral","cicd","clinical-trials","r-package","workflows"],"created_at":"2024-12-12T03:19:47.197Z","updated_at":"2025-04-16T18:51:36.986Z","avatar_url":"https://github.com/pharmaverse.png","language":"R","funding_links":[],"categories":[],"sub_categories":[],"readme":"---\ntitle: \"CI/CD Workflows for Admiral R Packages\"\noutput: md_document\ndate: '2022-08-03'\n---\n\n\u003c!-- Please do not edit the README.md file as it is auto-generated. Only edit the README.Rmd file --\u003e\n\n```{r setup, include=FALSE}\nknitr::opts_chunk$set(echo = TRUE)\nlink \u003c- function(text, url) {\n  return(\n    paste0(\n      \"[\", text, \"]\",\n      \"(\", url, \")\"\n    )\n  )\n}\ndyn_link \u003c- function(text,\n                     base_url,\n                     relative_url = \"\",\n                     # Change to TRUE when admiral adopts multiversion docs\n                     is_multiversion = FALSE,\n                     multiversion_default_ref = \"main\") {\n  url \u003c- paste(base_url, relative_url, sep = \"/\")\n  if (is_multiversion) {\n    url \u003c- paste(\n      base_url,\n      Sys.getenv(\"BRANCH_NAME\", multiversion_default_ref),\n      relative_url,\n      sep = \"/\"\n    )\n  }\n  return(link(text, url))\n}\n# Other variables\nadmiralci_homepage \u003c- \"https://pharmaverse.github.io/admiralci\"\n```\n\n# Purpose of admiralci\n\n![](man/figures/admiralci_hex.png){width=30% height=30%}\n\nThis repository contains GitHub Actions continuous integration/continuous delivery (CI/CD) workflows, most of which are used by [`admiral`](https://github.com/pharmaverse/admiral) and its extensions.\nWorkflows defined here are responsible for assuring high package quality standards without compromising performance, security, or reproducibility.\n\nPlease refer to the [`.github/workflows`](.github/workflows) directory to view the source code for the GitHub Actions workflows.\n\nNotes :\n\n- Some workflows are using github actions from [InsightsEngineering](https://github.com/insightsengineering/) group.\n\u003c!-- - Most of the workflows tends to be use by other packages (`oak` package for example). A global repository at Pharmaverse organization level will be set-up to host all common workflows for pharmaverse packages (Beyond Admiral uses cases).\nThis package will then probably be replaced by this global Pharmaverse repository in the future. --\u003e\n- Most of the workflows are sharing the same steps (see [Common workflows structure](https://pharmaverse.github.io/admiralci/articles/common_structure.html)) (boilerplate code)\n\n\n# Available workflows\n\n## Workflows triggered by Admiral MR (feature branch to main branch)\n\n### Check Templates\n\n\n- [Link to workflow code (yml file)](https://github.com/pharmaverse/admiralci/blob/main/.github/workflows/check-templates.yml)\n- [Link to the documentation](`r paste0(admiralci_homepage, \"/articles/check-templates.html\")`)\n\n### Lintr\n\n- [Link to workflow code (yml file)](https://github.com/pharmaverse/admiralci/blob/main/.github/workflows/lintr.yml)\n- [Link to the documentation](`r paste0(admiralci_homepage, \"/articles/lintr.html\")`)\n\n### Man Pages\n\n- [Link to workflow code (yml file)](https://github.com/pharmaverse/admiralci/blob/main/.github/workflows/man-pages.yml)\n- [Link to the documentation](`r paste0(admiralci_homepage, \"/articles/man-pages.html\")`)\n\n### R CMD CHECKS\n\n- [Link to workflow code (yml file)](https://github.com/pharmaverse/admiralci/blob/main/.github/workflows/r-cmd-check.yml)\n- [Link to the documentation](`r paste0(admiralci_homepage, \"/articles/r-cmd-checks.html\")`)\n\n### Check Templates\n\n- [Link to workflow code (yml file)](https://github.com/pharmaverse/admiralci/blob/main/.github/workflows/spellchecks.yml)\n- [Link to the documentation](`r paste0(admiralci_homepage, \"/articles/spellchecks.html\")`)\n\n### Code Coverage\n\n- [Link to workflow code (yml file)](https://github.com/pharmaverse/admiralci/blob/main/.github/workflows/code-coverage.yml)\n- [Link to the documentation](`r paste0(admiralci_homepage, \"/articles/code-coverage.html\")`)\n\n### Readme Render\n\n- [Link to workflow code (yml file)](https://github.com/pharmaverse/admiralci/blob/main/.github/workflows/readme-render.yml)\n- [Link to the documentation](`r paste0(admiralci_homepage, \"/articles/readme-render.html\")`)\n\n### Style\n\n- [Link to workflow code (yml file)](https://github.com/pharmaverse/admiralci/blob/main/.github/workflows/style.yml)\n- [Link to the documentation](`r paste0(admiralci_homepage, \"/articles/style.html\")`)\n\n## Workflows trigger by a new release\n\n### Validation\n\n- [Link to workflow code (yml file)](https://github.com/pharmaverse/admiralci/blob/main/.github/workflows/r-pkg-validation.yml)\n- [Link to the documentation](`r paste0(admiralci_homepage, \"/articles/validation.html\")`)\n\n### Pkgdown\n\n- [Link to workflow code (yml file)](https://github.com/pharmaverse/admiralci/blob/main/.github/workflows/pkgdown.yml)\n- [Link to the documentation](`r paste0(admiralci_homepage, \"/articles/pkgdown.html\")`)\n\n## cron workflows\n\n### Push Docker Image\n\n- [Link to workflow code (yml file)](https://github.com/pharmaverse/admiralci/blob/main/.github/workflows/push-docker-image.yml)\n- [Link to the documentation](`r paste0(admiralci_homepage, \"/articles/push-docker.html\")`)\n\n### Cran Status\n\n- [Link to workflow code (yml file)](https://github.com/pharmaverse/admiralci/blob/main/.github/workflows/cran-status.yml)\n- [Link to the documentation](`r paste0(admiralci_homepage, \"/articles/cran-status.html\")`)\n\n### Check R Tags\n\n- [Link to workflow code (yml file)](https://github.com/pharmaverse/admiralci/blob/main/.github/workflows/check-r-tags.yml)\n- [Link to the documentation](`r paste0(admiralci_homepage, \"/articles/check-r-tags.html\")`)\n\n\n# How to use these workflows?\n\n## Reuse (recommended)\n\nYou could add just _one_ file called `.github/workflows/common.yml` to directly import these workflows while receiving the latest updates and enhancements, given that the workflows defined in this repository are reusable via the [`workflow_call`][workflow_call] GitHub Actions event.\n\nThe contents of the `.github/workflows/common.yml` file are available in the [`common.yml.inactive`](https://github.com/pharmaverse/admiralci/blob/main/.github/workflows/common.yml.inactive) file in this repository. Feature flags in the form of `workflow_call` inputs are available for customization purposes. Feature flags are documented in the same file - look for the `env:` and `with:` hashes in the file for feature flags.\n\n\u003c!-- TODO: update common.inactive taking the one from admiral because it's quite outdated ..  --\u003e\n## Copy as-is (not recommended)\n\nAlternatively, if you want a high level of customization, you could simply copy the workflows as-is from this repository to your repository and modify them to your liking.\nWe do not recommand this approach. For example, you might miss some updated or even bugs fixes from `admiralci` workflows. If you need some updates in some existing workflows, please [raise an issue](https://github.com/pharmaverse/admiralci/issues).\n\n## Where to see these workflows in action?\n\n### Pull Request\n\nAt the bottom of a pull request, you can check on the status of each workflow:\n![](man/figures/pr_workflows.jpg)\n\n### Actions Tab\nAlternatively, you can check on the workflows on the Actions tab in the repository as well:\n![](man/figures/actions_tab_workflows.jpg)\n\n\nMost of our workflows are using Github Marketplace actions, referenced bellow :\n\n- [InsightsEngineering](https://github.com/insightsengineering)\n- [r-lib-actions](https://github.com/r-lib/actions)\n- [sd-action](https://github.com/marketplace/actions/staged-dependencies-action)\n- [sd-repo](https://github.com/openpharma/staged.dependencies)\n- [lychee](https://github.com/lycheeverse/lychee)\n- [covr](https://covr.r-lib.org/)\n- [lintr](https://lintr.r-lib.org/)\n- [pkgdown](https://pkgdown.r-lib.org/)\n- [multi-version-docs](https://github.com/marketplace/actions/r-pkgdown-multi-version-docs)\n- [validation](https://github.com/marketplace/actions/r-package-validation-report)\n- [spelling](https://docs.ropensci.org/spelling/)\n- [styler](https://styler.r-lib.org/)\n- [workflow_call](https://docs.github.com/en/actions/using-workflows/reusing-workflows)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpharmaverse%2Fadmiralci","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpharmaverse%2Fadmiralci","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpharmaverse%2Fadmiralci/lists"}