-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #10 from nfdi4plants/ci
CI/CD block
- Loading branch information
Showing
4 changed files
with
46 additions
and
0 deletions.
There are no files selected for viewing
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
--- | ||
layout: ../../layouts/MarkdownLayout.astro | ||
title: 'ARCHub: Bring your ARCs to the cloud' | ||
pubDate: 2024-09-10 | ||
description: 'The ARCHub concept applies the software development principles of CI/CD to the research data management framework provided by ARCs, making ARCs first-class citizens in the cloud.' | ||
author: 'Kevin Schneider' | ||
image: | ||
url: 'https://docs.astro.build/assets/rose.webp' | ||
alt: 'The Astro logo on a dark background with a pink glow.' | ||
tags: ["validation", "quality control", "unit testing", "CI/CD", "continuous integration", "continuous deployment", "continuous quality control"] | ||
--- | ||
|
||
The **ARCHub** concept applies the software development principles of _Continuous Integration (CI)_ and _Continuous Deployment (CD)_ to the research data management framework provided by ARCs, making ARCs first-class citizens in the cloud. | ||
ARCs can be continuously validated, built, and deployed much like software. | ||
By using CI/CD in for a set of subsequently defined tasks, many collaborative cloud platforms such as GitLab, GitHub, or Bitbucket can be used to build an ARCHub. | ||
|
||
![ARCHub leverages CI/CD capabilities to build, deploy, and validate ARCs](/arc-website/archub-overview.png) | ||
|
||
## Continuous Deployment | ||
|
||
CD can be used to continuously deploy ARC artifacts such as metadata export formats, computational results, etc. to another environment. | ||
|
||
ARCHubs use CD to build and deploy the [**ARC-RO-Crate metadata]() of each commit to a central package registry. | ||
This way, both representations of the ARC are always in sync and accessible, deploying both a user-centric and a machine-readable view on the ARC. | ||
|
||
![ARCHubs use CD to build and deploy the ARC-RO-Crate metadata](/arc-website/ci-cd-arc-application.png) | ||
|
||
## Continuous Integration | ||
|
||
Incremental changes on ARCs can be used to trigger _integrations_. | ||
ARCHubs can run a user-selected set of validation packages on each commit or pull request to verify that an ARC is still _valid_ for the targets of choice after the change is done . | ||
|
||
Furthermore, the validation package output can be used to continuously inform the user about the current state of the ARC, for example by creating badges on the ARC page, much like the widely known `build and test` badges in software development. | ||
|
||
## Continuous Quality Control (CQC) | ||
|
||
Continuous Quality Control (CQC) is a combination of CI and CD that integrates external services depending on the result of ARC validation. | ||
Successful validation can trigger downstream applications, either automatically or manually via _CQC Hooks_. | ||
|
||
The [PLANTdataHUB](https://git.nfdi4plants.org) serves as a reference implementation of an ARCHub, centrally hosted by NFDI DataPLANT for the plant research community. | ||
Beyond its core functionality as an ARCHub, it incorporates **CQC** within the data publication pipeline, ensuring that all required metadata for publication is complete and accurate. | ||
|
||
CQC also supports submissions to various endpoint repositories, provided the corresponding validation package and downstream submission application are available. | ||
This flexible system ensures that ARC submissions meet the necessary standards for different repositories, enabling seamless integration and data sharing across platforms. | ||
|
||
![cqc can be used to submit relevant parts of an ARC to endpoint repositories](/arc-website/ci-cd-cqc.png) |