bumping to ffmpeg 4.2.2

This commit is contained in:
thelamer 2020-01-16 13:36:03 -08:00
parent 8699857217
commit 17a76d12fe
7 changed files with 273 additions and 160 deletions

34
.github/ISSUE_TEMPLATE.md vendored Normal file
View File

@ -0,0 +1,34 @@
[linuxserverurl]: https://linuxserver.io
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)][linuxserverurl]
If you are new to Docker or this application our issue tracker is **ONLY** used for reporting bugs or requesting features. Please use [our discord server](https://discord.gg/YWrKVTn) for general support.
<!--- Provide a general summary of the issue in the Title above -->
------------------------------
## Expected Behavior
<!--- Tell us what should happen -->
## Current Behavior
<!--- Tell us what happens instead of the expected behavior -->
## Steps to Reproduce
<!--- Provide a link to a live example, or an unambiguous set of steps to -->
<!--- reproduce this bug. Include code to reproduce, if relevant -->
1.
2.
3.
4.
## Environment
**OS:**
**CPU architecture:** x86_64/arm32/arm64
**How docker service was installed:**
<!--- Providing context helps us come up with a solution that is most useful in the real world -->
## Command used to create docker container (run/create/compose/screenshot)
<!--- Provide your docker create/run command or compose yaml snippet, or a screenshot of settings if using a gui to create the container -->
## Docker logs
<!--- Provide a full docker log, output of "docker logs ffmpeg" -->

39
.github/PULL_REQUEST_TEMPLATE.md vendored Normal file
View File

@ -0,0 +1,39 @@
<!--- Provide a general summary of your changes in the Title above -->
[linuxserverurl]: https://linuxserver.io
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)][linuxserverurl]
<!--- Before submitting a pull request please check the following -->
<!--- If this is a fix for a typo in code or documentation in the README please file an issue and let us sort it out we do not need a PR -->
<!--- Ask yourself if this modification is something the whole userbase will benefit from, if this is a specific change for corner case functionality or plugins please look at making a Docker Mod or local script https://blog.linuxserver.io/2019/09/14/customizing-our-containers/ -->
<!--- That if the PR is addressing an existing issue include, closes #<issue number> , in the body of the PR commit message -->
<!--- You have included links to any files / patches etc your PR may be using in the body of the PR commit message -->
<!--- We maintain a changelog of major revisions to the container at the end of readme-vars.yml in the root of this repository, please add your changes there if appropriate -->
<!--- Coding guidelines: -->
<!--- 1. Installed packages in the Dockerfiles should be in alphabetical order -->
<!--- 2. Changes to Dockerfile should be replicated in Dockerfile.armhf and Dockerfile.aarch64 if applicable -->
<!--- 3. Indentation style (tabs vs 4 spaces vs 1 space) should match the rest of the document -->
<!--- 4. Readme is auto generated from readme-vars.yml, make your changes there -->
------------------------------
We welcome all PRs though this doesnt guarantee it will be accepted.
## Description:
<!--- Describe your changes in detail -->
## Benefits of this PR and context:
<!--- Please explain why we should accept this PR. If this fixes an outstanding bug, please reference the issue # -->
## How Has This Been Tested?
<!--- Please describe in detail how you tested your changes. -->
<!--- Include details of your testing environment, and the tests you ran to -->
<!--- see how your change affects other areas of the code, etc. -->
## Source / References:
<!--- Please include any forum posts/github links relevant to the PR -->

View File

