mirror of
https://github.com/levogevo/ffmpeg-builder.git
synced 2026-01-15 19:06:17 +00:00
more fixes
This commit is contained in:
22
Jenkinsfile
vendored
22
Jenkinsfile
vendored
@@ -3,37 +3,25 @@ pipeline {
|
|||||||
stages {
|
stages {
|
||||||
stage('Build Docker Image Matrix') {
|
stage('Build Docker Image Matrix') {
|
||||||
matrix {
|
matrix {
|
||||||
agent { label "linux && amd64" }
|
|
||||||
axes {
|
axes {
|
||||||
axis {
|
axis {
|
||||||
name 'DISTRO'
|
name 'DISTRO'
|
||||||
values 'debian:bookworm', 'ubuntu:24.04', 'ubuntu:22.04',
|
values 'debian-bookworm', 'ubuntu-24.04', 'ubuntu-22.04',
|
||||||
'archlinux:latest', 'fedora:42'
|
'archlinux-latest', 'fedora-42'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stages {
|
stages {
|
||||||
stage('Build Docker Image') {
|
stage('Build Docker Image') {
|
||||||
|
agent { label "linux && amd64" }
|
||||||
steps {
|
steps {
|
||||||
sh "./scripts/docker_build_image.sh ${DISTRO}"
|
sh "./scripts/docker_build_image.sh ${DISTRO}"
|
||||||
sh "./scripts/docker_save_image.sh ${DISTRO}"
|
sh "./scripts/docker_save_image.sh ${DISTRO}"
|
||||||
stash includes: "gitignore/docker/*${DISTRO}.tar.zst", name: "${DISTRO}-stash"
|
stash includes: "gitignore/docker/*${DISTRO}.tar.zst", name: "${DISTRO}-stash"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Run Docker Image Matrix') {
|
|
||||||
matrix {
|
|
||||||
agent { label "linux && arm64" }
|
|
||||||
axes {
|
|
||||||
axis {
|
|
||||||
name 'DISTRO'
|
|
||||||
values 'debian:bookworm', 'ubuntu:24.04', 'ubuntu:22.04',
|
|
||||||
'archlinux:latest', 'fedora:42'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stages {
|
|
||||||
stage('Run Docker Image') {
|
stage('Run Docker Image') {
|
||||||
|
agent { label "linux && arm64" }
|
||||||
steps {
|
steps {
|
||||||
unstash "${DISTRO}-stash"
|
unstash "${DISTRO}-stash"
|
||||||
sh "./scripts/docker_load_image.sh ${DISTRO}"
|
sh "./scripts/docker_load_image.sh ${DISTRO}"
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
VALID_DOCKER_IMAGES=(
|
VALID_DOCKER_IMAGES=(
|
||||||
'ubuntu:22.04' 'ubuntu:24.04'
|
'ubuntu-22.04' 'ubuntu-24.04'
|
||||||
'fedora:41' 'fedora:42'
|
'fedora-41' 'fedora-42'
|
||||||
'archlinux:latest'
|
'archlinux-latest'
|
||||||
'debian:bookworm'
|
'debian-bookworm'
|
||||||
)
|
)
|
||||||
|
|
||||||
check_docker() {
|
check_docker() {
|
||||||
@@ -14,15 +14,16 @@ check_docker() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
safe_docker_image_name() {
|
# change dash to colon for docker and add namespace
|
||||||
|
set_distro_image_tag() {
|
||||||
local image_tag="${1}"
|
local image_tag="${1}"
|
||||||
# echo "${image_tag//:/-}"
|
echo "ffmpeg_builder_${image_tag//-/:}"
|
||||||
echo "${image_tag}"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# change colon to dash and add extension type
|
||||||
docker_image_archive_name() {
|
docker_image_archive_name() {
|
||||||
local image_tag="${1}"
|
local image_tag="${1}"
|
||||||
echo "$(safe_docker_image_name "${image_tag}").tar.zst"
|
echo "${image_tag//:/-}.tar.zst"
|
||||||
}
|
}
|
||||||
|
|
||||||
validate_selected_image() {
|
validate_selected_image() {
|
||||||
@@ -48,7 +49,7 @@ docker_build_image() {
|
|||||||
test -d "${DOCKER_DIR}" || mkdir -p "${DOCKER_DIR}"
|
test -d "${DOCKER_DIR}" || mkdir -p "${DOCKER_DIR}"
|
||||||
local platform="${PLATFORM:-linux/amd64}"
|
local platform="${PLATFORM:-linux/amd64}"
|
||||||
for distro in "${DISTROS[@]}"; do
|
for distro in "${DISTROS[@]}"; do
|
||||||
image_tag="ffmpeg_builder_${distro}"
|
image_tag="$(set_distro_image_tag "${distro}")"
|
||||||
echo_info "sourcing package manager for ${image_tag}"
|
echo_info "sourcing package manager for ${image_tag}"
|
||||||
|
|
||||||
# distro without problematic characters
|
# distro without problematic characters
|
||||||
@@ -101,7 +102,7 @@ docker_save_image() {
|
|||||||
check_docker || return 1
|
check_docker || return 1
|
||||||
local platform="${PLATFORM:-linux/amd64}"
|
local platform="${PLATFORM:-linux/amd64}"
|
||||||
for distro in "${DISTROS[@]}"; do
|
for distro in "${DISTROS[@]}"; do
|
||||||
image_tag="ffmpeg_builder_${distro}"
|
image_tag="$(set_distro_image_tag "${distro}")"
|
||||||
echo_info "saving docker image for ${image_tag}"
|
echo_info "saving docker image for ${image_tag}"
|
||||||
docker save --platform "${platform}" "${image_tag}" |
|
docker save --platform "${platform}" "${image_tag}" |
|
||||||
zstd -T0 >"${DOCKER_DIR}/$(docker_image_archive_name "${image_tag}")" ||
|
zstd -T0 >"${DOCKER_DIR}/$(docker_image_archive_name "${image_tag}")" ||
|
||||||
@@ -117,12 +118,13 @@ docker_load_image() {
|
|||||||
check_docker || return 1
|
check_docker || return 1
|
||||||
local platform="${PLATFORM:-linux/amd64}"
|
local platform="${PLATFORM:-linux/amd64}"
|
||||||
for distro in "${DISTROS[@]}"; do
|
for distro in "${DISTROS[@]}"; do
|
||||||
image_tag="ffmpeg_builder_${distro}"
|
image_tag="$(set_distro_image_tag "${distro}")"
|
||||||
echo_info "loading docker image for ${image_tag}"
|
echo_info "loading docker image for ${image_tag}"
|
||||||
local archive="${DOCKER_DIR}/$(docker_image_archive_name "${image_tag}")"
|
local archive="${DOCKER_DIR}/$(docker_image_archive_name "${image_tag}")"
|
||||||
test -f "$archive" || return 1
|
test -f "$archive" || return 1
|
||||||
zstdcat -T0 "$archive" |
|
zstdcat -T0 "$archive" |
|
||||||
docker load || return 1
|
docker load || return 1
|
||||||
|
docker system prune -f
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -133,10 +135,10 @@ docker_run_image() {
|
|||||||
check_docker || return 1
|
check_docker || return 1
|
||||||
local platform="${PLATFORM:-linux/amd64}"
|
local platform="${PLATFORM:-linux/amd64}"
|
||||||
for distro in "${DISTROS[@]}"; do
|
for distro in "${DISTROS[@]}"; do
|
||||||
image_tag="ffmpeg_builder_${distro}"
|
image_tag="$(set_distro_image_tag "${distro}")"
|
||||||
echo_info "running ffmpeg build for ${image_tag}"
|
echo_info "running ffmpeg build for ${image_tag}"
|
||||||
docker run --rm \
|
docker run --rm \
|
||||||
--platform ${platform} \
|
--platform "${platform}" \
|
||||||
-v "${REPO_DIR}":/workdir \
|
-v "${REPO_DIR}":/workdir \
|
||||||
-w /workdir \
|
-w /workdir \
|
||||||
"${image_tag}" \
|
"${image_tag}" \
|
||||||
|
|||||||
Reference in New Issue
Block a user