name: Release Pipeline on: push: tags: - 'v*' permissions: contents: write jobs: release: name: Release Build runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Install Dependencies run: | sudo apt-get update sudo apt-get install -y build-essential ffmpeg devscripts debhelper - name: Build binary run: make - name: Create DEB directory structure run: | mkdir -p debian/DEBIAN mkdir -p debian/usr/bin mkdir -p debian/usr/share/doc/davinci-video-converter - name: Create control file run: | VERSION=$(echo ${GITHUB_REF#refs/tags/} | sed 's/^v//') cat > debian/DEBIAN/control << EOF Package: davinci-video-converter Version: $VERSION Section: video Priority: optional Architecture: amd64 Maintainer: Developer Description: DaVinci Video Converter A command-line video conversion tool optimized for DaVinci Resolve workflows. Supports various codecs (H.264, H.265, ProRes) with quality presets. Depends: ffmpeg (>= 4.0), libc6 (>= 2.28) EOF - name: Copy binary and documentation run: | cp davinci-video-converter debian/usr/bin/ cp README.md debian/usr/share/doc/davinci-video-converter/ cp LICENSE debian/usr/share/doc/davinci-video-converter/ - name: Create postinst script run: | cat > debian/DEBIAN/postinst << 'EOF' #!/bin/bash set -e chmod 755 /usr/bin/davinci-video-converter EOF chmod 755 debian/DEBIAN/postinst - name: Build AMD64 DEB package run: | dpkg-deb --build debian davinci-video-converter_${GITHUB_REF#refs/tags/}_amd64.deb - name: Build ARM64 DEB package run: | sed -i 's/Architecture: amd64/Architecture: arm64/' debian/DEBIAN/control dpkg-deb --build debian davinci-video-converter_${GITHUB_REF#refs/tags/}_arm64.deb - name: Upload DEB packages as artifacts uses: actions/upload-artifact@v4 with: name: davinci-video-converter-debs path: davinci-video-converter_*.deb - name: Upload DEB packages to GitHub Release uses: softprops/action-gh-release@v1 with: files: davinci-video-converter_*.deb