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