Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  gitlab-ci.yml  Sprache: unbekannt

 
Spracherkennung für: .yml vermutete Sprache: MT940 {MT940[47] ABAP[12] Masm[12]} [Methode: maximale Elemente, drei Dimensionen]

stages:
    - build

default:
    before_script:
        - set -x
        - export VLC_CONTRIB_SHA="$(extras/ci/get-contrib-sha.sh ${CI_JOB_GROUP_NAME##nightly-})"
        - export VLC_PREBUILT_CONTRIBS_URL="https://artifacts.videolan.org/vlc/${CI_JOB_GROUP_NAME##nightly-}/vlc-contrib-${TRIPLET}-${VLC_CONTRIB_SHA}.tar.zst"
        - if ! extras/ci/check-url.sh "$VLC_PREBUILT_CONTRIBS_URL"; then unset VLC_PREBUILT_CONTRIBS_URL; fi
        - export BUILD_NIGHTLY="$(extras/ci/is-installer-needed.sh ${CI_JOB_GROUP_NAME})"
    after_script:
        - export VLC_CONTRIB_SHA="$(extras/ci/get-contrib-sha.sh ${CI_JOB_GROUP_NAME##nightly-})"
        - mv contrib/vlc-contrib-*.tar.zst contrib/vlc-contrib-${TRIPLET}-${VLC_CONTRIB_SHA}.tar.zst 2>/dev/null || true
        - cd contrib && find . -maxdepth 1 -type f -name "vlc-contrib-*-${VLC_CONTRIB_SHA}.tar.zst" -exec sh -c 'tar tf "$0" > /dev/null && shasum -a 512 "$0" | tee SHA512SUM' "{}" \;
    interruptible: true
    # Most jobs use docker, so we can default to those tags.
    # macOS base template will overwrite this
    tags:
        - docker
        - amd64

variables:
    VLC_TEST_TIMEOUT: 60
    FF_DISABLE_UMASK_FOR_DOCKER_EXECUTOR: "true"
    VLC_WIN64_IMAGE: registry.videolan.org/vlc-debian-win64-posix:20260611225331
    VLC_WIN_LLVM_MSVCRT_IMAGE: registry.videolan.org/vlc-debian-llvm-msvcrt:20260611225331
    VLC_WIN_LLVM_UCRT_IMAGE: registry.videolan.org/vlc-debian-llvm-ucrt:20260611225331
    VLC_DEBIAN_IMAGE: registry.videolan.org/vlc-debian-unstable:20260611225331
    VLC_ANDROID_IMAGE: registry.videolan.org/vlc-debian-android:20260611225331
    VLC_SNAP_IMAGE: registry.videolan.org/vlc-ubuntu-snap:20260715210239
    VLC_UBUNTU_RASPBERRY_IMAGE: registry.videolan.org/vlc-ubuntu-raspberry:20260820132854
    VLC_WASM_EMSCRIPTEN: registry.videolan.org/vlc-debian-wasm-emscripten:20260617104340

.variables-debian: &variables-debian
        HOST_ARCH: x86_64
        TRIPLET: $HOST_ARCH-linux-gnu

.variables-snap: &variables-snap
        HOST_ARCH: x86_64
        TRIPLET: $HOST_ARCH-linux-gnu

.variables-raspbian-arm: &variables-raspbian-arm
        HOST_ARCH: arm
        TRIPLET: $HOST_ARCH-linux-gnueabihf

.variables-win32: &variables-win32
        SHORTARCH: win32
        VLCARCH: win32
        HOST_ARCH: i686
        TRIPLET: $HOST_ARCH-w64-mingw32

.variables-win64: &variables-win64
        SHORTARCH: win64
        VLCARCH: win64
        HOST_ARCH: x86_64
        TRIPLET: $HOST_ARCH-w64-mingw32

.variables-win64-arm: &variables-win64-arm
        SHORTARCH: arm64
        VLCARCH: winarm64
        HOST_ARCH: aarch64
        TRIPLET: $HOST_ARCH-w64-mingw32

