From 734499134704354a14373e84141340b226981e67 Mon Sep 17 00:00:00 2001 From: Bill Date: Sun, 30 Nov 2025 18:22:55 -0500 Subject: [PATCH] ci: add GitHub and Gitea workflows for version tag releases Workflows trigger on v*.*.* tags, run tests with pytest, and build Docker image tagged with version number. --- .gitea/workflows/release.yml | 49 +++++++++++++++++++++++++++++++++ .github/workflows/release.yml | 51 +++++++++++++++++++++++++++++++++++ 2 files changed, 100 insertions(+) create mode 100644 .gitea/workflows/release.yml create mode 100644 .github/workflows/release.yml diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml new file mode 100644 index 0000000..066124c --- /dev/null +++ b/.gitea/workflows/release.yml @@ -0,0 +1,49 @@ +name: Test and Build + +on: + push: + tags: + - 'v*.*.*' + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Install uv + uses: astral-sh/setup-uv@v4 + + - name: Set up Python + run: uv python install 3.12 + + - name: Install dependencies + run: uv sync + + - name: Install FFmpeg + run: sudo apt-get update && sudo apt-get install -y ffmpeg + + - name: Run tests + run: uv run pytest tests/ -v --ignore=tests/test_integration.py + + build: + needs: test + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Extract version from tag + id: version + run: echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT + + - name: Build Docker image + uses: docker/build-push-action@v6 + with: + context: . + push: false + tags: | + ffmpeg-worker:${{ steps.version.outputs.VERSION }} + ffmpeg-worker:latest diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..8fe2bf3 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,51 @@ +name: Test and Build + +on: + push: + tags: + - 'v*.*.*' + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Install uv + uses: astral-sh/setup-uv@v4 + + - name: Set up Python + run: uv python install 3.12 + + - name: Install dependencies + run: uv sync + + - name: Install FFmpeg + run: sudo apt-get update && sudo apt-get install -y ffmpeg + + - name: Run tests + run: uv run pytest tests/ -v --ignore=tests/test_integration.py + + build: + needs: test + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Extract version from tag + id: version + run: echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT + + - name: Build Docker image + uses: docker/build-push-action@v6 + with: + context: . + push: false + tags: | + ffmpeg-worker:${{ steps.version.outputs.VERSION }} + ffmpeg-worker:latest + cache-from: type=gha + cache-to: type=gha,mode=max