@ -11,28 +11,28 @@ ENV \
# versions
ENV \
AOM=v1.0.0 \
FDKAAC=0.1.5 \
FFMPEG_HARD=4.2.1 \
FONTCONFIG=2.13.91 \
FDKAAC=2.0.1 \
FFMPEG_HARD=4.2.2 \
FONTCONFIG=2.13.92 \
FREETYPE=2.9.1 \
FRIBIDI=0.19.7 \
KVAZAAR=1.2.0 \
LAME=3.99.5 \
FRIBIDI=1.0.8 \
KVAZAAR=1.3.0 \
LAME=3.100 \
LIBASS=0.14.0 \
LIBDRM=2.4.98 \
LIBVA=2.4.1 \
LIBDRM=2.4.100 \
LIBVA=2.6.0 \
LIBVDPAU=1.2 \
LIBVIDSTAB=1.1.0 \
NVCODEC=n9.0.18.1 \
OGG=1.3.2 \
NVCODEC=n9.1.23.1 \
OGG=1.3.4 \
OPENCOREAMR=0.1.5 \
OPENJPEG=2.3.1 \
OPUS=1.3 \
THEORA=1.1.1 \
VORBIS=1.3.6 \
VPX=1.8.0 \
X265=3.1.1 \
XVID=1.3.4
VPX=1.8.2 \
X265=3.2.1 \
XVID=1.3.7
RUN \
echo "**** install build packages ****" && \
@ -148,12 +148,12 @@ RUN \
echo "**** grabbing fribidi ****" && \
mkdir -p /tmp/fribidi && \
curl -Lf \
https://github.com/fribidi/fribidi/archive/${FRIBIDI}.tar.gz | \
https://github.com/fribidi/fribidi/archive/v${FRIBIDI}.tar.gz | \
tar -zx --strip-components=1 -C /tmp/fribidi
RUN \
echo "**** compiling fribidi ****" && \
cd /tmp/fribidi && \
./bootstrap --no-config && \
./autogen.sh && \
./configure \
--disable-static \
--enable-shared && \
@ -178,7 +178,7 @@ RUN \
echo "**** grabbing lame ****" && \
mkdir -p /tmp/lame && \
curl -Lf \
http://downloads.sourceforge.net/project/lame/lame/3.99/lame-${LAME}.tar.gz | \
http://downloads.sourceforge.net/project/lame/lame/3.100/lame-${LAME}.tar.gz | \
tar -zx --strip-components=1 -C /tmp/lame
RUN \
echo "**** compiling lame ****" && \
@ -396,7 +396,7 @@ RUN \
echo "**** grabbing x264 ****" && \
mkdir -p /tmp/x264 && \
curl -Lf \
https://download.videolan.org/pub/videolan/x264/snapshots/last_stable_x264.tar.bz2 | \
https://code.videolan.org/videolan/x264/-/archive/master/x264-stable.tar.bz2 | \
tar -jx --strip-components=1 -C /tmp/x264
RUN \
echo "**** compiling x264 ****" && \
@ -423,7 +423,7 @@ RUN \
echo "**** grabbing xvid ****" && \
mkdir -p /tmp/xvid && \
curl -Lf \
http://downloads.xvid.org/downloads/xvidcore-${XVID}.tar.gz | \
https://downloads.xvid.com/downloads/xvidcore-${XVID}.tar.gz | \
tar -zx --strip-components=1 -C /tmp/xvid
RUN \
echo "**** compiling xvid ****" && \

View File

