mirror of
https://gitlab.freedesktop.org/dabrain34/GstPipelineStudio.git
synced 2025-04-15 12:24:13 +00:00
win: update docker image
The docker image is now build with an argument coming the images_templates.yml move gst and gtk to job Remove the build of gstreamer and gtk and build it during the job as macos job. Use gstreamer 1.26
This commit is contained in:
parent
f509db3f82
commit
38ae5b92af
8 changed files with 38 additions and 133 deletions
|
@ -12,10 +12,13 @@ stages:
|
|||
- deploy
|
||||
|
||||
variables:
|
||||
WINDOWS_AMD64_SUFFIX: "amd64/windows"
|
||||
CI_GST_REGISTRY_IMAGE: "registry.freedesktop.org/gstreamer/gstreamer"
|
||||
GST_WINDOWS_IMAGE: "$CI_GST_REGISTRY_IMAGE/$WINDOWS_AMD64_SUFFIX:$GST_WIN_IMG_TAG-$GST_UPSTREAM_BRANCH"
|
||||
FDO_UPSTREAM_REPO: "dabrain34/GstPipelineStudio"
|
||||
GNOME_RUNTIME_IMAGE: "quay.io/gnome_infrastructure/gnome-runtime-images:gnome-master"
|
||||
WINDOWS_RUST_STABLE_IMAGE: "$CI_REGISTRY_IMAGE/windows:$GST_RS_WIN_IMG_TAG"
|
||||
WINDOWS_RUST_STABLE_UPSTREAM_IMAGE: "$CI_REGISTRY/$FDO_UPSTREAM_REPO/windows:$GST_RS_WIN_IMG_TAG"
|
||||
GPS_WINDOWS_RUST_STABLE_IMAGE: "$CI_REGISTRY_IMAGE/windows:$GPS_RS_WIN_IMG_TAG"
|
||||
GPS_WINDOWS_RUST_STABLE_UPSTREAM_IMAGE: "$CI_REGISTRY/$FDO_UPSTREAM_REPO/windows:$GPS_RS_WIN_IMG_TAG"
|
||||
|
||||
# Version and tag for our current container
|
||||
.fedora:
|
||||
|
@ -73,14 +76,14 @@ build-fedora-container:
|
|||
# We also don't need a CONTEXT_DIR var as its also
|
||||
# hardcoded to be windows-docker/
|
||||
DOCKERFILE: "ci/windows-docker/Dockerfile"
|
||||
GST_UPSTREAM_BRANCH: "1.22"
|
||||
|
||||
tags:
|
||||
- "windows"
|
||||
- "shell"
|
||||
- "2022"
|
||||
script:
|
||||
# We need to pass an array and to resolve the env vars, so we can't use a variable:
|
||||
- $DOCKER_BUILD_ARGS = @("--build-arg", "DEFAULT_GST_BRANCH=$GST_UPSTREAM_BRANCH", "--build-arg", "RUST_VERSION=$RUST_VERSION")
|
||||
- $DOCKER_BUILD_ARGS = @("--build-arg", "RUST_VERSION=$GST_RS_STABLE", "--build-arg", "GST_WINDOWS_IMAGE=$GST_WINDOWS_IMAGE")
|
||||
- "& ci/windows-docker/container.ps1 $CI_REGISTRY $CI_REGISTRY_USER $CI_REGISTRY_PASSWORD $RUST_IMAGE $RUST_UPSTREAM_IMAGE $DOCKERFILE"
|
||||
- |
|
||||
if (!($?)) {
|
||||
|
@ -91,9 +94,8 @@ build-fedora-container:
|
|||
windows rust docker stable:
|
||||
extends: ".windows rust docker build"
|
||||
variables:
|
||||
RUST_IMAGE: $WINDOWS_RUST_STABLE_IMAGE
|
||||
RUST_UPSTREAM_IMAGE: $WINDOWS_RUST_STABLE_UPSTREAM_IMAGE"]
|
||||
RUST_VERSION: $GST_RS_STABLE
|
||||
RUST_IMAGE: $GPS_WINDOWS_RUST_STABLE_IMAGE
|
||||
RUST_UPSTREAM_IMAGE: $GPS_WINDOWS_RUST_STABLE_UPSTREAM_IMAGE"]
|
||||
|
||||
.msvc2019 build:
|
||||
stage: test
|
||||
|
@ -106,7 +108,7 @@ windows installer stable:
|
|||
needs:
|
||||
- job: "windows rust docker stable"
|
||||
artifacts: false
|
||||
image: "$WINDOWS_RUST_STABLE_IMAGE"
|
||||
image: "$GPS_WINDOWS_RUST_STABLE_IMAGE"
|
||||
extends: ".msvc2019 build"
|
||||
script:
|
||||
- rustc --version
|
||||
|
|
|
@ -1,6 +1,27 @@
|
|||
$env:MESON_ARGS = "--prefix=C:\gst-install\ -Dbuildtype=release"
|
||||
|
||||
$env:MESON_ARGS = "-Dforce_fallback_for=gstreamer-1.0,glib,libffi,pcre2,gtk " +
|
||||
"-Dgstreamer-1.0:libav=disabled " +
|
||||
"-Dgstreamer-1.0:examples=disabled " +
|
||||
"-Dgstreamer-1.0:introspection=disabled " +
|
||||
"-Dgstreamer-1.0:rtsp_server=disabled " +
|
||||
"-Dgstreamer-1.0:devtools=disabled " +
|
||||
"-Dgstreamer-1.0:ges=disabled " +
|
||||
"-Dgstreamer-1.0:tests=disabled " +
|
||||
"-Dgstreamer-1.0:python=disabled " +
|
||||
"-Dgst-plugins-base:tests=disabled " +
|
||||
"-Dgst-plugins-bad:openexr=disabled " +
|
||||
"-Dgstreamer-1.0:gst-examples=disabled " +
|
||||
"-Dorc:gtk_doc=disabled " +
|
||||
"-Dgtk:introspection=disabled " +
|
||||
"-Dgtk:build-examples=false " +
|
||||
"-Dgtk:build-tests=false " +
|
||||
"-Dgtk:media-gstreamer=disabled " +
|
||||
"-Djson-glib:introspection=disabled" +
|
||||
"--prefix=C:\gst-install\"
|
||||
|
||||
cmd.exe /C "C:\BuildTools\Common7\Tools\VsDevCmd.bat -host_arch=amd64 -arch=amd64 && meson _build $env:MESON_ARGS && meson compile -C _build && ninja -C _build install"
|
||||
if (!$?) {
|
||||
Write-Host "Failed to build and install GstPipelineStudio"
|
||||
Exit 1
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
variables:
|
||||
GST_RS_WIN_IMG_TAG: "2025-03-13.0"
|
||||
GST_UPSTREAM_BRANCH: "main"
|
||||
GST_WIN_IMG_TAG: "2025-02-23.0"
|
||||
GPS_RS_WIN_IMG_TAG: "2025-04-01.1"
|
||||
GST_RS_FDO_IMG_TAG: "2025-01-13.0"
|
||||
GST_RS_STABLE: "1.85.0"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# escape=`
|
||||
|
||||
FROM "registry.freedesktop.org/gstreamer/gstreamer/amd64/windows:2023-08-24.0-main"
|
||||
ARG GST_WINDOWS_IMAGE="registry.freedesktop.org/gstreamer/gstreamer/amd64/windows:2023-08-24.0-main"
|
||||
FROM ${GST_WINDOWS_IMAGE}
|
||||
|
||||
# Make sure any failure in PowerShell is fatal
|
||||
ENV ErrorActionPreference='Stop'
|
||||
|
@ -16,10 +16,6 @@ RUN choco install -y pkgconfiglite nasm llvm
|
|||
RUN setx PATH '%PATH%;C:\Program Files\NASM;C:\gst-install\bin;c:\Program Files\gettext-iconv\bin'
|
||||
ENV PKG_CONFIG_PATH="C:\gst-install\lib\pkgconfig"
|
||||
|
||||
COPY install_gst.ps1 install_gtk.ps1 C:\
|
||||
RUN C:\install_gst.ps1
|
||||
RUN C:\install_gtk.ps1
|
||||
|
||||
RUN Invoke-WebRequest -Uri https://win.rustup.rs/x86_64 -OutFile C:\rustup-init.exe
|
||||
RUN C:\rustup-init.exe -y --profile minimal --default-toolchain $env:RUST_VERSION
|
||||
|
||||
|
|
|
@ -1,62 +0,0 @@
|
|||
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12;
|
||||
|
||||
# Download gstreamer and all its subprojects
|
||||
git clone -b $env:DEFAULT_GST_BRANCH --depth 1 https://gitlab.freedesktop.org/gstreamer/gstreamer.git C:\gstreamer
|
||||
if (!$?) {
|
||||
Write-Host "Failed to clone gstreamer"
|
||||
Exit 1
|
||||
}
|
||||
|
||||
Set-Location C:\gstreamer
|
||||
|
||||
# Copy the cache we already have in the image to avoid massive redownloads
|
||||
Move-Item C:/subprojects/* C:\gstreamer\subprojects
|
||||
|
||||
if (!$?) {
|
||||
Write-Host "Failed to copy subprojects cache"
|
||||
Exit 1
|
||||
}
|
||||
|
||||
# Update the subprojects cache
|
||||
Write-Output "Running meson subproject reset"
|
||||
meson subprojects update --reset
|
||||
|
||||
if (!$?) {
|
||||
Write-Host "Failed to reset subprojects state"
|
||||
Exit 1
|
||||
}
|
||||
|
||||
$env:MESON_ARGS = "--prefix=C:\gst-install\ -Dbuildtype=release " +
|
||||
"-Dglib:installed_tests=false " +
|
||||
"-Dlibnice:tests=disabled " +
|
||||
"-Dlibnice:examples=disabled " +
|
||||
"-Dffmpeg:tests=disabled " +
|
||||
"-Dopenh264:tests=disabled " +
|
||||
"-Dpygobject:tests=false " +
|
||||
"-Dugly=enabled " +
|
||||
"-Dbad=enabled " +
|
||||
"-Dges=enabled " +
|
||||
"-Drtsp_server=enabled " +
|
||||
"-Ddevtools=enabled " +
|
||||
"-Dsharp=disabled " +
|
||||
"-Dpython=disabled " +
|
||||
"-Dlibav=disabled " +
|
||||
"-Dvaapi=disabled " +
|
||||
"-Dgst-plugins-base:pango=enabled " +
|
||||
"-Dgst-plugins-good:cairo=enabled " +
|
||||
"-Dgpl=enabled "
|
||||
|
||||
Write-Output "Building gst"
|
||||
cmd.exe /C "C:\BuildTools\Common7\Tools\VsDevCmd.bat -host_arch=amd64 -arch=amd64 && meson _build $env:MESON_ARGS && meson compile -C _build && ninja -C _build install"
|
||||
|
||||
if (!$?) {
|
||||
Write-Host "Failed to build and install gst"
|
||||
Exit 1
|
||||
}
|
||||
|
||||
cd C:\
|
||||
cmd /c rmdir /s /q C:\gstreamer
|
||||
if (!$?) {
|
||||
Write-Host "Failed to remove gst checkout"
|
||||
Exit 1
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12;
|
||||
|
||||
$env:MESON_ARGS = "--prefix=C:\gst-install\ -Dbuildtype=release"
|
||||
|
||||
# Download gtk and all its subprojects
|
||||
git clone -b $env:DEFAULT_GTK_BRANCH --depth 1 https://gitlab.gnome.org/gnome/gtk.git C:\gtk
|
||||
if (!$?) {
|
||||
Write-Host "Failed to clone gtk"
|
||||
Exit 1
|
||||
}
|
||||
|
||||
Set-Location C:\gtk
|
||||
|
||||
Write-Output "Building gtk"
|
||||
cmd.exe /C "C:\BuildTools\Common7\Tools\VsDevCmd.bat -host_arch=amd64 -arch=amd64 && meson _build $env:MESON_ARGS && meson compile -C _build && ninja -C _build install"
|
||||
|
||||
if (!$?) {
|
||||
Write-Host "Failed to build and install gtk"
|
||||
Exit 1
|
||||
}
|
||||
|
||||
cd C:\
|
||||
cmd /c rmdir /s /q C:\gtk
|
||||
if (!$?) {
|
||||
Write-Host "Failed to remove gtk checkout"
|
||||
Exit 1
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12;
|
||||
|
||||
$env:MESON_ARGS = "--prefix=C:\gst-install\ --wrap-mode=forcefallback"
|
||||
|
||||
# Download pango all its subprojects
|
||||
git clone -b $env:DEFAULT_PANGO_BRANCH --depth 1 https://gitlab.gnome.org/gnome/pango.git C:\pango
|
||||
if (!$?) {
|
||||
Write-Host "Failed to clone pango"
|
||||
Exit 1
|
||||
}
|
||||
|
||||
Set-Location C:\pango
|
||||
|
||||
Write-Output "Building pango"
|
||||
cmd.exe /C "C:\BuildTools\Common7\Tools\VsDevCmd.bat -host_arch=amd64 -arch=amd64 && meson _build $env:MESON_ARGS && meson compile -C _build && ninja -C _build install"
|
||||
|
||||
if (!$?) {
|
||||
Write-Host "Failed to build and install pango"
|
||||
Exit 1
|
||||
}
|
||||
|
||||
cd C:\
|
||||
cmd /c rmdir /s /q C:\pango
|
||||
if (!$?) {
|
||||
Write-Host "Failed to remove gtk checkout"
|
||||
Exit 1
|
||||
}
|
|
@ -2,7 +2,7 @@
|
|||
directory=gstreamer-1.0
|
||||
url=https://gitlab.freedesktop.org/gstreamer/gstreamer.git
|
||||
push-url=git@gitlab.freedesktop.org:gstreamer/gstreamer.git
|
||||
revision=1.24
|
||||
revision=1.26
|
||||
|
||||
[provide]
|
||||
dependency_names = gstreamer-1.0, gstreamer-base-1.0, gstreamer-sys-1.0, gstreamer-plugins-bad-1.0, gstreamer-video-1.0, gstreamer-player-1.0 gstreamer-gl-1.0
|
||||
|
|
Loading…
Reference in a new issue