Files
tubesync/.gitea/workflows/container.yml
2026-09-25 20:45:42 +02:00

77 lines
2.7 KiB
YAML

name: Build TubeSync image
on:
push:
branches:
- main
workflow_dispatch:
permissions:
contents: read
packages: write
jobs:
container:
runs-on: ubuntu-latest
timeout-minutes: 120
steps:
- name: Install build tools
run: |
apt-get update
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends ca-certificates curl docker.io jq
rm -rf /var/lib/apt/lists/*
- name: Check out repository
uses: actions/checkout@v4
- name: Resolve upstream dependency versions
shell: bash
run: |
set -euo pipefail
ffmpeg_json="$(curl -fsSL 'https://api.github.com/repos/yt-dlp/FFmpeg-Builds/releases?per_page=10')"
ffmpeg_tag="$(jq -r '[.[] | select((.draft or .prerelease) | not)][0].tag_name' <<<"${ffmpeg_json}")"
ffmpeg_date="${ffmpeg_tag#autobuild-}"
ffmpeg_version="$(jq -r '[.[] | select((.draft or .prerelease) | not)][0].assets[].name | select(test("-linuxarm64-")) | capture("^ffmpeg-(?<v>.+)-linuxarm64-").v' <<<"${ffmpeg_json}" | head -n1)"
ytdlp_date="$(curl -fsSL https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest | jq -r .tag_name)"
ejs_version="$(curl -fsSL https://api.github.com/repos/yt-dlp/ejs/releases/latest | jq -r .tag_name)"
test -n "${ffmpeg_date}"
test -n "${ffmpeg_version}"
test -n "${ytdlp_date}"
test -n "${ejs_version}"
{
echo "FFMPEG_DATE=${ffmpeg_date}"
echo "FFMPEG_VERSION=${ffmpeg_version}"
echo "YTDLP_DATE=${ytdlp_date}"
echo "YTDLP_EJS_VERSION=${ejs_version}"
} >> "${GITHUB_ENV}"
- name: Log in to Gitea registry
shell: bash
env:
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
run: |
set -euo pipefail
echo "${GITEA_TOKEN}" | docker login git.wimby.cz --username "${GITHUB_ACTOR}" --password-stdin
- name: Build image
shell: bash
run: |
set -euo pipefail
short_sha="${GITHUB_SHA:0:12}"
DOCKER_BUILDKIT=1 docker build \
--build-arg FFMPEG_DATE="${FFMPEG_DATE}" \
--build-arg FFMPEG_VERSION="${FFMPEG_VERSION}" \
--build-arg YTDLP_DATE="${YTDLP_DATE}" \
--build-arg YTDLP_EJS_VERSION="${YTDLP_EJS_VERSION}" \
--tag "git.wimby.cz/wimby/tubesync:latest" \
--tag "git.wimby.cz/wimby/tubesync:${short_sha}" \
.
- name: Push image
shell: bash
run: |
set -euo pipefail
short_sha="${GITHUB_SHA:0:12}"
docker push "git.wimby.cz/wimby/tubesync:${short_sha}"
docker push "git.wimby.cz/wimby/tubesync:latest"