@ -11,28 +11,27 @@ ENV \
# versions
ENV \
AOM=v1.0.0 \
FDKAAC=0.1.5 \
FFMPEG_HARD=4.2.1 \
FONTCONFIG=2.13.91 \
FREETYPE=2.8.1 \
FRIBIDI=0.19.7 \
KVAZAAR=1.2.0 \
LAME=3.99.5 \
FDKAAC=2.0.1 \
FFMPEG_HARD=4.2.2 \
FREETYPE=2.9.1 \
FRIBIDI=1.0.8 \
KVAZAAR=1.3.0 \
LAME=3.100 \
LIBASS=0.14.0 \
LIBDRM=2.4.98 \
LIBVA=2.4.1 \
LIBVA=2.6.0 \
LIBVDPAU=1.2 \
LIBVIDSTAB=1.1.0 \
NVCODEC=n9.0.18.1 \
OGG=1.3.2 \
NVCODEC=n9.1.23.1 \
OGG=1.3.4 \
OPENCOREAMR=0.1.5 \
OPENJPEG=2.3.1 \
OPUS=1.3 \
THEORA=1.1.1 \
VORBIS=1.3.6 \
VPX=1.8.0 \
X265=3.1.1 \
XVID=1.3.4
VPX=1.8.2 \
X265=3.2.1 \
XVID=1.3.7
RUN \
echo "**** install build packages ****" && \
@ -50,6 +49,7 @@ RUN \
git \
gperf \
libexpat1-dev \
libfontconfig1-dev \
libxext-dev \
libgcc-7-dev \
libgomp1 \
@ -119,30 +119,16 @@ RUN \
--enable-shared && \
make && \
make install
RUN \
echo "**** grabbing fontconfig ****" && \
mkdir -p /tmp/fontconfig && \
curl -Lf \
https://www.freedesktop.org/software/fontconfig/release/fontconfig-${FONTCONFIG}.tar.gz | \
tar -zx --strip-components=1 -C /tmp/fontconfig
RUN \
echo "**** compiling fontconfig ****" && \
cd /tmp/fontconfig && \
./configure \
--disable-static \
--enable-shared && \
make && \
make install
RUN \
echo "**** grabbing fribidi ****" && \
mkdir -p /tmp/fribidi && \
curl -Lf \
https://github.com/fribidi/fribidi/archive/${FRIBIDI}.tar.gz | \
https://github.com/fribidi/fribidi/archive/v${FRIBIDI}.tar.gz | \
tar -zx --strip-components=1 -C /tmp/fribidi
RUN \
echo "**** compiling fribidi ****" && \
cd /tmp/fribidi && \
./bootstrap --no-config && \
./autogen.sh && \
./configure \
--disable-static \
--enable-shared && \
@ -167,7 +153,7 @@ RUN \
echo "**** grabbing lame ****" && \
mkdir -p /tmp/lame && \
curl -Lf \
http://downloads.sourceforge.net/project/lame/lame/3.99/lame-${LAME}.tar.gz | \
http://downloads.sourceforge.net/project/lame/lame/3.100/lame-${LAME}.tar.gz | \
tar -zx --strip-components=1 -C /tmp/lame
RUN \
echo "**** compiling lame ****" && \
@ -341,7 +327,7 @@ RUN \
echo "**** grabbing x264 ****" && \
mkdir -p /tmp/x264 && \
curl -Lf \
https://download.videolan.org/pub/videolan/x264/snapshots/last_stable_x264.tar.bz2 | \
https://code.videolan.org/videolan/x264/-/archive/master/x264-stable.tar.bz2 | \
tar -jx --strip-components=1 -C /tmp/x264
RUN \
echo "**** compiling x264 ****" && \
@ -369,7 +355,7 @@ RUN \
echo "**** grabbing xvid ****" && \
mkdir -p /tmp/xvid && \
curl -Lf \
http://downloads.xvid.org/downloads/xvidcore-${XVID}.tar.gz | \
https://downloads.xvid.com/downloads/xvidcore-${XVID}.tar.gz | \
tar -zx --strip-components=1 -C /tmp/xvid
RUN \
echo "**** compiling xvid ****" && \

View File

