Files
wizarr/.github/workflows/release.yml
Matthieu B 7cd7130597 Merge pull request #1169 from wizarrrr/dependabot/github_actions/docker/login-action-4
build(deps): bump docker/login-action from 3 to 4
2026-03-29 15:30:59 +02:00

89 lines
3.2 KiB
YAML

name: wizarr-release
on:
release:
types: [ published ]
workflow_dispatch:
inputs:
version:
description: 'Version to build (e.g., v2025.9.1 or latest)'
required: false
default: 'latest'
env:
PYTHON_VERSION: '3.12'
NODE_VERSION: '20'
jobs:
# ──────────────────── Docker Stable Release ────────────────────
stable-release:
runs-on: blacksmith-4vcpu-ubuntu-2404
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v6
# ─────── Generate uv.lock for reproducible builds ───────
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install uv
uses: astral-sh/setup-uv@v7
- name: Generate uv.lock
run: uv lock
- name: Determine version
id: version
run: |
if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then
VERSION="${{ inputs.version }}"
if [[ "$VERSION" == "latest" ]]; then
# Get version from pyproject.toml
VERSION=$(grep '^version = ' pyproject.toml | head -1 | sed 's/version = "\(.*\)"/\1/' || echo "latest")
fi
else
# From release event
VERSION="${{ github.event.release.tag_name }}"
fi
echo "Building version: $VERSION"
echo "version=$VERSION" >> $GITHUB_OUTPUT
# Set tag name (with v prefix for non-latest)
if [[ "$VERSION" == "latest" ]]; then
echo "tag_name=latest" >> $GITHUB_OUTPUT
elif [[ "$VERSION" =~ ^v.* ]]; then
echo "tag_name=$VERSION" >> $GITHUB_OUTPUT
else
echo "tag_name=v$VERSION" >> $GITHUB_OUTPUT
fi
- name: Log in to GHCR
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v4
- name: Setup Blacksmith Builder
uses: useblacksmith/setup-docker-builder@v1
- name: Build & push stable release image
uses: useblacksmith/build-push-action@v2
with:
context: .
push: true
platforms: linux/amd64,linux/arm64
tags: |
ghcr.io/${{ github.repository_owner }}/wizarr:latest
ghcr.io/${{ github.repository_owner }}/wizarr:${{ steps.version.outputs.tag_name }}
build-args: |
APP_VERSION=${{ steps.version.outputs.version }}