Files
gx 4a6a6f4a6c
build / cmake build (CUDA 12.4, Ubuntu 22.04) (push) Failing after 1m4s
build / ffmpeg filter patch (out-of-tree) (push) Has been skipped
ci: gitea Actions workflows (build, release) + README badges
- .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>
2026-05-18 21:43:55 +01:00

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