@ -11,28 +11,27 @@ ENV \
# versions
ENV \
AOM=v1.0.0 \
FDKAAC=0.1.5 \
FFMPEG_HARD=4.2.1 \
FONTCONFIG=2.13.91 \
FREETYPE=2.8.1 \
FRIBIDI=0.19.7 \
KVAZAAR=1.2.0 \
LAME=3.99.5 \
FDKAAC=2.0.1 \
FFMPEG_HARD=4.2.2 \
FREETYPE=2.9.1 \
FRIBIDI=1.0.8 \
KVAZAAR=1.3.0 \
LAME=3.100 \
LIBASS=0.14.0 \
LIBDRM=2.4.98 \
LIBVA=2.4.1 \
LIBVA=2.6.0 \
LIBVDPAU=1.2 \
LIBVIDSTAB=1.1.0 \
NVCODEC=n9.0.18.1 \
OGG=1.3.2 \
NVCODEC=n9.1.23.1 \
OGG=1.3.4 \
OPENCOREAMR=0.1.5 \
OPENJPEG=2.3.1 \
OPUS=1.3 \
THEORA=1.1.1 \
VORBIS=1.3.6 \
VPX=1.8.0 \
X265=3.1.1 \
XVID=1.3.4
VPX=1.8.2 \
X265=3.2.1 \
XVID=1.3.7
RUN \
echo "**** install build packages ****" && \
@ -50,6 +49,7 @@ RUN \
git \
gperf \
libexpat1-dev \
libfontconfig1-dev \
libxext-dev \
libgcc-7-dev \
libgomp1 \
@ -120,30 +120,16 @@ RUN \
--enable-shared && \
make && \
make install
RUN \
echo "**** grabbing fontconfig ****" && \
mkdir -p /tmp/fontconfig && \
curl -Lf \
https://www.freedesktop.org/software/fontconfig/release/fontconfig-${FONTCONFIG}.tar.gz | \
tar -zx --strip-components=1 -C /tmp/fontconfig
RUN \
echo "**** compiling fontconfig ****" && \
cd /tmp/fontconfig && \
./configure \
--disable-static \
--enable-shared && \
make && \
make install
RUN \
echo "**** grabbing fribidi ****" && \
mkdir -p /tmp/fribidi && \
curl -Lf \
https://github.com/fribidi/fribidi/archive/${FRIBIDI}.tar.gz | \
https://github.com/fribidi/fribidi/archive/v${FRIBIDI}.tar.gz | \
tar -zx --strip-components=1 -C /tmp/fribidi
RUN \
echo "**** compiling fribidi ****" && \
cd /tmp/fribidi && \
./bootstrap --no-config && \
./autogen.sh && \
./configure \
--disable-static \
--enable-shared && \
@ -168,7 +154,7 @@ RUN \
echo "**** grabbing lame ****" && \
mkdir -p /tmp/lame && \
curl -Lf \
http://downloads.sourceforge.net/project/lame/lame/3.99/lame-${LAME}.tar.gz | \
http://downloads.sourceforge.net/project/lame/lame/3.100/lame-${LAME}.tar.gz | \
tar -zx --strip-components=1 -C /tmp/lame
RUN \
echo "**** compiling lame ****" && \
@ -344,7 +330,7 @@ RUN \
echo "**** grabbing x264 ****" && \
mkdir -p /tmp/x264 && \
curl -Lf \
https://download.videolan.org/pub/videolan/x264/snapshots/last_stable_x264.tar.bz2 | \
https://code.videolan.org/videolan/x264/-/archive/master/x264-stable.tar.bz2 | \
tar -jx --strip-components=1 -C /tmp/x264
RUN \
echo "**** compiling x264 ****" && \
@ -366,7 +352,7 @@ RUN \
echo "**** compiling x265 ****" && \
cd /tmp/x265/build/linux && \
curl -fL \
https://sources.debian.org/data/main/x/x265/3.1.1-2/debian/patches/0001-Fix-arm-flags.patch \
https://sources.debian.org/data/main/x/x265/3.2.1-1/debian/patches/0001-Fix-arm-flags.patch \
> arm.patch && \
patch ../../source/CMakeLists.txt < arm.patch && \
cmake \
@ -379,7 +365,7 @@ RUN \
echo "**** grabbing xvid ****" && \
mkdir -p /tmp/xvid && \
curl -Lf \
http://downloads.xvid.org/downloads/xvidcore-${XVID}.tar.gz | \
https://downloads.xvid.com/downloads/xvidcore-${XVID}.tar.gz | \
tar -zx --strip-components=1 -C /tmp/xvid
RUN \
echo "**** compiling xvid ****" && \

220
Jenkinsfile vendored
View File

