4a6a6f4a6c
- .gitea/workflows/build.yml — on push/PR:
* cmake build на CUDA 12.4 devel image (Ubuntu 22.04 base)
* compile-only smoke (no GPU нужен): libcuframes.so + tools + examples
* install-prefix layout verify (headers + libs в правильных путях)
* filter/ — clone FFmpeg n7.1 + apply patch + build minimal patched
ffmpeg, verify cuframes demuxer registered
- .gitea/workflows/release.yml — on tag v*:
* build runtime Docker image, push в git.goldix.org/gx/cuframes:<version>
* build source tarball cuframes-<version>.tar.gz как artifact
- README.md badges: build status, release version, license
Runner: gitea act_runner v0.4.1 на R9-88.23 — labels ubuntu-22.04 / ubuntu-24.04
доступны через docker.gitea.com/runner-images. CUDA devel image использует
nvidia/cuda:12.4.1-cudnn-devel-ubuntu22.04 (уже cached на runner host).
Stress test (требует GPU) намерено НЕ в CI — runner без GPU. Запускать
отдельно на dev-машине через ctest.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
79 lines
2.6 KiB
YAML
79 lines
2.6 KiB
YAML
name: release
|
|
|
|
# Триггер: push tag v* (e.g. v0.1.0, v0.2.0).
|
|
# Сборка: runtime Docker image + source tarball, прикладываем к gitea release.
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- 'v*'
|
|
|
|
jobs:
|
|
docker-runtime:
|
|
name: build runtime Docker image
|
|
runs-on: ubuntu-22.04
|
|
container:
|
|
image: docker.gitea.com/runner-images:ubuntu-22.04
|
|
# docker socket нужен — gitea runner монтирует /var/run/docker.sock
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Tag from ref
|
|
id: tag
|
|
run: |
|
|
TAG="${GITHUB_REF#refs/tags/v}"
|
|
echo "version=$TAG" >> $GITHUB_OUTPUT
|
|
|
|
- name: Login to gitea registry
|
|
run: |
|
|
echo "${{ secrets.GITEA_TOKEN }}" | docker login git.goldix.org \
|
|
-u "${{ github.actor }}" --password-stdin
|
|
|
|
- name: Build runtime image
|
|
run: |
|
|
docker build -f docker/Dockerfile.runtime \
|
|
-t git.goldix.org/gx/cuframes:${{ steps.tag.outputs.version }} \
|
|
-t git.goldix.org/gx/cuframes:latest \
|
|
.
|
|
|
|
- name: Push
|
|
run: |
|
|
docker push git.goldix.org/gx/cuframes:${{ steps.tag.outputs.version }}
|
|
docker push git.goldix.org/gx/cuframes:latest
|
|
|
|
source-tarball:
|
|
name: build source tarball
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Tag from ref
|
|
id: tag
|
|
run: |
|
|
TAG="${GITHUB_REF#refs/tags/v}"
|
|
echo "version=$TAG" >> $GITHUB_OUTPUT
|
|
|
|
- name: Create tarball
|
|
run: |
|
|
VERSION="${{ steps.tag.outputs.version }}"
|
|
mkdir -p /tmp/release
|
|
git archive --format=tar.gz --prefix="cuframes-$VERSION/" \
|
|
-o "/tmp/release/cuframes-$VERSION.tar.gz" HEAD
|
|
ls -la /tmp/release/
|
|
|
|
# Готовый artifact — пользователь скачает с release page либо attached к release.
|
|
# Gitea release upload через API делается отдельным шагом (см. gitea/release-action
|
|
# либо curl); тут оставляем артефакт как build output для последующего ручного
|
|
# attach. Для полной автоматизации — добавить шаг upload через curl + GITEA_TOKEN.
|
|
- name: Upload tarball as artifact
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: cuframes-${{ steps.tag.outputs.version }}-source
|
|
path: /tmp/release/cuframes-*.tar.gz
|