.variables-macos-x86_64: &variables-macos-x86_64
        VLC_PATH: /Users/videolanci/sandbox/bin
        VLC_FORCE_KERNELVERSION: 19
        SHORTARCH: intel64
        HOST_ARCH: x86_64
        TRIPLET: $HOST_ARCH-apple-darwin$VLC_FORCE_KERNELVERSION

.variables-macos-arm64: &variables-macos-arm64
        VLC_PATH: /Users/videolanci/sandbox/bin
        VLC_FORCE_KERNELVERSION: 19
        SHORTARCH: arm64
        HOST_ARCH: aarch64
        TRIPLET: $HOST_ARCH-apple-darwin$VLC_FORCE_KERNELVERSION

.variables-ios-arm64: &variables-ios-arm64
        VLC_PATH: /Users/videolanci/sandbox/bin
        HOST_ARCH: arm64
        TRIPLET: $HOST_ARCH-apple-iphoneos
        SDKNAME: iphoneos

.variables-ios-armv7: &variables-ios-armv7
        VLC_PATH: /Users/videolanci/sandbox/bin
        HOST_ARCH: armv7
        TRIPLET: $HOST_ARCH-apple-iphoneos
        SDKNAME: iphoneos

.variables-ios-simulator-x86_64: &variables-ios-simulator-x86_64
        VLC_PATH: /Users/videolanci/sandbox/bin
        HOST_ARCH: x86_64
        TRIPLET: $HOST_ARCH-apple-iphonesimulator
        SDKNAME: iphonesimulator

.variables-tvos-arm64: &variables-tvos-arm64
        VLC_PATH: /Users/videolanci/sandbox/bin
        HOST_ARCH: arm64
        TRIPLET: $HOST_ARCH-apple-appletvos
        SDKNAME: appletvos

.variables-watchos-arm64_32: &variables-watchos-arm64_32
        VLC_PATH: /Users/videolanci/sandbox/bin
        HOST_ARCH: arm64_32
        TRIPLET: $HOST_ARCH-apple-watchos
        SDKNAME: watchos

.variables-xros-arm64: &variables-xros-arm64
        VLC_PATH: /Users/videolanci/sandbox/bin
        HOST_ARCH: arm64
        TRIPLET: $HOST_ARCH-apple-xros
        SDKNAME: xros

.variables-android-arm: &variables-android-arm
        ANDROID_ARCH: arm
        TRIPLET: arm-linux-androideabi

.variables-android-arm64: &variables-android-arm64
        ANDROID_ARCH: arm64
        TRIPLET: aarch64-linux-android

.variables-android-x86: &variables-android-x86
        ANDROID_ARCH: x86
        TRIPLET: i686-linux-android

.variables-android-x86_64: &variables-android-x86_64
        ANDROID_ARCH: x86_64
        TRIPLET: x86_64-linux-android

.variables-emscripten-wasm32: &variables-emscripten-wasm32
        HOST_ARCH: wasm32
        TRIPLET: $HOST_ARCH-unknown-emscripten

# Common rules
.base-template:
    stage: build
    rules:
        - if: '$CI_MERGE_REQUEST_DRAFT == "true"'
          when: manual
        - if: $CI_MERGE_REQUEST_IID
        - if: '$CI_PIPELINE_SOURCE == "push" && $CI_PROJECT_PATH == "videolan/vlc"'
    artifacts:
        paths:
            - contrib/vlc-contrib-${TRIPLET}-*.tar.zst
            - contrib/SHA512SUM

