CI/CD для наукових даних: приклади сценаріїв GitHub Actions
Додано: Чет липня 31, 2025 7:38 pm
CI/CD (Continuous Integration / Continuous Delivery) — це підхід, за якого всі зміни у проєкті (код, дані, метадані) автоматично перевіряються, збираються та публікуються. Для дослідницьких даних це означає, що:
• ви можете автоматизувати створення версій даних,
• оновлювати метадані та changelog,
• архівувати нові релізи у Zenodo або Dataverse.
У цій темі — практичні приклади, як використовувати GitHub Actions для автоматизації обробки та публікації даних у наукових проєктах.
---------------------------------------------------------------------------------------------------------------------
GitHub Actions — це сервіс, який дозволяє запускати автоматичні сценарії (workflow) кожного разу, коли ви:
• завантажуєте нові дані,
• створюєте новий "реліз",
• змінюєте файл метаданих або README.
Workflow = набір інструкцій у форматі YAML, які виконуються в середовищі Linux/Ubuntu з Docker-підтримкою.
Докладніше: GitHub Actions Docs
------------------------------------------------------------------------------------------------------------------------
Мета: щоразу, коли ви оновлюєте файл `data.csv`:
• оновлюється changelog
• створюється новий GitHub release
• автоматично активується архівування у Zenodo
Файл: `.github/workflows/data-release.yml`
Код: Виділити все
name: Auto release data to Zenodo
on:
push:
paths:
- 'data.csv'
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v3
- name: Get current date
id: date
run: echo "::set-output name=now::$(date +'%Y-%m-%d')"
- name: Create changelog entry
run: |
echo "## Version: ${{ steps.date.outputs.now }}" >> CHANGELOG.md
echo "- Updated data.csv" >> CHANGELOG.md
- name: Commit changelog
run: |
git config user.name "github-actions"
git config user.email "actions@github.com"
git add CHANGELOG.md
git commit -m "Update changelog"
git push
- name: Create release
uses: ncipollo/release-action@v1
with:
tag: v${{ steps.date.outputs.now }}
name: "Release ${{ steps.date.outputs.now }}"
body: "Automated data release from GitHub Actions"
Zenodo автоматично архівує всі GitHub релізи, якщо ви підключили репозиторій:
• Zenodo GitHub integration
• Реліз → версія з DOI
---
• генерація файлів README або metadata.json
• перевірка якості даних перед завантаженням
• конвертація файлів у формати CSV/JSON/XML
• повідомлення командам про нову версію через email або Slack
---
• Portal Project: Ecological data + CI/CD + Zenodo
• Bioinformatics example: reproducible pipelines
• PANGAEA: data publishing workflow
--------------------------------------------------------------------------------------------------
Використання GitHub Actions у наукових проєктах:
• підвищує прозорість і відтворюваність
• зменшує ризик втрати даних
• спрощує управління версіями
• ідеально підходить для публікації у Zenodo, Dataverse, EOSC