mirror of
https://github.com/linuxserver/docker-ffmpeg.git
synced 2026-02-20 04:56:23 +08:00
bumping to ffmpeg 4.2.2
This commit is contained in:
parent
8699857217
commit
17a76d12fe
34
.github/ISSUE_TEMPLATE.md
vendored
Normal file
34
.github/ISSUE_TEMPLATE.md
vendored
Normal file
@ -0,0 +1,34 @@
|
||||
[linuxserverurl]: https://linuxserver.io
|
||||
[][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
39
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
@ -0,0 +1,39 @@
|
||||
<!--- Provide a general summary of your changes in the Title above -->
|
||||
|
||||
[linuxserverurl]: https://linuxserver.io
|
||||
[][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 PR’s though this doesn’t 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 -->
|
||||
36
Dockerfile
36
Dockerfile
@ -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 ****" && \
|
||||
|
||||
@ -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 ****" && \
|
||||
|
||||
@ -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
220
Jenkinsfile
vendored
@ -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()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user