#
# Windows
#
.win-common:
    extends: .base-template
    script: |
        if [ -n "$BUILD_NIGHTLY" ]; then
            EXTRA_BUILD_FLAGS="-i n -l"
        fi
        if [ -n "$VLC_PREBUILT_CONTRIBS_URL" ]; then
            echo "Building using prebuilt contribs at $VLC_PREBUILT_CONTRIBS_URL"
            EXTRA_BUILD_FLAGS="${EXTRA_BUILD_FLAGS} -p"
        fi
        if [ "${CI_COMMIT_BRANCH}" = "${CI_DEFAULT_BRANCH}" -a "${CI_PROJECT_PATH}" = "videolan/vlc" ]; then
            EXTRA_BUILD_FLAGS="${EXTRA_BUILD_FLAGS} -c"
        fi
        extras/package/win32/build.sh -a $HOST_ARCH $EXTRA_BUILD_FLAGS $LIBVLC_EXTRA_BUILD_FLAGS $UWP_EXTRA_BUILD_FLAGS
        if [ "${CI_JOB_GROUP_NAME}" = "win64" ]; then
          cmake -DLIBVLC_SDK_INC:STRING="${CI_PROJECT_DIR}/include;${CI_PROJECT_DIR}/${VLCARCH}/include" -DLIBVLC_SDK_LIB:STRING=${CI_PROJECT_DIR}/${VLCARCH}/lib/.libs -H${CI_PROJECT_DIR}/doc/libvlc -B${CI_PROJECT_DIR}/doc/libvlc/build \
                -G Ninja -DCMAKE_C_COMPILER=${TRIPLET}-gcc -DCMAKE_CXX_COMPILER=${TRIPLET}-g++ -DCMAKE_SYSTEM_NAME=Windows
          cmake --build ${CI_PROJECT_DIR}/doc/libvlc/build
        fi

win32-llvm:
    extends: .win-common
    image:
        name: $VLC_WIN_LLVM_MSVCRT_IMAGE
    variables:
        <<: *variables-win32
        LIBVLC_EXTRA_BUILD_FLAGS: -x
        UWP_EXTRA_BUILD_FLAGS: -m

win64:
    extends: .win-common
    image:
        name: $VLC_WIN64_IMAGE
    variables:
        <<: *variables-win64
        LIBVLC_EXTRA_BUILD_FLAGS: -x

win64-arm-llvm:
    extends: .win-common
    image:
        name: $VLC_WIN_LLVM_UCRT_IMAGE
    variables:
        <<: *variables-win64-arm
        VLCARCH: winarm64-ucrt
        UWP_EXTRA_BUILD_FLAGS: -u -x -S 0x0A000006

uwp32-libvlc-llvm:
    extends: .win-common
    image:
        name: $VLC_WIN_LLVM_UCRT_IMAGE
    variables:
        <<: *variables-win32
        VLCARCH: win64-uwp
        LIBVLC_EXTRA_BUILD_FLAGS: -z
        UWP_EXTRA_BUILD_FLAGS: -u -w -x -S 0x0A000007 -m
    allow_failure: true

