Add NIGHTLY release type for master builds.

This commit is contained in:
Julian Groß 2025-05-31 18:33:42 +02:00
parent c1aa0b369c
commit 893370ddc0
7 changed files with 30 additions and 17 deletions

View file

@ -211,10 +211,10 @@ jobs:
run: |
if [[ "${{ matrix.os }}" =~ "Windows" ]]; then
# This syntax requires CMake 3.23
cmake --preset conan-default -DOVERTE_RELEASE_TYPE=PRODUCTION $CMAKE_EXTRA
cmake --preset conan-default -DOVERTE_RELEASE_TYPE=NIGHTLY $CMAKE_EXTRA
else
# This syntax requires CMake 3.23
cmake --preset conan-${BUILD_TYPE,,} -DOVERTE_RELEASE_TYPE=PRODUCTION $CMAKE_EXTRA
cmake --preset conan-${BUILD_TYPE,,} -DOVERTE_RELEASE_TYPE=NIGHTLY $CMAKE_EXTRA
fi
- name: Build application

View file

@ -95,7 +95,7 @@ OVERTE_BACKTRACE_TOKEN
// Not used for nightlies and development builds.
OVERTE_RELEASE_NUMBER
// The type of release.
OVERTE_RELEASE_TYPE=PRODUCTION|PR|DEV
OVERTE_RELEASE_TYPE=PRODUCTION|PR|NIGHTLY|DEV
```
#### Generate Files

View file

@ -23,7 +23,7 @@ macro(SET_PACKAGING_PARAMETERS)
set(APP_USER_MODEL_ID "com.highfidelity.console-dev")
set_from_env(STABLE_BUILD STABLE_BUILD 0)
set(OVERTE_RELEASE_TYPE "DEV" CACHE STRING "Valid options are: 'PRODUCTION', 'PR', and 'DEV'.")
set(OVERTE_RELEASE_TYPE "DEV" CACHE STRING "Valid options are: 'PRODUCTION', 'PR', 'NIGHTLY', and 'DEV'.")
set(OVERTE_RELEASE_NUMBER "0000.00.0" CACHE STRING "Release version number. E.g. 2025.05.1-rc1 for the first release candidate of the first release in May 2025.")
set_from_env(PRELOADED_STARTUP_LOCATION PRELOADED_STARTUP_LOCATION "")
@ -71,8 +71,17 @@ macro(SET_PACKAGING_PARAMETERS)
elseif (OVERTE_RELEASE_TYPE STREQUAL "PR")
set(PR_BUILD 1)
set(BUILD_ORGANIZATION "Overte - PR${RELEASE_NUMBER}")
set(BUILD_VERSION "PR${OVERTE_RELEASE_NUMBER}-${BUILD_DATE}")
set(BUILD_ORGANIZATION "Overte - ${BUILD_VERSION}")
set(INTERFACE_ICON_PREFIX "interface-beta")
# add definition for this release type
add_definitions(-DPR_BUILD)
elseif (OVERTE_RELEASE_TYPE STREQUAL "NIGHTLY")
set(NIGHTLY_BUILD 1)
set(BUILD_VERSION "Nightly-${BUILD_DATE}")
set(BUILD_ORGANIZATION "Overte - ${BUILD_VERSION}")
set(INTERFACE_ICON_PREFIX "interface-beta")
# add definition for this release type
@ -88,7 +97,7 @@ macro(SET_PACKAGING_PARAMETERS)
add_definitions(-DDEV_BUILD)
else()
message(FATAL_ERROR "OVERTE_RELEASE_TYPE invalid. Expected: 'RELEASE', 'PR', or 'DEV'. Got: '${OVERTE_RELEASE_TYPE}'")
message(FATAL_ERROR "OVERTE_RELEASE_TYPE invalid. Expected: 'RELEASE', 'PR', 'NIGHTLY', or 'DEV'. Got: '${OVERTE_RELEASE_TYPE}'")
endif()
set(NITPICK_BUNDLE_NAME "nitpick")

View file

@ -34,7 +34,7 @@ namespace BuildInfo {
enum BuildType {
Dev,
PR,
Master,
Nightly,
Stable
};
@ -42,8 +42,11 @@ namespace BuildInfo {
const BuildType BUILD_TYPE = PR;
const QString BUILD_TYPE_STRING = "pr";
#elif defined(PRODUCTION_BUILD)
const BuildType BUILD_TYPE = @STABLE_BUILD@ ? Stable : Master;
const QString BUILD_TYPE_STRING = @STABLE_BUILD@ ? "stable" : "master";
const BuildType BUILD_TYPE = Stable;
const QString BUILD_TYPE_STRING = "stable";
#elif defined(NIGHTLY_BUILD)
const BuildType BUILD_TYPE = Nightly;
const QString BUILD_TYPE_STRING = "nightly";
#else
const BuildType BUILD_TYPE = Dev;
const QString BUILD_TYPE_STRING = "dev";

View file

@ -6,7 +6,7 @@
// Created by Andrzej Kapolka on 5/10/13.
// Copyright 2013 High Fidelity, Inc.
// Copyright 2020 Vircadia contributors.
// Copyright 2022-2023 Overte e.V.
// Copyright 2022-2025 Overte e.V.
//
// Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
@ -597,7 +597,7 @@ void Application::initialize(const QCommandLineParser &parser) {
// If launched from Steam, let it handle updates
bool buildCanUpdate = BuildInfo::BUILD_TYPE == BuildInfo::BuildType::Stable
|| BuildInfo::BUILD_TYPE == BuildInfo::BuildType::Master;
|| BuildInfo::BUILD_TYPE == BuildInfo::BuildType::Nightly;
if (!parser.isSet("no-updater") && buildCanUpdate) {
constexpr auto INSTALLER_TYPE_CLIENT_ONLY = "client_only";

View file

@ -4,6 +4,7 @@
//
// Created by David Rowe on 24 Aug 2015.
// Copyright 2015 High Fidelity, Inc.
// Copyright 2025 Overte e.V.
//
// Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
@ -103,7 +104,7 @@ bool CrashRecoveryHandler::suggestCrashReporting() {
"and not yet part of the official code. We'd highly appreciate it if you enabled\n"
"crash reporting to help us test this potential addition.";
break;
case BuildInfo::BuildType::Master:
case BuildInfo::BuildType::Nightly:
explainText = "You're running a pre-release version. This is an official release, but the code\n"
"is not yet considered to be fully stable. We'd highly appreciate it if you enabled\n"
"crash reporting to help us test the upcoming release.";

View file

@ -4,7 +4,7 @@
//
// Created by Leonardo Murillo on 6/1/2015.
// Copyright 2015 High Fidelity, Inc.
// Copyright 2023 Overte e.V.
// Copyright 2023-2025 Overte e.V.
//
// Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
@ -46,10 +46,10 @@ void AutoUpdater::getLatestVersionData() {
if (BuildInfo::BUILD_TYPE == BuildInfo::BuildType::Stable) {
buildsURL = NetworkingConstants::BUILDS_XML_URL;
} else if (BuildInfo::BUILD_TYPE == BuildInfo::BuildType::Master) {
} else if (BuildInfo::BUILD_TYPE == BuildInfo::BuildType::Nightly) {
buildsURL = NetworkingConstants::MASTER_BUILDS_XML_URL;
}
QNetworkRequest latestVersionRequest(buildsURL);
latestVersionRequest.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy);
@ -82,10 +82,10 @@ void AutoUpdater::parseLatestVersionData() {
// master builds look at the version node (build number)
if (BuildInfo::BUILD_TYPE == BuildInfo::BuildType::Stable) {
versionKey = "stable_version";
} else if (BuildInfo::BUILD_TYPE == BuildInfo::BuildType::Master) {
} else if (BuildInfo::BUILD_TYPE == BuildInfo::BuildType::Nightly) {
versionKey = "version";
}
while (xml.readNextStartElement()) {
if (xml.name() == "projects") {
while (xml.readNextStartElement()) {