diff options
author | Robert Adam <dev@robert-adam.de> | 2021-03-05 15:15:05 +0300 |
---|---|---|
committer | Robert Adam <dev@robert-adam.de> | 2021-03-07 15:50:35 +0300 |
commit | abc587235d8ce2ed7a6e6c25fa68082da1ae193a (patch) | |
tree | b87d25ef4c1b2f59c70aa027820f6e0d28bdc0e3 | |
parent | d1f28fdabda9c5fa2a4219d3307a92fd95a2c3c9 (diff) |
CI: Separate different stages
Now the stages building, testing and releasing are separate steps in all
CI runs, allowing to see more quickly where something failed and how
long each stage took.
-rwxr-xr-x | .ci/azure-pipelines/build_linux.bash | 3 | ||||
-rwxr-xr-x | .ci/azure-pipelines/build_macos.bash | 4 | ||||
-rw-r--r-- | .ci/azure-pipelines/build_windows.bat | 20 | ||||
-rwxr-xr-x | .ci/azure-pipelines/package_AppImage.bash | 6 | ||||
-rwxr-xr-x | .ci/azure-pipelines/release_macos.bash | 22 | ||||
-rw-r--r-- | .ci/azure-pipelines/release_windows.bat | 25 | ||||
-rw-r--r-- | .ci/azure-pipelines/steps_linux.yml | 4 | ||||
-rw-r--r-- | .ci/azure-pipelines/steps_macos.yml | 4 | ||||
-rw-r--r-- | .ci/azure-pipelines/steps_windows.yml | 7 |
9 files changed, 68 insertions, 27 deletions
diff --git a/.ci/azure-pipelines/build_linux.bash b/.ci/azure-pipelines/build_linux.bash index 08e5d8a02..425c88fca 100755 --- a/.ci/azure-pipelines/build_linux.bash +++ b/.ci/azure-pipelines/build_linux.bash @@ -36,5 +36,4 @@ cmake -G Ninja -DCMAKE_INSTALL_PREFIX=appdir/usr -DCMAKE_UNITY_BUILD=ON \ -Ddisplay-install-paths=ON $BUILD_SOURCESDIRECTORY cmake --build . -ctest --verbose -cmake --install . + diff --git a/.ci/azure-pipelines/build_macos.bash b/.ci/azure-pipelines/build_macos.bash index 31e3d7fee..370ba2bfe 100755 --- a/.ci/azure-pipelines/build_macos.bash +++ b/.ci/azure-pipelines/build_macos.bash @@ -47,8 +47,4 @@ cmake -G Ninja -DCMAKE_TOOLCHAIN_FILE=$MUMBLE_ENVIRONMENT_TOOLCHAIN -DIce_HOME=" -Ddisplay-install-paths=ON $BUILD_SOURCESDIRECTORY cmake --build . -ctest --verbose -$BUILD_SOURCESDIRECTORY/macx/scripts/osxdist.py --version=$RELEASE_ID --source-dir=$BUILD_SOURCESDIRECTORY --binary-dir=. - -mv *.dmg $BUILD_ARTIFACTSTAGINGDIRECTORY diff --git a/.ci/azure-pipelines/build_windows.bat b/.ci/azure-pipelines/build_windows.bat index 4b036c89e..525e8517f 100644 --- a/.ci/azure-pipelines/build_windows.bat +++ b/.ci/azure-pipelines/build_windows.bat @@ -82,23 +82,3 @@ if errorlevel 1 ( exit /b %errorlevel% ) -:: Set timeout for tests to 15min -set QTEST_FUNCTION_TIMEOUT=900000 -ctest --verbose - -if errorlevel 1 ( - exit /b %errorlevel% -) - -cmake --install . - -if errorlevel 1 ( - exit /b %errorlevel% -) - -copy installer\client\mumble_client*.msi %BUILD_ARTIFACTSTAGINGDIRECTORY% - -copy installer\server\mumble_server*.msi %BUILD_ARTIFACTSTAGINGDIRECTORY% - -7z a PDBs.7z *.pdb plugins\*.pdb -copy PDBs.7z %BUILD_ARTIFACTSTAGINGDIRECTORY% diff --git a/.ci/azure-pipelines/package_AppImage.bash b/.ci/azure-pipelines/package_AppImage.bash index d7ece9bdd..924799f94 100755 --- a/.ci/azure-pipelines/package_AppImage.bash +++ b/.ci/azure-pipelines/package_AppImage.bash @@ -5,6 +5,12 @@ # that can be found in the LICENSE file at the root of the # Mumble source tree or at <https://www.mumble.info/LICENSE>. +pushd $BUILD_BINARIESDIRECTORY + +cmake --install . + +popd + # Get the AppImage-tool - always use the latest available version wget -c https://github.com/$(wget -q https://github.com/probonopd/go-appimage/releases -O - | grep "appimagetool-.*-x86_64.AppImage" | head -n 1 | cut -d '"' -f 2) chmod +x appimagetool-*.AppImage diff --git a/.ci/azure-pipelines/release_macos.bash b/.ci/azure-pipelines/release_macos.bash new file mode 100755 index 000000000..17b9c7e79 --- /dev/null +++ b/.ci/azure-pipelines/release_macos.bash @@ -0,0 +1,22 @@ +#!/usr/bin/env bash -ex +# +# Copyright 2021 The Mumble Developers. All rights reserved. +# Use of this source code is governed by a BSD-style license +# that can be found in the LICENSE file at the root of the +# Mumble source tree or at <https://www.mumble.info/LICENSE>. + +# Below is a list of configuration variables used from environment. +# +# Predefined variables: +# +# BUILD_SOURCESDIRECTORY - The local path on the agent where the +# repository is downloaded. +# + +RELEASE_ID=$(python "scripts/mumble-version.py") + +cd $BUILD_BINARIESDIRECTORY + +$BUILD_SOURCESDIRECTORY/macx/scripts/osxdist.py --version=$RELEASE_ID --source-dir=$BUILD_SOURCESDIRECTORY --binary-dir=. + +mv *.dmg $BUILD_ARTIFACTSTAGINGDIRECTORY diff --git a/.ci/azure-pipelines/release_windows.bat b/.ci/azure-pipelines/release_windows.bat new file mode 100644 index 000000000..22a1b9b9b --- /dev/null +++ b/.ci/azure-pipelines/release_windows.bat @@ -0,0 +1,25 @@ +:: Copyright 2021 The Mumble Developers. All rights reserved. +:: Use of this source code is governed by a BSD-style license +:: that can be found in the LICENSE file at the root of the +:: Mumble source tree or at <https://www.mumble.info/LICENSE>. +:: +:: Builds the installer and moves all binaries to the correct +:: directory in order for the publishing of artifacts to work +:: as expected. + +@echo on + +cd /d %BUILD_BINARIESDIRECTORY% + +cmake --install . + +if errorlevel 1 ( + exit /b %errorlevel% +) + +copy installer\client\mumble_client*.msi %BUILD_ARTIFACTSTAGINGDIRECTORY% + +copy installer\server\mumble_server*.msi %BUILD_ARTIFACTSTAGINGDIRECTORY% + +7z a PDBs.7z *.pdb plugins\*.pdb +copy PDBs.7z %BUILD_ARTIFACTSTAGINGDIRECTORY% diff --git a/.ci/azure-pipelines/steps_linux.yml b/.ci/azure-pipelines/steps_linux.yml index 3188a77a2..e2a204f48 100644 --- a/.ci/azure-pipelines/steps_linux.yml +++ b/.ci/azure-pipelines/steps_linux.yml @@ -12,8 +12,10 @@ steps: env: MUMBLE_BUILD_NUMBER_TOKEN: $(BUILD_NUMBER_TOKEN) displayName: 'Build' + - script: 'cd $BUILD_BINARIESDIRECTORY; ctest --verbose' + displayName: 'Test' - script: .ci/azure-pipelines/package_AppImage.bash - displayName: 'Package AppImage' + displayName: 'Release' - template: task-publish-artifacts.yml parameters: name: "AppImage" diff --git a/.ci/azure-pipelines/steps_macos.yml b/.ci/azure-pipelines/steps_macos.yml index 75c53c70e..7f019ace6 100644 --- a/.ci/azure-pipelines/steps_macos.yml +++ b/.ci/azure-pipelines/steps_macos.yml @@ -18,6 +18,10 @@ steps: env: MUMBLE_BUILD_NUMBER_TOKEN: $(BUILD_NUMBER_TOKEN) displayName: 'Build' + - script: 'cd $BUILD_BINARIES_DIRECTORY; ctest --verbose' + displayName: 'Test' + - script: .ci/azure-pipelines/release_macos.bash + displayName: 'Release' - template: task-publish-artifacts.yml parameters: name: "macOS package" diff --git a/.ci/azure-pipelines/steps_windows.yml b/.ci/azure-pipelines/steps_windows.yml index 2547867a7..6b4fdfefa 100644 --- a/.ci/azure-pipelines/steps_windows.yml +++ b/.ci/azure-pipelines/steps_windows.yml @@ -12,6 +12,13 @@ steps: env: MUMBLE_BUILD_NUMBER_TOKEN: $(BUILD_NUMBER_TOKEN) displayName: 'Build' + - script: 'cd /d %BUILD_BINARIESDIRECTORY% & ctest --verbose' + env: + # Set timeout for tests to 15min + QTEST_FUNCTION_TIMEOUT: 900000 + displayName: 'Test' + - script: .ci/azure-pipelines/release_windows.bat + displayName: 'Release' - template: task-publish-artifacts.yml parameters: name: 'Windows (${{parameters.arch}}) installer' |