From 99d1eb9c97ae90cf0a71c62b21c11d2f6185915d Mon Sep 17 00:00:00 2001 From: Konstantin Pavlov <thresh@videolan.org> Date: Tue, 14 Jan 2020 00:42:51 +0300 Subject: [PATCH] CI: Introduced nightly jobs --- extras/ci/gitlab-ci.yml | 96 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 90 insertions(+), 6 deletions(-) diff --git a/extras/ci/gitlab-ci.yml b/extras/ci/gitlab-ci.yml index 3b3dc91ff40a..e3fa3efd5a65 100644 --- a/extras/ci/gitlab-ci.yml +++ b/extras/ci/gitlab-ci.yml @@ -5,7 +5,7 @@ default: before_script: - set -x - export VLC_CONTRIB_SHA="$(extras/ci/get-contrib-sha.sh)" - - export VLC_PREBUILT_CONTRIBS_URL="https://artifacts.videolan.org/vlc/${CI_JOB_NAME}/vlc-contrib-${TRIPLET}-${VLC_CONTRIB_SHA}.tar.bz2" + - export VLC_PREBUILT_CONTRIBS_URL="https://artifacts.videolan.org/vlc/${CI_JOB_NAME##nightly-}/vlc-contrib-${TRIPLET}-${VLC_CONTRIB_SHA}.tar.bz2" - if ! extras/ci/check-url.sh "$VLC_PREBUILT_CONTRIBS_URL"; then unset VLC_PREBUILT_CONTRIBS_URL; fi after_script: - export VLC_CONTRIB_SHA="$(extras/ci/get-contrib-sha.sh)" @@ -15,7 +15,7 @@ variables: VLC_WIN32_IMAGE: registry.videolan.org/vlc-debian-win32:20190416165205 VLC_WIN64_IMAGE: registry.videolan.org/vlc-debian-win64:20190416180622 VLC_WIN_LLVM_IMAGE: registry.videolan.org/vlc-debian-llvm-mingw:20190621125349 - VLC_DEBIAN_IMAGE: registry.videolan.org/vlc-debian-unstable:20191023134128 + VLC_DEBIAN_IMAGE: registry.videolan.org/vlc-debian-unstable:20200229201904 VLC_ANDROID_IMAGE: registry.videolan.org/vlc-debian-android:20190717134531 VLC_SNAP_IMAGE: registry.videolan.org/vlc-ubuntu-bionic:20190627090437 VLC_RASPBIAN_IMAGE: registry.videolan.org/vlc-debian-raspbian:20200213203125 @@ -33,14 +33,17 @@ variables: TRIPLET: $HOST_ARCH-linux-gnueabihf .variables-win32: &variables-win32 + SHORTARCH: win32 HOST_ARCH: i686 TRIPLET: $HOST_ARCH-w64-mingw32 .variables-win64: &variables-win64 + SHORTARCH: win64 HOST_ARCH: x86_64 TRIPLET: $HOST_ARCH-w64-mingw32 .variables-win64-llvm: &variables-win64-llvm + SHORTARCH: win64 HOST_ARCH: x86_64 TRIPLET: $HOST_ARCH-w64-mingw32 WINE_SDK_PATH: /usr/include/wine/wine/windows/ @@ -80,6 +83,8 @@ variables: refs: - merge_requests - master@videolan/vlc + except: + - schedules artifacts: paths: - contrib/vlc-contrib-${TRIPLET}-*.tar.bz2 @@ -97,11 +102,14 @@ variables: .win-common: extends: .docker-template script: | + if [ "${CI_JOB_NAME:0:8}" = "nightly-" ]; then + NIGHTLY_EXTRA_BUILD_FLAGS="-i n -l" + fi if [ -n "$VLC_PREBUILT_CONTRIBS_URL" ]; then echo "Building using prebuilt contribs at $VLC_PREBUILT_CONTRIBS_URL" - extras/package/win32/build.sh -p -a $HOST_ARCH + extras/package/win32/build.sh -p -a $HOST_ARCH $NIGHTLY_EXTRA_BUILD_FLAGS else - extras/package/win32/build.sh -c -a $HOST_ARCH + extras/package/win32/build.sh -c -a $HOST_ARCH $NIGHTLY_EXTRA_BUILD_FLAGS fi win32: @@ -122,6 +130,37 @@ win64-llvm: name: $VLC_WIN_LLVM_IMAGE variables: *variables-win64-llvm +.nightly-win-common: + extends: .win-common + only: + - schedules + except: + after_script: + - mkdir nightlies + - for ext in 7z zip; do mv ${SHORTARCH}/vlc-*-dev-*-debug.${ext} nightlies/$(basename ${SHORTARCH}/vlc-*-dev-*-debug.${ext} | sed "s/\.${ext}/-${CI_COMMIT_SHORT_SHA}\.${ext}/"); done + - for ext in exe msi 7z zip; do mv ${SHORTARCH}/vlc-*-dev-*.${ext} nightlies/$(basename ${SHORTARCH}/vlc-*-dev-*.${ext} | sed "s/\.${ext}/-${CI_COMMIT_SHORT_SHA}\.${ext}/"); done + artifacts: + paths: + - nightlies/* + +nightly-win32: + extends: .nightly-win-common + image: + name: $VLC_WIN32_IMAGE + variables: *variables-win32 + +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_IMAGE + variables: *variables-win64-llvm + # # Debian # @@ -156,12 +195,24 @@ debian: # Run tests VLC_TEST_TIMEOUT=60 sh -x ./test/make_check_wrapper.sh -j4 + if [ "${CI_JOB_NAME:0:8}" = "nightly-" ]; then + export XZ_OPT="-T 0" + make -j$NCPU distcheck + fi variables: *variables-debian +nightly-debian: + extends: debian + only: + - schedules + except: + after_script: + artifacts: + # # Snap builds # -snap: +.snap-common: extends: .docker-template image: name: $VLC_SNAP_IMAGE @@ -173,6 +224,24 @@ snap: - mv extras/package/snap/parts/vlc/build/contrib/vlc-contrib-*.tar.bz2 contrib/vlc-contrib-${TRIPLET}-${VLC_CONTRIB_SHA}.tar.bz2 2>/dev/null || true variables: *variables-snap +snap: + extends: .snap-common + +nightly-snap: + extends: .snap-common + only: + - schedules + except: + after_script: + - if [ "$CI_PROJECT_NAMESPACE" = "videolan" ]; then /bin/true; else exit 0; fi + - cd extras/package/snap + - echo $SNAP_LOGIN | base64 --decode | snapcraft login --with - + - snapcraft push vlc_*.snap --release edge + - snapcraft logout + artifacts: + paths: + - extras/package/snap/vlc_*.snap + # # Raspbian # @@ -197,6 +266,9 @@ macos: tags: - macos script: | + if [ "${CI_JOB_NAME:0:8}" = "nightly-" ]; then + NIGHTLY_EXTRA_BUILD_FLAGS="-i n" + fi if [ -n "$VLC_PREBUILT_CONTRIBS_URL" ]; then echo "Building using prebuilt contribs at $VLC_PREBUILT_CONTRIBS_URL" mkdir -p contrib/contrib-$TRIPLET && cd contrib/contrib-$TRIPLET @@ -206,9 +278,21 @@ macos: EXTRA_BUILD_FLAGS="-c -p" fi mkdir build && cd build - ../extras/package/macosx/build.sh $EXTRA_BUILD_FLAGS + ../extras/package/macosx/build.sh $EXTRA_BUILD_FLAGS $NIGHTLY_EXTRA_BUILD_FLAGS variables: *variables-macos +nightly-macos: + extends: macos + only: + - schedules + except: + after_script: + - mkdir nightlies + - mv build/vlc-*.dmg nightlies/$(basename build/vlc-*.dmg | sed "s/\.dmg/-${CI_COMMIT_SHORT_SHA}\.dmg/") + artifacts: + paths: + - nightlies/* + # # iOS # -- GitLab