.nightly-win-common:
    extends: .win-common
    rules:
        - if: '$CI_PIPELINE_SOURCE == "schedule"'
    after_script:
        - mkdir nightlies
        - for ext in 7z;  do mv ${VLCARCH}/vlc-*-dev-*-debug.${ext} nightlies/$(basename ${VLCARCH}/vlc-*-dev-*-debug.${ext} | sed "s/\.${ext}/-${CI_COMMIT_SHORT_SHA}\.${ext}/") || echo "vlc-*debug.${ext} not found!"; done
        - for ext in exe msi 7z zip; do mv ${VLCARCH}/vlc-*-dev-*.${ext} nightlies/$(basename ${VLCARCH}/vlc-*-dev-*.${ext} | sed "s/\.${ext}/-${CI_COMMIT_SHORT_SHA}\.${ext}/") || echo "vlc-*.${ext} not found!"; done
        - cd nightlies && find . -maxdepth 1 -type f -not -name SHA512SUM | xargs shasum -a 512 | tee SHA512SUM
    interruptible: false
    artifacts:
        paths:
            - nightlies/*

nightly-win32-llvm:
    extends: .nightly-win-common
    image:
        name: $VLC_WIN_LLVM_MSVCRT_IMAGE
    variables:
        <<: *variables-win32
        LIBVLC_EXTRA_BUILD_FLAGS: -D / -t

nightly-win64:
    extends: .nightly-win-common
    image:
        name: $VLC_WIN64_IMAGE
    variables: *variables-win64

nightly-win64-llvm:
    extends: .nightly-win-common
    image:
        name: $VLC_WIN_LLVM_MSVCRT_IMAGE
    variables:
        <<: *variables-win64
        LIBVLC_EXTRA_BUILD_FLAGS: -D / -t

nightly-win64-llvm-meson:
    extends: .nightly-win-common
    image:
        name: $VLC_WIN_LLVM_MSVCRT_IMAGE
    variables:
        <<: *variables-win64
        VLCARCH: win64-meson
        LIBVLC_EXTRA_BUILD_FLAGS: -D / -m -t

nightly-win64-arm-llvm:
    extends: .nightly-win-common
    image:
        name: $VLC_WIN_LLVM_UCRT_IMAGE
    variables:
        <<: *variables-win64-arm
        VLCARCH: winarm64-ucrt
        TRIPLET: $HOST_ARCH-ucrt-w64-mingw32
        LIBVLC_EXTRA_BUILD_FLAGS: -D / -t
        UWP_EXTRA_BUILD_FLAGS: -u -x -S 0x0A000006

#
# Debian
#
debian-contrib:
    extends: .base-template
    when: manual # disabled
    image:
        name: $VLC_DEBIAN_IMAGE
    rules:
      - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
        changes:
            # should match get-contrib-sha.sh
            - contrib/**/*
            - contrib/*
            - extras/tools/*
            - extras/ci/*
    script: |
        export NCPU=$(getconf _NPROCESSORS_ONLN)
        echo "Building branch '${CI_COMMIT_BRANCH}' (default: '${CI_DEFAULT_BRANCH}')"

        # Build tools
        ( cd extras/tools && ./bootstrap && make -j$NCPU --output-sync=recurse )
        export PATH="$(pwd)/extras/tools/build/bin:$PATH"

        # don't use system packages
        export PKG_CONFIG_LIBDIR=""
        export PKG_CONFIG_PATH=""

        # Build contribs
        mkdir -p contrib/contrib-$TRIPLET && cd contrib/contrib-$TRIPLET
        # x262 is not built by default
        # libplacebo needs vulkan-loader which needs the x11 system package
        ../bootstrap --enable-x262 --disable-libplacebo
        make list
        make -j$NCPU --output-sync=recurse
        cd ../..

        # Build VLC
        # Qt is not build in contribs so don't build the code either
        ./bootstrap
        ./configure --disable-nls --disable-qt --disable-skins2 --enable-extra-checks
        make -j$NCPU

    allow_failure: true
    variables:
        <<: *variables-debian

debian:
    extends: .base-template
    image:
        name: $VLC_DEBIAN_IMAGE
    script: |
        export NCPU=$(getconf _NPROCESSORS_ONLN)
        echo "Building branch '${CI_COMMIT_BRANCH}' (default: '${CI_DEFAULT_BRANCH}')"

        # Configure VLC
        ./bootstrap
        ./configure

        # Allow core dumps for tracing test failures
        ulimit -c unlimited

        # Build, check and distcheck VLC
        export XZ_OPT="-T 0"
        make -j$NCPU distcheck AM_DISTCHECK_CONFIGURE_FLAGS="--enable-fast-install --enable-extra-checks" || ./test/dump_stacktraces.sh
    variables:
        <<: *variables-debian

#
# Linux Meson build
#
debian-meson:
    extends: .base-template
    coverage: '/^coverage result: (\d+.\d+)$/'
    image:
        name: $VLC_DEBIAN_IMAGE
    script:
        - |
            export NCPU=$(getconf _NPROCESSORS_ONLN)
            echo "Building branch '${CI_COMMIT_BRANCH}' (default: '${CI_DEFAULT_BRANCH}')"
        - |
            echo -e "\e[0Ksection_start:$(date +%s):build_tools_section\r\e[0KTools build"
            # Build tools
            ( cd extras/tools && ./bootstrap && make -j$NCPU --output-sync=recurse )
            export PATH="$(pwd)/extras/tools/build/bin:$PATH"
            echo -e "\e[0Ksection_end:$(date +%s):build_tools_section\r\e[0K"
        - |
            echo -e "\e[0Ksection_start:$(date +%s):setup_meson_section\r\e[0KMeson setup"
            # Setup meson build dir
            meson setup -Db_coverage=true -Dextra_checks=true build-meson --errorlogs || (echo "ERROR: Meson setup failed!" >&2 ; cat build-meson/meson-logs/meson-log.txt >&2 ; exit 1)
            echo -e "\e[0Ksection_end:$(date +%s):setup_meson_section\r\e[0K"

        - |
            echo -e "\e[0Ksection_start:$(date +%s):build_meson_section\r\e[0KVLC build"
            # Build VLC
            ninja -C build-meson || (echo "ERROR: Build failed!" >&2 ; exit 2)
            echo -e "\e[0Ksection_end:$(date +%s):build_meson_section\r\e[0K"

        - |
            echo -e "\e[0Ksection_start:$(date +%s):tests_meson_section\r\e[0KVLC tests"
            # Run tests
            meson test -C build-meson --print-errorlogs --max-lines 1000 \
                --timeout-multiplier $((VLC_TEST_TIMEOUT / 30 + 1)) \
                --wrapper "gdb -nx -batch -return-child-result \
                    -iex 'set debuginfod enabled off' \
                    -iex 'handle SIGALRM stop print' \
                    -ex run -ex 'thread apply all bt' --args" \
                || (echo "ERROR: Tests failed!" >&2 ; exit 3)
            echo -e "\e[0Ksection_end:$(date +%s):tests_meson_section\r\e[0K"

        - |
            # We split in two different commands to handle the case where
            # the coverage will be generated on different jobs later.
            # Note: qt generated files need to be remove from the report since their
            # coverage should not be checked. It leads to gcovr having trouble
            # parsing the coverage otherwise.
            gcovr -r "${CI_PROJECT_DIR}/" --json "${CI_PROJECT_DIR}/${CI_JOB_NAME}.cov.json" -j$NCPU --merge-mode-functions=separate --gcov-ignore-parse-errors=negative_hits.warn_once_per_file --exclude "build-meson/modules/gui/qt/.*_qrc.cpp" --exclude "build-meson/modules/gui/qt/.*_assets.cpp"

        - mkdir html-coverage
        - >
            gcovr --add-tracefile "${CI_PROJECT_DIR}/${CI_JOB_NAME}.cov.json"
            --merge-mode-functions=separate
            --xml="cobertura.xml"
            --html="html-coverage/vlc.html"
            --html-details -s -j$NCPU
        - |
            # Ensure that sources are reported from CI_PROJECT_DIR directory so
            # that gitlab can associate the files correctly.
            sed -i 's,<source>.*</source>,<source>'"${CI_PROJECT_DIR}"'</source>,' cobertura.xml
        # Expose the line coverage percentage to gitlab from the cobertura XML.
        - >
            grep -Eo 'line-rate="[^"]+"' cobertura.xml | head -n 1 |
            grep -Eo '[0-9.]+' | awk '{ print "coverage result:", $1 * 100 } ' ||
            true
    allow_failure: true
    variables: *variables-debian
    artifacts:
        reports:
            junit: build-meson/meson-logs/testlog-gdb.junit.xml
            coverage_report:
                coverage_format: cobertura
                path: cobertura.xml
        paths:
            - ${CI_PROJECT_DIR}/${CI_JOB_NAME}.cov.json
            - cobertura.xml
            - html-coverage/
            - ${CI_PROJECT_DIR}/build-meson/meson-logs/testlog-gdb.junit.xml

#
# Snap builds
#
.snap-common:
    extends: .base-template
    image:
        name: $VLC_SNAP_IMAGE
        entrypoint: [""]
    script:
        - git config --global --add safe.directory ${CI_PROJECT_DIR}/.git
        # snapcraft need to have an up to date apt cache to be able to download its dependencies
        - apt update
        - extras/package/snap/build.sh -p
    allow_failure: true
    variables: *variables-snap

snap:
  extends: .snap-common
  when: manual # disabled
  rules:
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
      changes:
        - extras/package/snap/*

nightly-snap:
    extends: .snap-common
    rules:
        - if: '$CI_PIPELINE_SOURCE == "schedule"'
    after_script:
        - if [ "$CI_PROJECT_NAMESPACE" = "videolan" ]; then /bin/true; else exit 0; fi
        - mkdir nightlies
        - mv vlc_*.snap nightlies/
        - snapcraft upload --release edge nightlies/vlc_*.snap
        - cd nightlies && find . -maxdepth 1 -type f -not -name SHA512SUM | xargs shasum -a 512 | tee SHA512SUM
    interruptible: false
    artifacts:
        paths:
           - nightlies/*

#
# Raspbian
#
raspbian-arm:
    extends: .base-template
    image:
        name: $VLC_UBUNTU_RASPBERRY_IMAGE
    script: |
        if [ -n "$VLC_PREBUILT_CONTRIBS_URL" ]; then
            echo "Building using prebuilt contribs at $VLC_PREBUILT_CONTRIBS_URL"
            EXTRA_BUILD_FLAGS="${EXTRA_BUILD_FLAGS} -p"
        fi
        if [ "${CI_COMMIT_BRANCH}" = "${CI_DEFAULT_BRANCH}" -a "${CI_PROJECT_PATH}" = "videolan/vlc" ]; then
            EXTRA_BUILD_FLAGS="${EXTRA_BUILD_FLAGS} -c"
        fi
        extras/package/raspberry/build.sh $EXTRA_BUILD_FLAGS -x -a $HOST_ARCH
    variables: *variables-raspbian-arm

#
# macOS
#
.ccache-common-apple:
  variables:
    CCACHE_BASEDIR: ${CI_PROJECT_DIR}
    CCACHE_DIR: ${CI_PROJECT_DIR}/ccache
    CCACHE_COMPILERCHECK: content
    CCACHE_CPP2: 'true'
    VLC_CCACHE_BINS_PATH: '/Users/videolanci/sandbox/bin/ccache/bin'
  before_script:
    - !reference [default, before_script]
    - |
      if [ -x "${VLC_CCACHE_BINS_PATH}/ccache" ]; then
        ${VLC_CCACHE_BINS_PATH}/ccache --zero-stats
        ${VLC_CCACHE_BINS_PATH}/ccache --show-stats
      else
        echo "No ccache present, disabling caching"
        unset VLC_CCACHE_BINS_PATH
      fi
  after_script:
    - !reference [default, after_script]
    - |
      if [ -x "${VLC_CCACHE_BINS_PATH}/ccache" ]; then
        ${VLC_CCACHE_BINS_PATH}/ccache --show-stats
      fi
  cache:
    key: ${CI_JOB_NAME}
    paths:
      - ccache

.macos-common:
    extends:
        - .base-template
        - .ccache-common-apple
    script: |
        export NCPU=$(getconf NPROCESSORS_ONLN)
        if [ -n "$BUILD_NIGHTLY" ]; then
            NIGHTLY_EXTRA_BUILD_FLAGS="-i n"
        else
            EXTRA_BUILD_FLAGS="-i z"
        fi
        if [ -n "$VLC_PREBUILT_CONTRIBS_URL" ]; then
            echo "Building using prebuilt contribs at $VLC_PREBUILT_CONTRIBS_URL"
        else
            EXTRA_BUILD_FLAGS="${EXTRA_BUILD_FLAGS} -c"
        fi
        if [ "${CI_COMMIT_BRANCH}" = "${CI_DEFAULT_BRANCH}" -a "${CI_PROJECT_PATH}" = "videolan/vlc" ]; then
            EXTRA_BUILD_FLAGS="${EXTRA_BUILD_FLAGS} -p"
        fi
        export PATH="${VLC_PATH}:$PATH"
        ./extras/package/macosx/build.sh $EXTRA_BUILD_FLAGS $NIGHTLY_EXTRA_BUILD_FLAGS -a $HOST_ARCH -x -j $NCPU
        # At least compile every targets
        make -j $NCPU check TESTS=
        make -C modules -j $NCPU check-macosx
    after_script:
      - export PATH="${CI_PROJECT_DIR}/extras/tools/build/bin:$PATH"
      - !reference [.ccache-common-apple, after_script]

macos-x86_64:
    extends: .macos-common
    tags:
        - monterey
    variables: *variables-macos-x86_64

macos-arm64:
    extends: .macos-common
    tags:
        - macos-xcode26
    variables: *variables-macos-arm64

.nightly-macos-common:
    extends: .macos-common
    rules:
        - if: '$CI_PIPELINE_SOURCE == "schedule"'
    after_script:
        - mkdir nightlies
        - mv vlc-*.dmg nightlies/$(basename vlc-*.dmg | sed "s/\.dmg/-${SHORTARCH}-${CI_COMMIT_SHORT_SHA}\.dmg/")
        - mv vlc-*.tar.gz nightlies/$(basename vlc-*.tar.gz | sed "s/\.tar\.gz/-${SHORTARCH}-${CI_COMMIT_SHORT_SHA}\.tar\.gz/")
        - cd nightlies && find . -maxdepth 1 -type f -not -name SHA512SUM | xargs shasum -a 512 | tee SHA512SUM
    interruptible: false
    artifacts:
        paths:
            - nightlies/*

nightly-macos-x86_64:
    extends: .nightly-macos-common
    tags:
        - monterey
    variables: *variables-macos-x86_64

nightly-macos-arm64:
    extends: .nightly-macos-common
    tags:
        - macos-xcode26
    variables: *variables-macos-arm64

#
# iOS
#
.apple-os-common:
    extends: .base-template
    script: |
        export PATH="${VLC_PATH}:$PATH"
        mkdir build && cd build
        EXTRA_BUILD_FLAGS="${EXTRA_BUILD_FLAGS} --enable-extra-checks"
        if [ -n "$VLC_PREBUILT_CONTRIBS_URL" ]; then
          EXTRA_BUILD_FLAGS="${EXTRA_BUILD_FLAGS} --with-prebuilt-contribs"
        fi
        if [ "${CI_COMMIT_BRANCH}" = "${CI_DEFAULT_BRANCH}" -a "${CI_PROJECT_PATH}" = "videolan/vlc" ]; then
          EXTRA_BUILD_FLAGS="${EXTRA_BUILD_FLAGS} --package-contribs"
        fi
        ../extras/package/apple/build.sh --sdk=$SDKNAME --arch=$HOST_ARCH $EXTRA_BUILD_FLAGS $EXTRA_TARGET_FLAGS
    after_script:
      - export PATH="${CI_PROJECT_DIR}/extras/tools/build/bin:$PATH"
      - !reference [default, after_script]

ios-arm64:
    extends: .apple-os-common
    tags:
        - macos-xcode26
    variables: *variables-ios-arm64

ios-armv7:
    extends: .apple-os-common
    tags:
        - monterey
    variables: *variables-ios-armv7

ios-simulator-x86_64:
    extends: .apple-os-common
    tags:
        - macos-xcode26
    variables: *variables-ios-simulator-x86_64

tvos-arm64:
    extends: .apple-os-common
    tags:
        - macos-xcode26
    variables:
        <<: *variables-tvos-arm64
        EXTRA_TARGET_FLAGS: --enable-shared

watchos-arm64_32:
    extends: .apple-os-common
    tags:
        - macos-xcode26
    variables: *variables-watchos-arm64_32

xros-arm64:
    extends: .apple-os-common
    tags:
        - macos-xcode26
    variables: *variables-xros-arm64

#
# Android
#
.android-common:
    extends: .base-template
    image:
        name: $VLC_ANDROID_IMAGE
    script: |
        git clone https://code.videolan.org/videolan/libvlcjni.git
        (cd libvlcjni && git checkout e0a8a3df7c15b0c54e7651e2ea1623ba5f64c7ea)
        if [ -n "$VLC_PREBUILT_CONTRIBS_URL" ]; then
          CONTRIB_FLAGS="--with-prebuilt-contribs"
        elif [ "${CI_COMMIT_BRANCH}" = "${CI_DEFAULT_BRANCH}" -a "${CI_PROJECT_PATH}" = "videolan/vlc" ]; then
          CONTRIB_FLAGS="--package-contribs"
        fi
        EXTRA_PARAMS="--enable-extra-checks" /bin/sh ./libvlcjni/buildsystem/build-libvlc.sh -a $ANDROID_ARCH $CONTRIB_FLAGS

android-arm:
    extends: .android-common
    variables: *variables-android-arm

android-arm64:
    extends: .android-common
    variables: *variables-android-arm64

android-x86:
    extends: .android-common
    variables: *variables-android-x86

android-x86_64:
    extends: .android-common
    variables: *variables-android-x86_64

#
# Webassembly
#

.wasm32-emscripten-common :
    extends: .base-template
    variables: *variables-emscripten-wasm32
    image:
        name: $VLC_WASM_EMSCRIPTEN
    script:
        - source $EMSCRIPTEN_SDK/emsdk_env.sh
        - |
            EXTRA_BUILD_FLAGS="${EXTRA_BUILD_FLAGS} --enable-extra-checks"
            if [ -n "$VLC_PREBUILT_CONTRIBS_URL" ]; then
                echo "Building using prebuilt contribs at $VLC_PREBUILT_CONTRIBS_URL"
                EXTRA_BUILD_FLAGS="${EXTRA_BUILD_FLAGS} --with-prebuilt-contribs"
            fi
            if [ "${CI_COMMIT_BRANCH}" = "${CI_DEFAULT_BRANCH}" -a "${CI_PROJECT_PATH}" = "videolan/vlc" ]; then
                EXTRA_BUILD_FLAGS="${EXTRA_BUILD_FLAGS} --gen-contrib-archive"
            fi
            if [[ $CI_JOB_NAME == *"shared"* ]]; then
                EXTRA_BUILD_FLAGS="${EXTRA_BUILD_FLAGS} --enable-shared"
            fi
            ./extras/package/wasm-emscripten/build.sh $EXTRA_BUILD_FLAGS

wasm32-emscripten-build :
    extends: .wasm32-emscripten-common

wasm32-emscripten-build-shared :
    extends: .wasm32-emscripten-common

#
# VLC Documentation
#
nightly-docs:
    stage: build
    image:
        name: $VLC_DEBIAN_IMAGE
    before_script:
        - git fetch --all
    script:
        - mkdir public
        - |
            for branch in "$CI_DEFAULT_BRANCH" '3.0.x' ; do
              echo -e "\e[0Ksection_start:$(date +%s):nightly_docs_build_${branch}\r\e[0KBuilding docs for ${branch}"
              git switch --detach "origin/$branch"
              ./bootstrap
              ./configure
              make doc
              mv doc/doxygen/html "public/$branch"
              make distclean
              echo -e "\e[0Ksection_end:$(date +%s):nightly_docs_build_${branch}\r\e[0K"
            done
        - echo "/vlc /vlc/$CI_DEFAULT_BRANCH 302" > 'public/_redirects'
    pages:
        publish: public
    rules:
        - if: '$CI_PIPELINE_SOURCE == "schedule" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
    interruptible: false

[Dauer der Verarbeitung: 0.6 Sekunden, vorverarbeitet 2026-10-24]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=1104842
#Domains=499167