@ -2,6 +2,10 @@ pipeline {
agent {
label 'X86-64-MULTI'
}
options {
buildDiscarder(logRotator(numToKeepStr: '10', daysToKeepStr: '60'))
parallelsAlwaysFailFast()
}
// Input to determine if this is a package check
parameters {
string(defaultValue: 'false', description: 'package check run', name: 'PACKAGE_CHECK')
@ -10,6 +14,8 @@ pipeline {
environment {
BUILDS_DISCORD=credentials('build_webhook_url')
GITHUB_TOKEN=credentials('498b4638-2d02-4ce5-832d-8a57d01d97ab')
GITLAB_TOKEN=credentials('b6f0f1dd-6952-4cf6-95d1-9c06380283f0')
GITLAB_NAMESPACE=credentials('gitlab-namespace-id')
BUILD_VERSION_ARG = 'FFMPEG_VERSION'
LS_USER = 'linuxserver'
LS_REPO = 'docker-ffmpeg'
@ -42,22 +48,7 @@ pipeline {
env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/commit/' + env.GIT_COMMIT
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DOCKERHUB_IMAGE + '/tags/'
env.PULL_REQUEST = env.CHANGE_ID
env.LICENSE_TAG = sh(
script: '''#!/bin/bash
if [ -e LICENSE ] ; then
cat LICENSE | md5sum | cut -c1-8
else
echo none
fi''',
returnStdout: true).trim()
env.FUNDING_TAG = sh(
script: '''#!/bin/bash
if [ -e ./.github/FUNDING.yml ] ; then
cat ./.github/FUNDING.yml | md5sum | cut -c1-8
else
echo none
fi''',
returnStdout: true).trim()
env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE.md ./.github/PULL_REQUEST_TEMPLATE.md'
}
script{
env.LS_RELEASE_NUMBER = sh(
@ -105,7 +96,7 @@ pipeline {
steps{
script{
env.EXT_RELEASE = sh(
script: ''' echo 4.2.1 ''',
script: ''' echo 4.2.2 ''',
returnStdout: true).trim()
env.RELEASE_LINK = 'custom_command'
}
@ -130,6 +121,9 @@ pipeline {
steps {
script{
env.IMAGE = env.DOCKERHUB_IMAGE
env.QUAYIMAGE = 'quay.io/linuxserver.io/' + env.CONTAINER_NAME
env.GITHUBIMAGE = 'docker.pkg.github.com/' + env.LS_USER + '/' + env.LS_REPO + '/' + env.CONTAINER_NAME
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
} else {
@ -148,6 +142,9 @@ pipeline {
steps {
script{
env.IMAGE = env.DEV_DOCKERHUB_IMAGE
env.QUAYIMAGE = 'quay.io/linuxserver.io/lsiodev-' + env.CONTAINER_NAME
env.GITHUBIMAGE = 'docker.pkg.github.com/' + env.LS_USER + '/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
} else {
@ -166,6 +163,9 @@ pipeline {
steps {
script{
env.IMAGE = env.PR_DOCKERHUB_IMAGE
env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME
env.GITHUBIMAGE = 'docker.pkg.github.com/' + env.LS_USER + '/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
} else {
@ -221,35 +221,32 @@ pipeline {
TEMPDIR=$(mktemp -d)
docker pull linuxserver/jenkins-builder:latest
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=bin -v ${TEMPDIR}:/ansible/jenkins linuxserver/jenkins-builder:latest
docker pull linuxserver/doc-builder:latest
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=bin -v ${TEMPDIR}:/ansible/readme linuxserver/doc-builder:latest
if [ "$(md5sum ${TEMPDIR}/${LS_REPO}/Jenkinsfile | awk '{ print $1 }')" != "$(md5sum Jenkinsfile | awk '{ print $1 }')" ] || \
[ "$(md5sum ${TEMPDIR}/${CONTAINER_NAME}/README.md | awk '{ print $1 }')" != "$(md5sum README.md | awk '{ print $1 }')" ] || \
[ "$(cat ${TEMPDIR}/${LS_REPO}/LICENSE | md5sum | cut -c1-8)" != "${LICENSE_TAG}" ] || \
[ "$(cat ${TEMPDIR}/${LS_REPO}/.github/FUNDING.yml | md5sum | cut -c1-8)" != "${FUNDING_TAG}" ]; then
CURRENTHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
cd ${TEMPDIR}/docker-${CONTAINER_NAME}
NEWHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
if [[ "${CURRENTHASH}" != "${NEWHASH}" ]]; then
mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
git --git-dir ${TEMPDIR}/repo/${LS_REPO}/.git checkout -f bin
cp ${TEMPDIR}/${CONTAINER_NAME}/README.md ${TEMPDIR}/repo/${LS_REPO}/
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/LICENSE ${TEMPDIR}/repo/${LS_REPO}/
cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f bin
cd ${TEMPDIR}/docker-${CONTAINER_NAME}
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.github/FUNDING.yml ${TEMPDIR}/repo/${LS_REPO}/.github/FUNDING.yml
cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/
cd ${TEMPDIR}/repo/${LS_REPO}/
git --git-dir ${TEMPDIR}/repo/${LS_REPO}/.git add Jenkinsfile README.md LICENSE ./.github/FUNDING.yml
git --git-dir ${TEMPDIR}/repo/${LS_REPO}/.git commit -m 'Bot Updating Templated Files'
git --git-dir ${TEMPDIR}/repo/${LS_REPO}/.git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
git add ${TEMPLATED_FILES}
git commit -m 'Bot Updating Templated Files'
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
else
echo "false" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
fi
mkdir -p ${TEMPDIR}/gitbook
git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/gitbook/docker-documentation
if [[ "${BRANCH_NAME}" == "master" ]] && [[ (! -f ${TEMPDIR}/gitbook/docker-documentation/images/docker-${CONTAINER_NAME}.md) || ("$(md5sum ${TEMPDIR}/gitbook/docker-documentation/images/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/${CONTAINER_NAME}/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')") ]]; then
cp ${TEMPDIR}/${CONTAINER_NAME}/docker-${CONTAINER_NAME}.md ${TEMPDIR}/gitbook/docker-documentation/images/
if [[ "${BRANCH_NAME}" == "master" ]] && [[ (! -f ${TEMPDIR}/gitbook/docker-documentation/images/docker-${CONTAINER_NAME}.md) || ("$(md5sum ${TEMPDIR}/gitbook/docker-documentation/images/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')") ]]; then
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/docker-${CONTAINER_NAME}.md ${TEMPDIR}/gitbook/docker-documentation/images/
cd ${TEMPDIR}/gitbook/docker-documentation/
git add images/docker-${CONTAINER_NAME}.md
git commit -m 'Bot Updating Templated Files'
git commit -m 'Bot Updating Documentation'
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git --all
fi
rm -Rf ${TEMPDIR}'''
@ -276,6 +273,26 @@ pipeline {
}
}
}
/* #######################
GitLab Mirroring
####################### */
// Ping into Gitlab to mirror this repo and have a registry endpoint
stage("GitLab Mirror"){
when {
environment name: 'EXIT_STATUS', value: ''
}
steps{
sh '''curl -H "Content-Type: application/json" -H "Private-Token: ${GITLAB_TOKEN}" -X POST https://gitlab.com/api/v4/projects \
-d '{"namespace_id":'${GITLAB_NAMESPACE}',\
"name":"'${LS_REPO}'",
"mirror":true,\
"import_url":"https://github.com/linuxserver/'${LS_REPO}'.git",\
"issues_access_level":"disabled",\
"merge_requests_access_level":"disabled",\
"repository_access_level":"enabled",\
"visibility":"public"}' '''
}
}
/* ###############
Build Container
############### */
@ -424,19 +441,32 @@ pipeline {
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
usernameVariable: 'DOCKERUSER',
passwordVariable: 'DOCKERPASS'
],
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: 'Quay.io-Robot',
usernameVariable: 'QUAYUSER',
passwordVariable: 'QUAYPASS'
]
]) {
echo 'Logging into DockerHub'
sh '''#! /bin/bash
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
set -e
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
echo $GITHUB_TOKEN | docker login docker.pkg.github.com -u LinuxServer-CI --password-stdin
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
for PUSHIMAGE in "${QUAYIMAGE}" "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
docker tag ${IMAGE}:${META_TAG} ${PUSHIMAGE}:${META_TAG}
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:bin
docker push ${PUSHIMAGE}:bin
docker push ${PUSHIMAGE}:${META_TAG}
done
for DELETEIMAGE in "${QUAYIMAGE}" "${GITHUBIMAGE}" "{GITLABIMAGE}" "${IMAGE}"; do
docker rmi \
${DELETEIMAGE}:${META_TAG} \
${DELETEIMAGE}:bin || :
done
'''
sh "docker tag ${IMAGE}:${META_TAG} ${IMAGE}:bin"
sh "docker push ${IMAGE}:bin"
sh "docker push ${IMAGE}:${META_TAG}"
sh '''docker rmi \
${IMAGE}:${META_TAG} \
${IMAGE}:bin || :'''
}
}
}
@ -453,46 +483,81 @@ pipeline {
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
usernameVariable: 'DOCKERUSER',
passwordVariable: 'DOCKERPASS'
],
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: 'Quay.io-Robot',
usernameVariable: 'QUAYUSER',
passwordVariable: 'QUAYPASS'
]
]) {
sh '''#! /bin/bash
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
'''
sh '''#! /bin/bash
set -e
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
echo $GITHUB_TOKEN | docker login docker.pkg.github.com -u LinuxServer-CI --password-stdin
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
if [ "${CI}" == "false" ]; then
docker pull lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
docker pull lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
docker tag lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
docker tag lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
fi'''
sh "docker tag ${IMAGE}:amd64-${META_TAG} ${IMAGE}:amd64-bin"
sh "docker tag ${IMAGE}:arm32v7-${META_TAG} ${IMAGE}:arm32v7-bin"
sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ${IMAGE}:arm64v8-bin"
sh "docker push ${IMAGE}:amd64-${META_TAG}"
sh "docker push ${IMAGE}:arm32v7-${META_TAG}"
sh "docker push ${IMAGE}:arm64v8-${META_TAG}"
sh "docker push ${IMAGE}:amd64-bin"
sh "docker push ${IMAGE}:arm32v7-bin"
sh "docker push ${IMAGE}:arm64v8-bin"
sh "docker manifest push --purge ${IMAGE}:bin || :"
sh "docker manifest create ${IMAGE}:bin ${IMAGE}:amd64-bin ${IMAGE}:arm32v7-bin ${IMAGE}:arm64v8-bin"
sh "docker manifest annotate ${IMAGE}:bin ${IMAGE}:arm32v7-bin --os linux --arch arm"
sh "docker manifest annotate ${IMAGE}:bin ${IMAGE}:arm64v8-bin --os linux --arch arm64 --variant v8"
sh "docker manifest push --purge ${IMAGE}:${META_TAG} || :"
sh "docker manifest create ${IMAGE}:${META_TAG} ${IMAGE}:amd64-${META_TAG} ${IMAGE}:arm32v7-${META_TAG} ${IMAGE}:arm64v8-${META_TAG}"
sh "docker manifest annotate ${IMAGE}:${META_TAG} ${IMAGE}:arm32v7-${META_TAG} --os linux --arch arm"
sh "docker manifest annotate ${IMAGE}:${META_TAG} ${IMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8"
sh "docker manifest push --purge ${IMAGE}:bin"
sh "docker manifest push --purge ${IMAGE}:${META_TAG}"
sh '''docker rmi \
${IMAGE}:amd64-${META_TAG} \
${IMAGE}:amd64-bin \
${IMAGE}:arm32v7-${META_TAG} \
${IMAGE}:arm32v7-bin \
${IMAGE}:arm64v8-${META_TAG} \
${IMAGE}:arm64v8-bin \
fi
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}"; do
docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG}
docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG}
docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-bin
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-bin
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-bin
docker push ${MANIFESTIMAGE}:amd64-${META_TAG}
docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG}
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker push ${MANIFESTIMAGE}:amd64-bin
docker push ${MANIFESTIMAGE}:arm32v7-bin
docker push ${MANIFESTIMAGE}:arm64v8-bin
docker manifest push --purge ${MANIFESTIMAGE}:bin || :
docker manifest create ${MANIFESTIMAGE}:bin ${MANIFESTIMAGE}:amd64-bin ${MANIFESTIMAGE}:arm32v7-bin ${MANIFESTIMAGE}:arm64v8-bin
docker manifest annotate ${MANIFESTIMAGE}:bin ${MANIFESTIMAGE}:arm32v7-bin --os linux --arch arm
docker manifest annotate ${MANIFESTIMAGE}:bin ${MANIFESTIMAGE}:arm64v8-bin --os linux --arch arm64 --variant v8
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || :
docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} --os linux --arch arm
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8
docker manifest push --purge ${MANIFESTIMAGE}:bin
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
done
for LEGACYIMAGE in "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
docker tag ${IMAGE}:amd64-${META_TAG} ${LEGACYIMAGE}:amd64-${META_TAG}
docker tag ${IMAGE}:arm32v7-${META_TAG} ${LEGACYIMAGE}:arm32v7-${META_TAG}
docker tag ${IMAGE}:arm64v8-${META_TAG} ${LEGACYIMAGE}:arm64v8-${META_TAG}
docker tag ${LEGACYIMAGE}:amd64-${META_TAG} ${LEGACYIMAGE}:bin
docker tag ${LEGACYIMAGE}:amd64-${META_TAG} ${LEGACYIMAGE}:${META_TAG}
docker tag ${LEGACYIMAGE}:arm32v7-${META_TAG} ${LEGACYIMAGE}:arm32v7-bin
docker tag ${LEGACYIMAGE}:arm64v8-${META_TAG} ${LEGACYIMAGE}:arm64v8-bin
docker push ${LEGACYIMAGE}:amd64-${META_TAG}
docker push ${LEGACYIMAGE}:arm32v7-${META_TAG}
docker push ${LEGACYIMAGE}:arm64v8-${META_TAG}
docker push ${LEGACYIMAGE}:bin
docker push ${LEGACYIMAGE}:${META_TAG}
docker push ${LEGACYIMAGE}:arm32v7-bin
docker push ${LEGACYIMAGE}:arm64v8-bin
done
'''
sh '''#! /bin/bash
for DELETEIMAGE in "${QUAYIMAGE}" "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
docker rmi \
${DELETEIMAGE}:amd64-${META_TAG} \
${DELETEIMAGE}:amd64-bin \
${DELETEIMAGE}:arm32v7-${META_TAG} \
${DELETEIMAGE}:arm32v7-bin \
${DELETEIMAGE}:arm64v8-${META_TAG} \
${DELETEIMAGE}:arm64v8-bin || :
done
docker rmi \
lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \
lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :
'''
}
}
}
@ -576,16 +641,19 @@ pipeline {
sh 'echo "build aborted"'
}
else if (currentBuild.currentResult == "SUCCESS"){
sh ''' curl -X POST --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 1681177,\
sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 1681177,\
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** Success\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
}
else {
sh ''' curl -X POST --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 16711680,\
sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 16711680,\
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** failure\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
}
}
}
cleanup {
cleanWs()
}
}
}

View File

@ -3,7 +3,7 @@
# jenkins variables
project_name: docker-ffmpeg
external_type: na
custom_version_command: "echo 4.2.1"
custom_version_command: "echo 4.2.2"
release_type: prerelease
release_tag: bin
ls_branch: bin