From f5d6af9cfc0c0d04af5183984bd9ab6980278e25 Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Thu, 11 Jan 2024 13:19:25 -0500 Subject: Add a workflow to auto-label new PRs with team:viewer. When a PR appears on the QA board, QA wants to know whose team it came from. So every PR on the viewer repo should be labeled with team:viewer. --- .github/workflows/label_pr.yaml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 .github/workflows/label_pr.yaml (limited to '.github/workflows') diff --git a/.github/workflows/label_pr.yaml b/.github/workflows/label_pr.yaml new file mode 100644 index 0000000000..49c1b10981 --- /dev/null +++ b/.github/workflows/label_pr.yaml @@ -0,0 +1,17 @@ +name: Label PR with team:viewer when first opened +on: + pull_request: + types: + - opened +jobs: + label_pr: + runs-on: ubuntu-latest + permissions: + issues: write + steps: + - run: gh pr edit "$NUMBER" --add-label "$LABELS" + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GH_REPO: ${{ github.repository }} + NUMBER: ${{ github.event.pull_request.number }} + LABELS: "team:viewer" -- cgit v1.3 From 36fff90f90571ab2d225a4dbd61d2319e8324fc6 Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Thu, 11 Jan 2024 13:50:40 -0500 Subject: Grant write permission for pull requests. --- .github/workflows/label_pr.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '.github/workflows') diff --git a/.github/workflows/label_pr.yaml b/.github/workflows/label_pr.yaml index 49c1b10981..68dba7cb07 100644 --- a/.github/workflows/label_pr.yaml +++ b/.github/workflows/label_pr.yaml @@ -7,7 +7,7 @@ jobs: label_pr: runs-on: ubuntu-latest permissions: - issues: write + pull-requests: write steps: - run: gh pr edit "$NUMBER" --add-label "$LABELS" env: -- cgit v1.3 From 0730681b8a419d0122a20cc1fe7e520386d0836b Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Fri, 12 Jan 2024 13:48:08 -0500 Subject: Fold PR labeling into existing label.yaml. --- .github/workflows/label.yaml | 15 +++++++++++++++ .github/workflows/label_pr.yaml | 17 ----------------- 2 files changed, 15 insertions(+), 17 deletions(-) delete mode 100644 .github/workflows/label_pr.yaml (limited to '.github/workflows') diff --git a/.github/workflows/label.yaml b/.github/workflows/label.yaml index 6e41d8aa2d..e19477a533 100644 --- a/.github/workflows/label.yaml +++ b/.github/workflows/label.yaml @@ -13,3 +13,18 @@ jobs: with: configuration-path: .github/labeler.yaml repo-token: "${{ secrets.GITHUB_TOKEN }}" + + label-pr: + if: + ${{ github.event_name == 'opened' && + github.event.pull_request.head.repo.owner.login == 'secondlife' }} + runs-on: ubuntu-latest + permissions: + pull-requests: write + steps: + - run: gh pr edit "$NUMBER" --add-label "$LABELS" + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GH_REPO: ${{ github.repository }} + NUMBER: ${{ github.event.pull_request.number }} + LABELS: "team:viewer" diff --git a/.github/workflows/label_pr.yaml b/.github/workflows/label_pr.yaml deleted file mode 100644 index 68dba7cb07..0000000000 --- a/.github/workflows/label_pr.yaml +++ /dev/null @@ -1,17 +0,0 @@ -name: Label PR with team:viewer when first opened -on: - pull_request: - types: - - opened -jobs: - label_pr: - runs-on: ubuntu-latest - permissions: - pull-requests: write - steps: - - run: gh pr edit "$NUMBER" --add-label "$LABELS" - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - GH_REPO: ${{ github.repository }} - NUMBER: ${{ github.event.pull_request.number }} - LABELS: "team:viewer" -- cgit v1.3 From e2ba2f9c453d4e913b0deb5dfee2a07c55034655 Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Fri, 12 Jan 2024 15:36:45 -0500 Subject: Move "team:viewer" label action to labeler.yaml. This avoids the need for a separate job step. --- .github/labeler.yaml | 3 +++ .github/workflows/label.yaml | 15 --------------- 2 files changed, 3 insertions(+), 15 deletions(-) (limited to '.github/workflows') diff --git a/.github/labeler.yaml b/.github/labeler.yaml index d31a361baf..6e03801b65 100644 --- a/.github/labeler.yaml +++ b/.github/labeler.yaml @@ -76,3 +76,6 @@ c/cpp: - '**/*.i' - '**/*.inl' - '**/*.y' + +'team:viewer': + - '*' diff --git a/.github/workflows/label.yaml b/.github/workflows/label.yaml index e19477a533..6e41d8aa2d 100644 --- a/.github/workflows/label.yaml +++ b/.github/workflows/label.yaml @@ -13,18 +13,3 @@ jobs: with: configuration-path: .github/labeler.yaml repo-token: "${{ secrets.GITHUB_TOKEN }}" - - label-pr: - if: - ${{ github.event_name == 'opened' && - github.event.pull_request.head.repo.owner.login == 'secondlife' }} - runs-on: ubuntu-latest - permissions: - pull-requests: write - steps: - - run: gh pr edit "$NUMBER" --add-label "$LABELS" - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - GH_REPO: ${{ github.repository }} - NUMBER: ${{ github.event.pull_request.number }} - LABELS: "team:viewer" -- cgit v1.3 From a0b3021bdcf76859054fda8e30abb3ed47749e83 Mon Sep 17 00:00:00 2001 From: Bennett Goble Date: Wed, 29 May 2024 08:10:00 -0700 Subject: Trim trailing whitespace Start trimming trailing whitespace, but limit the blast radius to a handful of file types. --- .github/labeler.yaml | 2 +- .github/workflows/build.yaml | 4 +- .github/workflows/stale.yaml | 2 +- .pre-commit-config.yaml | 4 +- build.sh | 12 +++--- indra/cmake/Copy3rdPartyLibs.cmake | 2 +- indra/llui/lltextvalidate.cpp | 10 ++--- indra/llui/lltextvalidate.h | 10 ++--- indra/newview/installers/darwin/apple-notarize.sh | 4 +- .../darwin/fix_application_icon_position.sh | 2 +- .../linux_tools/register_secondlifeprotocol.sh | 2 +- indra/newview/llfloateremojipicker.cpp | 4 +- indra/newview/llfloaterprofiletexture.h | 10 ++--- indra/newview/llinventorygallery.cpp | 50 +++++++++++----------- indra/newview/llinventorygallerymenu.cpp | 12 +++--- indra/newview/llreflectionmap.cpp | 14 +++--- indra/newview/llsetkeybinddialog.cpp | 10 ++--- indra/newview/viewer_manifest.py | 24 +++++------ scripts/code_tools/fix_xml_indentations.py | 2 +- scripts/code_tools/modified-strings.sh | 14 +++--- scripts/code_tools/modified_strings.py | 16 +++---- scripts/content_tools/anim_tool.py | 26 +++++------ scripts/content_tools/arche_tool.py | 6 +-- scripts/content_tools/dae_tool.py | 10 ++--- scripts/content_tools/skel_tool.py | 26 +++++------ scripts/metrics/viewer_asset_logs.py | 8 ++-- scripts/metrics/viewerstats.py | 16 +++---- scripts/template_verifier.py | 10 ++--- scripts/templates/template-cpp.cpp | 2 +- scripts/templates/template-h.h | 2 +- 30 files changed, 159 insertions(+), 157 deletions(-) (limited to '.github/workflows') diff --git a/.github/labeler.yaml b/.github/labeler.yaml index d31a361baf..a334536389 100644 --- a/.github/labeler.yaml +++ b/.github/labeler.yaml @@ -1,6 +1,6 @@ llappearance: - indra/llappearance/**/* - + llaudio: - indra/llaudio/**/* diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 8d1c6b63e6..64b938747c 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -412,7 +412,7 @@ jobs: - uses: actions/download-artifact@v4 with: pattern: "*-metadata" - + - name: Rename metadata run: | cp Windows-metadata/autobuild-package.xml Windows-autobuild-package.xml @@ -441,7 +441,7 @@ jobs: append_body: true fail_on_unmatched_files: true files: | - macOS-installer/*.dmg + macOS-installer/*.dmg Windows-installer/*.exe *-autobuild-package.xml *-viewer_version.txt diff --git a/.github/workflows/stale.yaml b/.github/workflows/stale.yaml index e44e223589..f77151a815 100644 --- a/.github/workflows/stale.yaml +++ b/.github/workflows/stale.yaml @@ -1,4 +1,4 @@ -name: Stale PRs +name: Stale PRs on: workflow_dispatch: schedule: diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index d40f02dc0c..1dd7c8c800 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,5 +1,5 @@ repos: - - repo: https://github.com/secondlife/git-hooks.git + - repo: https://github.com/secondlife/git-hooks.git rev: v1.0.2 hooks: - id: opensource-license @@ -16,3 +16,5 @@ repos: hooks: - id: check-xml - id: mixed-line-ending + - id: trailing-whitespace + files: \.(cpp|c|h|inl|py|glsl|cmake|yaml|sh)$ diff --git a/build.sh b/build.sh index e025b73170..74148f455c 100755 --- a/build.sh +++ b/build.sh @@ -199,14 +199,14 @@ package_llphysicsextensions_tpv() tpv_status=0 # nat 2016-12-21: without HAVOK, can't build PhysicsExtensions_TPV. if [ "$variant" = "Release" -a "${HAVOK:-}" != "OFF" ] - then + then tpvconfig="$build_dir/packages/llphysicsextensions/autobuild-tpv.xml" test -r "$tpvconfig" || fatal "No llphysicsextensions_tpv autobuild configuration found" # SL-19942: autobuild ignores -c switch if AUTOBUILD_CONFIGURATION set unset AUTOBUILD_CONFIGURATION "$autobuild" build --quiet --config-file "$(native_path "$tpvconfig")" -c Tpv \ || fatal "failed to build llphysicsextensions_tpv" - + # capture the package file name for use in upload later... PKGTMP=`mktemp -t pgktpv.XXXXXX` cleanup="$cleanup ; rm $PKGTMP* 2>/dev/null" @@ -239,7 +239,7 @@ build() || fatal "failed building $variant" echo true >"$build_dir"/build_ok end_section "autobuild $variant" - + begin_section "extensions $variant" # Run build extensions if [ -d ${build_dir}/packages/build-extensions ] @@ -312,7 +312,7 @@ begin_section "select viewer channel" # Look for a branch-specific viewer_channel setting # changeset_branch is set in the sling-buildscripts viewer_build_branch=$(echo -n "${changeset_branch:-$(repo_branch ${BUILDSCRIPTS_SRC:-$(pwd)})}" | tr -Cs 'A-Za-z0-9_' '_' | sed -E 's/^_+//; s/_+$//') -if [ -n "$viewer_build_branch" ] +if [ -n "$viewer_build_branch" ] then branch_viewer_channel_var="${viewer_build_branch}_viewer_channel" if [ -n "${!branch_viewer_channel_var}" ] @@ -434,7 +434,7 @@ do record_event "configure for $variant failed: build skipped" fi - if ! $succeeded + if ! $succeeded then record_event "remaining variants skipped due to $variant failure" break @@ -499,7 +499,7 @@ then fi done end_section "Upload Debian Repository" - + else record_event "debian build not enabled" fi diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake index 27b20ee3b1..3facdb5125 100644 --- a/indra/cmake/Copy3rdPartyLibs.cmake +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -50,7 +50,7 @@ if(WINDOWS) endif (ADDRESS_SIZE EQUAL 64) #******************************* - # Misc shared libs + # Misc shared libs set(release_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}") set(release_files diff --git a/indra/llui/lltextvalidate.cpp b/indra/llui/lltextvalidate.cpp index 9e27ed6232..7ea8a3347e 100644 --- a/indra/llui/lltextvalidate.cpp +++ b/indra/llui/lltextvalidate.cpp @@ -1,25 +1,25 @@ -/** +/** * @file lltextvalidate.cpp * @brief Text validation helper functions * * $LicenseInfo:firstyear=2001&license=viewerlgpl$ * Second Life Viewer Source Code * Copyright (C) 2010, Linden Research, Inc. - * + * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License only. - * + * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * + * * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA * $/LicenseInfo$ */ diff --git a/indra/llui/lltextvalidate.h b/indra/llui/lltextvalidate.h index 2c2941de7f..a4ff144d82 100644 --- a/indra/llui/lltextvalidate.h +++ b/indra/llui/lltextvalidate.h @@ -1,4 +1,4 @@ -/** +/** * @file lltextbase.h * @author Martin Reddy * @brief The base class of text box/editor, providing Url handling support @@ -6,21 +6,21 @@ * $LicenseInfo:firstyear=2009&license=viewerlgpl$ * Second Life Viewer Source Code * Copyright (C) 2010, Linden Research, Inc. - * + * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License only. - * + * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * + * * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA * $/LicenseInfo$ */ diff --git a/indra/newview/installers/darwin/apple-notarize.sh b/indra/newview/installers/darwin/apple-notarize.sh index d90772ec0e..cc4435e614 100755 --- a/indra/newview/installers/darwin/apple-notarize.sh +++ b/indra/newview/installers/darwin/apple-notarize.sh @@ -17,7 +17,7 @@ if [[ -f "$CONFIG_FILE" ]]; then --asc-provider $ASC_PROVIDER \ --file "$zip_file" 2>&1) echo $res - + requestUUID=$(echo $res | awk '/RequestUUID/ { print $NF; }') if [[ -n $requestUUID ]]; then in_progress=1 @@ -26,7 +26,7 @@ if [[ -f "$CONFIG_FILE" ]]; then res=$(xcrun altool --notarization-info "$requestUUID" \ --username $USERNAME \ --password $PASSWORD 2>&1) - if [[ $res != *"in progress"* ]]; then + if [[ $res != *"in progress"* ]]; then in_progress=0 fi echo "." diff --git a/indra/newview/installers/darwin/fix_application_icon_position.sh b/indra/newview/installers/darwin/fix_application_icon_position.sh index 62abcdd07e..841defe96c 100755 --- a/indra/newview/installers/darwin/fix_application_icon_position.sh +++ b/indra/newview/installers/darwin/fix_application_icon_position.sh @@ -1,5 +1,5 @@ #!/bin/bash -# just run this script each time after you change the installer's name to fix the icon misalignment +# just run this script each time after you change the installer's name to fix the icon misalignment mydir="$(dirname "$0")" # If there's more than one DMG in more than one build directory, pick the most # recent one. diff --git a/indra/newview/linux_tools/register_secondlifeprotocol.sh b/indra/newview/linux_tools/register_secondlifeprotocol.sh index 16e73cb854..33c34d7a76 100755 --- a/indra/newview/linux_tools/register_secondlifeprotocol.sh +++ b/indra/newview/linux_tools/register_secondlifeprotocol.sh @@ -27,7 +27,7 @@ for LLKDECONFIG in kde-config kde4-config; do LLKDEPROTODIR=`$LLKDECONFIG --path services | cut -d ':' -f 1` if [ -d "$LLKDEPROTODIR" ]; then LLKDEPROTOFILE=${LLKDEPROTODIR}/secondlife.protocol - cat > ${LLKDEPROTOFILE} < ${LLKDEPROTOFILE} <die(); } - + if (gInventory.containsObserver(mCategoriesObserver)) { @@ -200,7 +200,7 @@ LLInventoryGallery::~LLInventoryGallery() gInventory.removeObserver(mThumbnailsObserver); } delete mThumbnailsObserver; - + LLGestureMgr::instance().removeObserver(mGestureObserver); delete mGestureObserver; } @@ -263,7 +263,7 @@ void LLInventoryGallery::updateRootFolder() updateRemovedItem(mHiddenItems[i]->getUUID()); } mItemBuildQuery.clear(); - + if (gInventory.containsObserver(mCategoriesObserver)) { gInventory.removeObserver(mCategoriesObserver); @@ -284,7 +284,7 @@ void LLInventoryGallery::updateRootFolder() mRootChangedSignal(); gInventory.addObserver(mCategoriesObserver); - + // Start observing changes in selected category. mCategoriesObserver->addCategory(mFolderID, boost::bind(&LLInventoryGallery::refreshList, this, mFolderID)); @@ -294,7 +294,7 @@ void LLInventoryGallery::updateRootFolder() // the observer will refresh the list as soon as the new items // arrive. category->fetch(); - + //refreshList(cat_id); LLInventoryModel::cat_array_t* cat_array; LLInventoryModel::item_array_t* item_array; @@ -308,7 +308,7 @@ void LLInventoryGallery::updateRootFolder() { mItemBuildQuery.insert((*iter)->getUUID()); } - + for (LLInventoryModel::item_array_t::const_iterator iter = item_array->begin(); iter != item_array->end(); iter++) @@ -448,7 +448,7 @@ void LLInventoryGallery::reArrangeRows(S32 row_diff) buf_items.push_back(*it); } mHiddenItems.clear(); - + mItemsInRow+= row_diff; updateGalleryWidth(); @@ -458,7 +458,7 @@ void LLInventoryGallery::reArrangeRows(S32 row_diff) { return compareGalleryItem(item1, item2, sort_by_date, sort_folders_by_name); }); - + for (std::vector::const_iterator it = buf_items.begin(); it != buf_items.end(); ++it) { (*it)->setHidden(false); @@ -735,7 +735,7 @@ void LLInventoryGallery::setFilterSubString(const std::string& string) { mFilterSubString = string; mFilter->setFilterSubString(string); - + //reArrangeRows(); } @@ -763,7 +763,7 @@ bool LLInventoryGallery::checkAgainstFilters(LLInventoryGalleryItem* item, const { return false; } - + bool hidden = false; if(mFilter->getFilterCreatorType() == LLInventoryFilter::FILTERCREATOR_SELF) @@ -806,7 +806,7 @@ bool LLInventoryGallery::checkAgainstFilters(LLInventoryGalleryItem* item, const desc = item->getItemName() + item->getItemNameSuffix(); break; } - + LLStringUtil::toUpper(desc); std::string cur_filter = filter_substring; @@ -2012,7 +2012,7 @@ void LLInventoryGallery::deleteSelection() if (item && get_is_item_worn(item)) { has_worn = true; - LLWearableType::EType type = item->getWearableType(); + LLWearableType::EType type = item->getWearableType(); if (type == LLWearableType::WT_SHAPE || type == LLWearableType::WT_SKIN || type == LLWearableType::WT_HAIR @@ -2355,7 +2355,7 @@ void LLInventoryGallery::onCOFChanged() LLCommonUtils::computeDifference(vnew, mCOFLinkedItems, vadded, vremoved); mCOFLinkedItems = vnew; - + for (uuid_vec_t::const_iterator iter = vadded.begin(); iter != vadded.end(); ++iter) @@ -2386,7 +2386,7 @@ void LLInventoryGallery::onGesturesChanged() LLCommonUtils::computeDifference(vnew, mActiveGestures, vadded, vremoved); mActiveGestures = vnew; - + for (uuid_vec_t::const_iterator iter = vadded.begin(); iter != vadded.end(); ++iter) @@ -2564,7 +2564,7 @@ void LLInventoryGallery::startDrag() ids.push_back(selected_id); } - const LLViewerInventoryCategory* cat = gInventory.getCategory(selected_id); + const LLViewerInventoryCategory* cat = gInventory.getCategory(selected_id); if (cat) { if (gInventory.isObjectDescendentOf(selected_id, gInventory.getLibraryRootFolderID())) @@ -2642,7 +2642,7 @@ bool LLInventoryGallery::checkAgainstFilterType(const LLUUID& object_id) break; } } - + if (filterTypes & LLInventoryFilter::FILTERTYPE_DATE) { const U16 HOURS_TO_SECONDS = 3600; @@ -3085,7 +3085,7 @@ void LLThumbnailsObserver::changed(U32 mask) { const LLUUID& obj_id = (*iter).first; LLItemData& data = (*iter).second; - + LLInventoryObject* obj = gInventory.getObject(obj_id); if (!obj) { @@ -3296,7 +3296,7 @@ BOOL dragItemIntoFolder(LLUUID folder_id, LLInventoryItem* inv_item, BOOL drop, // //-------------------------------------------------------------------------------- - + //-------------------------------------------------------------------------------- // Determine if item can be moved & dropped // Note: if user_confirm is false, we already went through those accept logic test and can skip them @@ -3323,7 +3323,7 @@ BOOL dragItemIntoFolder(LLUUID folder_id, LLInventoryItem* inv_item, BOOL drop, { //disable dropping in or out of marketplace for now return FALSE; - + /*const LLViewerInventoryCategory * master_folder = model->getFirstDescendantOf(marketplacelistings_id, folder_id); LLViewerInventoryCategory * dest_folder = cat; accept = can_move_item_to_marketplace(master_folder, dest_folder, inv_item, tooltip_msg, LLToolDragAndDrop::instance().getCargoCount() - LLToolDragAndDrop::instance().getCargoIndex());*/ @@ -3335,7 +3335,7 @@ BOOL dragItemIntoFolder(LLUUID folder_id, LLInventoryItem* inv_item, BOOL drop, LLViewerInventoryCategory * dest_folder = cat; accept = dest_folder->acceptItem(inv_item); } - + LLInventoryPanel* active_panel = LLInventoryPanel::getActiveInventoryPanel(FALSE); if (accept && drop) @@ -3409,7 +3409,7 @@ BOOL dragItemIntoFolder(LLUUID folder_id, LLInventoryItem* inv_item, BOOL drop, gInventory.changeItemParent((LLViewerInventoryItem*)inv_item, folder_id, move_is_into_trash); } - + if (move_is_from_marketplacelistings) { // If we move from an active (listed) listing, checks that it's still valid, if not, unlist @@ -3629,7 +3629,7 @@ BOOL dragCategoryIntoFolder(LLUUID dest_id, LLInventoryCategory* inv_cat, const LLUUID ¤t_outfit_id = model->findCategoryUUIDForType(LLFolderType::FT_CURRENT_OUTFIT); const LLUUID &marketplacelistings_id = model->findCategoryUUIDForType(LLFolderType::FT_MARKETPLACE_LISTINGS); //const LLUUID from_folder_uuid = inv_cat->getParentUUID(); - + const BOOL move_is_into_current_outfit = (dest_id == current_outfit_id); const BOOL move_is_into_marketplacelistings = model->isObjectDescendentOf(dest_id, marketplacelistings_id); const BOOL move_is_from_marketplacelistings = model->isObjectDescendentOf(cat_id, marketplacelistings_id); @@ -3738,7 +3738,7 @@ BOOL dragCategoryIntoFolder(LLUUID dest_id, LLInventoryCategory* inv_cat, is_movable = FALSE; // tooltip? } - + LLInventoryModel::cat_array_t descendent_categories; LLInventoryModel::item_array_t descendent_items; if (is_movable) @@ -3804,7 +3804,7 @@ BOOL dragCategoryIntoFolder(LLUUID dest_id, LLInventoryCategory* inv_cat, } } } - + if (is_movable && move_is_into_marketplacelistings) { const LLViewerInventoryCategory * master_folder = model->getFirstDescendantOf(marketplacelistings_id, dest_id); @@ -3877,7 +3877,7 @@ BOOL dragCategoryIntoFolder(LLUUID dest_id, LLInventoryCategory* inv_cat, { //disable dropping in or out of marketplace for now return FALSE; - + // If we are moving a folder at the listing folder level (i.e. its parent is the marketplace listings folder) /*if (from_folder_uuid == marketplacelistings_id) { diff --git a/indra/newview/llinventorygallerymenu.cpp b/indra/newview/llinventorygallerymenu.cpp index 4b47346473..7c664b5dab 100644 --- a/indra/newview/llinventorygallerymenu.cpp +++ b/indra/newview/llinventorygallerymenu.cpp @@ -62,7 +62,7 @@ LLContextMenu* LLInventoryGalleryContextMenu::createMenu() registrar.add("Inventory.Share", boost::bind(&LLAvatarActions::shareWithAvatars, uuids, gFloaterView->getParentFloater(mGallery))); enable_registrar.add("Inventory.CanSetUploadLocation", boost::bind(&LLInventoryGalleryContextMenu::canSetUploadLocation, this, _2)); - + LLContextMenu* menu = createFromFile("menu_gallery_inventory.xml"); updateMenuItemsVisibility(menu); @@ -321,7 +321,7 @@ void LLInventoryGalleryContextMenu::onRename(const LLSD& notification, const LLS if (!new_name.empty()) { LLUUID id = notification["payload"]["id"].asUUID(); - + LLViewerInventoryCategory* cat = gInventory.getCategory(id); if(cat && (cat->getName() != new_name)) { @@ -330,7 +330,7 @@ void LLInventoryGalleryContextMenu::onRename(const LLSD& notification, const LLS update_inventory_category(cat->getUUID(),updates, NULL); return; } - + LLViewerInventoryItem* item = gInventory.getItem(id); if(item && (item->getName() != new_name)) { @@ -379,12 +379,12 @@ bool LLInventoryGalleryContextMenu::canSetUploadLocation(const LLSD& userdata) bool is_inbox_folder(LLUUID item_id) { const LLUUID inbox_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_INBOX); - + if (inbox_id.isNull()) { return false; } - + return gInventory.isObjectDescendentOf(item_id, inbox_id); } @@ -625,7 +625,7 @@ void LLInventoryGalleryContextMenu::updateMenuItemsVisibility(LLContextMenu* men disabled_items.push_back(std::string("Open")); disabled_items.push_back(std::string("Open Original")); } - + if(LLAssetType::AT_GESTURE == obj->getType()) { items.push_back(std::string("Gesture Separator")); diff --git a/indra/newview/llreflectionmap.cpp b/indra/newview/llreflectionmap.cpp index 90a2f30c92..f4b9d8b2c5 100644 --- a/indra/newview/llreflectionmap.cpp +++ b/indra/newview/llreflectionmap.cpp @@ -56,7 +56,7 @@ void LLReflectionMap::update(U32 resolution, U32 face) llassert(mCubeArray.notNull()); llassert(mCubeIndex != -1); //llassert(LLPipeline::sRenderDeferred); - + // make sure we don't walk off the edge of the render target while (resolution > gPipeline.mRT->deferredScreen.getWidth() || resolution > gPipeline.mRT->deferredScreen.getHeight()) @@ -142,7 +142,7 @@ void LLReflectionMap::autoAdjustOrigin() LLVector3 origin(fp); F32 height = LLWorld::instance().resolveLandHeightAgent(origin) + 2.f; fp[2] = llmax(fp[2], height); - + // make sure radius encompasses all objects LLSimdScalar r2 = 0.0; for (int i = 0; i < 8; ++i) @@ -162,7 +162,7 @@ void LLReflectionMap::autoAdjustOrigin() // make sure near clip doesn't poke through ground fp[2] = llmax(fp[2], height+mRadius*0.5f); - + } } else if (mViewerObject) @@ -234,7 +234,7 @@ F32 LLReflectionMap::getNearClip() bool LLReflectionMap::getIsDynamic() { if (gSavedSettings.getS32("RenderReflectionProbeDetail") > (S32) LLReflectionMapManager::DetailLevel::STATIC_ONLY && - mViewerObject && + mViewerObject && mViewerObject->getVolume()) { return ((LLVOVolume*)mViewerObject)->getReflectionProbeIsDynamic(); @@ -244,7 +244,7 @@ bool LLReflectionMap::getIsDynamic() } bool LLReflectionMap::getBox(LLMatrix4& box) -{ +{ if (mViewerObject) { LLVolume* volume = mViewerObject->getVolume(); @@ -267,7 +267,7 @@ bool LLReflectionMap::getBox(LLMatrix4& box) // construct object to camera space (with scale) mv = mv * rm * scale; - // inverse is camera space to object unit cube + // inverse is camera space to object unit cube mv = mv.inverse(); box = LLMatrix4(mv.m); @@ -334,7 +334,7 @@ void LLReflectionMap::doOcclusion(const LLVector4a& eye) mOccluded = false; return; } - + if (mOcclusionQuery == 0) { // no query was previously issued, allocate one and issue LL_PROFILE_ZONE_NAMED_CATEGORY_PIPELINE("rmdo - glGenQueries"); diff --git a/indra/newview/llsetkeybinddialog.cpp b/indra/newview/llsetkeybinddialog.cpp index dbab7e53b6..5fa82e5a4f 100644 --- a/indra/newview/llsetkeybinddialog.cpp +++ b/indra/newview/llsetkeybinddialog.cpp @@ -1,25 +1,25 @@ -/** +/** * @file llsetkeybinddialog.cpp * @brief LLSetKeyBindDialog class implementation. * * $LicenseInfo:firstyear=2019&license=viewerlgpl$ * Second Life Viewer Source Code * Copyright (C) 2019, Linden Research, Inc. - * + * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License only. - * + * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * + * * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA * $/LicenseInfo$ */ diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 37dee9ac1d..286a730f5d 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -59,7 +59,7 @@ class ViewerManifest(LLManifest): # files during the build (see copy_w_viewer_manifest # and copy_l_viewer_manifest targets) return 'package' in self.args['actions'] - + def construct(self): super(ViewerManifest, self).construct() self.path(src="../../scripts/messages/message_template.msg", dst="app_settings/message_template.msg") @@ -87,7 +87,7 @@ class ViewerManifest(LLManifest): # ... and the entire image filters directory self.path("filters") - + # ... and the included spell checking dictionaries pkgdir = os.path.join(self.args['build'], os.pardir, 'packages') with self.prefix(src=pkgdir): @@ -260,14 +260,14 @@ class ViewerManifest(LLManifest): def app_name_oneword(self): return ''.join(self.app_name().split()) - + def icon_path(self): return "icons/" + self.channel_type() def extract_names(self,src): """Extract contributor names from source file, returns string""" try: - with open(src, 'r') as contrib_file: + with open(src, 'r') as contrib_file: lines = contrib_file.readlines() except IOError: print("Failed to open '%s'" % src) @@ -491,7 +491,7 @@ class Windows_x86_64_Manifest(ViewerManifest): raise Exception("Directories are not supported by test_CRT_and_copy_action()") else: print("Doesn't exist:", src) - + def construct(self): super().construct() @@ -543,7 +543,7 @@ class Windows_x86_64_Manifest(ViewerManifest): self.path2basename(os.path.join(os.pardir, 'llplugin', 'slplugin', self.args['configuration']), "slplugin.exe") - + # Get shared libs from the shared libs staging directory with self.prefix(src=os.path.join(self.args['build'], os.pardir, 'sharedlibs', self.args['buildtype'])): @@ -578,7 +578,7 @@ class Windows_x86_64_Manifest(ViewerManifest): # Vivox libraries self.path("vivoxsdk_x64.dll") self.path("ortp_x64.dll") - + # OpenSSL self.path("libcrypto-1_1-x64.dll") self.path("libssl-1_1-x64.dll") @@ -705,7 +705,7 @@ class Windows_x86_64_Manifest(ViewerManifest): self.path("plugins/") if not self.is_packaging_viewer(): - self.package_file = "copied_deps" + self.package_file = "copied_deps" def nsi_file_commands(self, install=True): def INSTDIR(path): @@ -764,7 +764,7 @@ class Windows_x86_64_Manifest(ViewerManifest): installer_file = self.installer_base_name() + '_Setup.exe' substitution_strings['installer_file'] = installer_file - + version_vars = """ !define INSTEXE "SLVersionChecker.exe" !define VERSION "%(version_short)s" @@ -773,7 +773,7 @@ class Windows_x86_64_Manifest(ViewerManifest): !define VERSION_REGISTRY "%(version_registry)s" !define VIEWER_EXE "%(final_exe)s" """ % substitution_strings - + if self.channel_type() == 'release': substitution_strings['caption'] = CHANNEL_VENDOR_BASE else: @@ -904,7 +904,7 @@ class Darwin_x86_64_Manifest(ViewerManifest): # yields a slightly smaller binary but makes crash # logs mostly useless. This may be desirable for the # final release. Or not. - if ("package" in self.args['actions'] or + if ("package" in self.args['actions'] or "unpacked" in self.args['actions']): self.run_command( ['strip', '-S', executable]) @@ -929,7 +929,7 @@ class Darwin_x86_64_Manifest(ViewerManifest): with self.prefix(src=relpkgdir, dst=""): self.path("libndofdev.dylib") - self.path("libhunspell-*.dylib") + self.path("libhunspell-*.dylib") with self.prefix(src_dst="cursors_mac"): self.path("*.tif") diff --git a/scripts/code_tools/fix_xml_indentations.py b/scripts/code_tools/fix_xml_indentations.py index 9c8a1fc04b..e317e4f7f6 100644 --- a/scripts/code_tools/fix_xml_indentations.py +++ b/scripts/code_tools/fix_xml_indentations.py @@ -72,7 +72,7 @@ def save_xml(tree, file_path, xml_decl, indent_text=False, indent_tab=False, rm_ if rm_space: xml_string = xml_string.replace(' />', '/>') - xml_decl = (xml_decl if (xml_decl and not rewrite_decl) + xml_decl = (xml_decl if (xml_decl and not rewrite_decl) else '') try: diff --git a/scripts/code_tools/modified-strings.sh b/scripts/code_tools/modified-strings.sh index 435dda3f5d..932b0a4bfc 100644 --- a/scripts/code_tools/modified-strings.sh +++ b/scripts/code_tools/modified-strings.sh @@ -38,11 +38,11 @@ do -h|--help) Action=USAGE ;; - + -v|--verbose) Verbose=true ;; - + ## ## Select the revision to compare against ## @@ -79,7 +79,7 @@ do break fi ;; - esac + esac shift # always consume 1 done @@ -107,10 +107,10 @@ then cat <] [] - where + where --verbose shows progress messages on stderr (the command takes a while, so this is reassuring) -r specifies a git revision (branch, tag, commit, or relative specifier) @@ -124,9 +124,9 @@ Usage: the path of a file that has a string change (columns 2 and 3 are empty for lines with a filename) name the name attribute of a string or label whose value changed - English value + English value the current value of the string or label whose value changed - for strings, newlines are changed to '\n' and tab characters are changed to '\t' + for strings, newlines are changed to '\n' and tab characters are changed to '\t' There is also a column for each of the language directories following the English. diff --git a/scripts/code_tools/modified_strings.py b/scripts/code_tools/modified_strings.py index 20ed1b0555..c777fc8c0d 100644 --- a/scripts/code_tools/modified_strings.py +++ b/scripts/code_tools/modified_strings.py @@ -49,7 +49,7 @@ into google sheets. If the --rev revision already contains a translation for the text, it will be included in the spreadsheet for reference. - + Normally you would want --rev_base to be the last revision to have translations added, and --rev to be the tip of the current project. You can find the last commit with translation work using "git log --grep INTL- | head" @@ -242,7 +242,7 @@ def find_deletions(mod_tree, base_tree, lang, args, f): mod_filename = transl_filename.replace("/xui/{}/".format(lang), "/xui/{}/".format(args.base_lang)) #print("checking",transl_filename,"against",mod_filename) try: - mod_blob = mod_tree[mod_filename] + mod_blob = mod_tree[mod_filename] except: print(" delete file", transl_filename, file=f) continue @@ -257,7 +257,7 @@ def find_deletions(mod_tree, base_tree, lang, args, f): if not elt_key in mod_dict: if lines == 0: print(" in file", transl_filename, file=f) - lines += 1 + lines += 1 print(" delete element", elt_key, file=f) else: transl_elt = transl_dict[elt_key] @@ -266,14 +266,14 @@ def find_deletions(mod_tree, base_tree, lang, args, f): if not a in mod_elt.attrib: if lines == 0: print(" in file", transl_filename, file=f) - lines += 1 + lines += 1 print(" delete attribute", a, "from", elt_key, file=f) if transl_elt.text and (not mod_elt.text): if lines == 0: print(" in file", transl_filename, file=f) - lines += 1 + lines += 1 print(" delete text from", elt_key, file=f) - + def save_translation_file(per_lang_data, aux_data, outfile): langs = sorted(per_lang_data.keys()) @@ -310,12 +310,12 @@ def save_translation_file(per_lang_data, aux_data, outfile): # Reference info, not for translation for aux, data in list(aux_data.items()): - df = pd.DataFrame(data, columns = ["Key", "Value"]) + df = pd.DataFrame(data, columns = ["Key", "Value"]) df.to_excel(writer, index=False, sheet_name=aux) worksheet = writer.sheets[aux] worksheet.set_column('A:A', 50, bold_wrap_format) worksheet.set_column('B:B', 80, wrap_format) - + print("Writing", outfile) writer.save() diff --git a/scripts/content_tools/anim_tool.py b/scripts/content_tools/anim_tool.py index 4a0773951e..07159a8052 100644 --- a/scripts/content_tools/anim_tool.py +++ b/scripts/content_tools/anim_tool.py @@ -92,7 +92,7 @@ class FilePacker(object): # Now pad what's left of str out to 'size' with nul bytes. buf = str + ("\000" * (size-len(str))) self.buffer.write(buf) - + class FileUnpacker(object): def __init__(self, filename): with open(filename,"rb") as f: @@ -103,7 +103,7 @@ class FileUnpacker(object): result = struct.unpack_from(fmt, self.buffer, self.offset) self.offset += struct.calcsize(fmt) return result - + def unpack_string(self, size=0): # Nonzero size means we must consider exactly the next 'size' # characters in self.buffer. @@ -131,7 +131,7 @@ def F32_to_U16(val, lower, upper): # make sure that the value is positive and normalized to <0, 1> val -= lower; val /= (upper - lower); - + # return the U16 return int(math.floor(val*U16MAX)) @@ -149,7 +149,7 @@ def U16_to_F32(ival, lower, upper): # make sure that zeroes come through as zero if abs(val) < max_error: val = 0.0 - return val; + return val; class RotKey(object): def __init__(self, time, duration, rot): @@ -185,7 +185,7 @@ class RotKey(object): fp.pack("1: @@ -117,7 +117,7 @@ def list_skel_tree(tree): for element in tree.getroot().iter(): if element.tag == "bone": print(element.get("name"),"-",element.get("support")) - + def validate_child_order(tree, ogtree, fix=False): unfixable = 0 @@ -182,7 +182,7 @@ def validate_skel_tree(tree, ogtree, reftree, fix=False): print("validate_skel_tree") (num_bones,num_cvs) = (0,0) unfixable = 0 - defaults = {"connected": "false", + defaults = {"connected": "false", "group": "Face" } for element in tree.getroot().iter(): @@ -232,7 +232,7 @@ def validate_skel_tree(tree, ogtree, reftree, fix=False): if element.get("support")=="extended": if element.get("pos") != element.get("pivot"): print("extended joint",element.get("name"),"has mismatched pos, pivot") - + if element.tag == "linden_skeleton": num_bones = int(element.get("num_bones")) @@ -253,7 +253,7 @@ def validate_skel_tree(tree, ogtree, reftree, fix=False): if fix and (unfixable > 0): print("BAD FILE:", unfixable,"errs could not be fixed") - + def slider_info(ladtree,skeltree): for param in ladtree.iter("param"): @@ -287,7 +287,7 @@ def slider_info(ladtree,skeltree): print(" Offset MaxX", offset_max[0]) print(" Offset MaxY", offset_max[1]) print(" Offset MaxZ", offset_max[2]) - + # Check contents of avatar_lad file relative to a specified skeleton def validate_lad_tree(ladtree,skeltree,orig_ladtree): print("validate_lad_tree") @@ -344,7 +344,7 @@ def validate_lad_tree(ladtree,skeltree,orig_ladtree): expected_offset = tuple([bone_offset[0],-bone_offset[1],bone_offset[2]]) if left_offset != expected_offset: print("offset mismatch between",bone_name,"and",left_name,"in param",param.get("id","-1")) - + drivers = {} for driven_param in ladtree.iter("driven"): driver = driven_param.getparent().getparent() @@ -380,7 +380,7 @@ def validate_lad_tree(ladtree,skeltree,orig_ladtree): print("removed",set(orig_message_ids) - set(message_ids)) else: print("message ids OK") - + def remove_joint_by_name(tree, name): print("remove joint:",name) elt = get_element_by_name(tree,name) @@ -395,7 +395,7 @@ def remove_joint_by_name(tree, name): elt[:] = [] print("parent now:",[e.get("name") for e in list(parent)]) elt = get_element_by_name(tree,name) - + def compare_skel_trees(atree,btree): diffs = {} realdiffs = {} @@ -513,7 +513,7 @@ if __name__ == "__main__": if ladtree and tree and args.slider_info: slider_info(ladtree,tree) - + if args.outfilename: f = open(args.outfilename,"w") print(etree.tostring(tree, pretty_print=True), file=f) #need update to get: , short_empty_elements=True) diff --git a/scripts/metrics/viewer_asset_logs.py b/scripts/metrics/viewer_asset_logs.py index bd996dff79..4fb9fd15b3 100644 --- a/scripts/metrics/viewer_asset_logs.py +++ b/scripts/metrics/viewer_asset_logs.py @@ -63,7 +63,7 @@ def update_stats(stats,rec): # handle fps record as special case pass else: - #print "field",field + #print "field",field stats.setdefault(field,{}) type_stats = stats.get(field) newcount = val["resp_count"] @@ -75,9 +75,9 @@ def update_stats(stats,rec): type_stats["sum_bytes"] = type_stats.get("sum_bytes",0) + val["resp_count"] * val.get("resp_mean_bytes",0) type_stats["enqueued"] = type_stats.get("enqueued",0) + val["enqueued"] type_stats["dequeued"] = type_stats.get("dequeued",0) + val["dequeued"] - - - + + + if __name__ == "__main__": parser = argparse.ArgumentParser(description="process metric xml files for viewer asset fetching") diff --git a/scripts/metrics/viewerstats.py b/scripts/metrics/viewerstats.py index e64343329c..41bc493aaa 100755 --- a/scripts/metrics/viewerstats.py +++ b/scripts/metrics/viewerstats.py @@ -144,7 +144,7 @@ def get_used_strings(root_dir): #if ext not in [".cpp", ".hpp", ".h", ".xml"]: # skipped_ext.add(ext) # continue - + full_name = os.path.join(dir_name,fname) with open(full_name,"r") as f: @@ -158,8 +158,8 @@ def get_used_strings(root_dir): print("skipped extensions", skipped_ext) print("got used_str", len(used_str)) return used_str - - + + if __name__ == "__main__": parser = argparse.ArgumentParser(description="process tab-separated table containing viewerstats logs") @@ -184,7 +184,7 @@ if __name__ == "__main__": if args.preferences: print("\nSETTINGS.XML") settings_sd = parse_settings_xml("settings.xml") - #for skey,svals in settings_sd.items(): + #for skey,svals in settings_sd.items(): # print skey, "=>", svals (all_str,_,_,_) = show_stats_by_key(recs,["preferences","settings"],settings_sd) print() @@ -211,16 +211,16 @@ if __name__ == "__main__": print("PREFIX_USED", len(prefix_used), ",".join(list(prefix_used))) print() unref_strings = unref_strings - prefix_used - + print("\nUNREF_IN_CODE " + str(len(unref_strings)) + "\n") print("\n".join(list(unref_strings))) settings_str = read_raw_settings_xml("settings.xml") # Do this via direct string munging to generate minimal changeset settings_edited = remove_settings(settings_str,unref_strings) write_raw_settings_xml("settings.xml.edit",settings_edited) - - - + + + diff --git a/scripts/template_verifier.py b/scripts/template_verifier.py index ee8492db5e..65850f7a28 100755 --- a/scripts/template_verifier.py +++ b/scripts/template_verifier.py @@ -73,8 +73,8 @@ from indra.ipc import tokenstream from indra.ipc import llmessage def getstatusall(command): - """ Like commands.getstatusoutput, but returns stdout and - stderr separately(to get around "killed by signal 15" getting + """ Like commands.getstatusoutput, but returns stdout and + stderr separately(to get around "killed by signal 15" getting included as part of the file). Also, works on Windows.""" (input, out, err) = os.popen3(command, 't') status = input.close() # send no input to the command @@ -257,7 +257,7 @@ http://wiki.secondlife.com/wiki/Template_verifier.py elif len(args) == 1: master_url = None current_filename = args[0] - print("master:", options.master_url) + print("master:", options.master_url) print("current:", current_filename) current_url = 'file://%s' % current_filename # nothing specified, use defaults for everything @@ -269,7 +269,7 @@ http://wiki.secondlife.com/wiki/Template_verifier.py if master_url is None: master_url = options.master_url - + if current_url is None: current_filename = local_template_filename() print("master:", options.master_url) @@ -307,7 +307,7 @@ http://wiki.secondlife.com/wiki/Template_verifier.py print("Syntax-checking the local template ONLY, no compatibility check is being run.") print("Cause: %s\n\n" % e) return 0 - + acceptable, compat = compare( master_parsed, current_parsed, options.mode) diff --git a/scripts/templates/template-cpp.cpp b/scripts/templates/template-cpp.cpp index 35d8441c87..8ee04942bf 100755 --- a/scripts/templates/template-cpp.cpp +++ b/scripts/templates/template-cpp.cpp @@ -1,4 +1,4 @@ -/** +/** * @file #filename#.cpp * @brief Implementation of #filename# * @author #getpass.getuser()#@lindenlab.com diff --git a/scripts/templates/template-h.h b/scripts/templates/template-h.h index ce7b4ddc87..d7677c256b 100755 --- a/scripts/templates/template-h.h +++ b/scripts/templates/template-h.h @@ -1,4 +1,4 @@ -/** +/** * @file #filename#.h * @brief Header file for #filename# * @author #getpass.getuser()#@lindenlab.com -- cgit v1.3 From 41cb778fb0a2918816965ccc0ece5d0080d5180a Mon Sep 17 00:00:00 2001 From: Brad Linden Date: Thu, 13 Jun 2024 17:37:03 -0700 Subject: Initial work setting up scheduled releases for develop branch. --- .github/workflows/tag-nightly.yaml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 .github/workflows/tag-nightly.yaml (limited to '.github/workflows') diff --git a/.github/workflows/tag-nightly.yaml b/.github/workflows/tag-nightly.yaml new file mode 100644 index 0000000000..8193d68f2f --- /dev/null +++ b/.github/workflows/tag-nightly.yaml @@ -0,0 +1,27 @@ +name: Tag Nightly Builds + +on: + # schedule event triggers always run on the default branch + # https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule + schedule: + - cron: "21 2 * * 2,4,6" # 2:21am UTC tues/thurs/sat == 7:21pm PDT mon/wed/fri -- see https://crontab.guru/#21_01_*_*_2,4,6 + workflow_dispatch: + +jobs: + tag-develop-nightly: + runs-on: ubuntu-latest + steps: + - name: Setup Date Env + run: | + echo NIGHTLY_DATE=$(date --rfc-3339=date) >> ${GITHUB_ENV} + - name: Update Tag + uses: actions/github-script@v7.0.1 + with: + github-token: ${{ secrets.GITHUB_NIGHTLY_TOKEN }} + script: | + github.rest.git.createRef( + owner: context.repo.owner, + repo: context.repo.repo, + ref: "refs/tags/Second_Life_Develop#${{ env.NIGHTLY_DATE }}", + sha: context.sha + ) -- cgit v1.3 From b9f287815a39c69f3db5212f06a295d1e5dbb6da Mon Sep 17 00:00:00 2001 From: Brad Linden Date: Thu, 13 Jun 2024 17:52:34 -0700 Subject: Add new viewer_channel detection for develop branch --- .github/workflows/build.yaml | 3 +++ 1 file changed, 3 insertions(+) (limited to '.github/workflows') diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 57faafc042..f9b0bdc309 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -231,6 +231,9 @@ jobs: elif [[ "$prefix" == "release" || "$prefix" == "main" ]]; then export viewer_channel="Second Life Release" + elif [[ "$branch" == "develop" ]]; + then + export viewer_channel="Second Life Develop" else export viewer_channel="Second Life Test" fi -- cgit v1.3 From 0e1e1685d4b94d32d32641f4d241dea3a7d0980d Mon Sep 17 00:00:00 2001 From: Brad Linden Date: Thu, 13 Jun 2024 18:14:21 -0700 Subject: Skip the actual tag update step gracefully until we have proper tokens set up --- .github/workflows/tag-nightly.yaml | 1 + 1 file changed, 1 insertion(+) (limited to '.github/workflows') diff --git a/.github/workflows/tag-nightly.yaml b/.github/workflows/tag-nightly.yaml index 8193d68f2f..bb9e7094ec 100644 --- a/.github/workflows/tag-nightly.yaml +++ b/.github/workflows/tag-nightly.yaml @@ -16,6 +16,7 @@ jobs: echo NIGHTLY_DATE=$(date --rfc-3339=date) >> ${GITHUB_ENV} - name: Update Tag uses: actions/github-script@v7.0.1 + if: ${{ secrets.GITHUB_NIGHTLY_TOKEN != "" }} with: github-token: ${{ secrets.GITHUB_NIGHTLY_TOKEN }} script: | -- cgit v1.3 From 84a221e7dd408bf123be2adaa9c4e33ba4509a0d Mon Sep 17 00:00:00 2001 From: Brad Linden Date: Mon, 17 Jun 2024 17:41:53 -0700 Subject: Renamed tag-nightly.yaml to generalize it to other tags when using workflow_dispatch --- .github/workflows/tag-nightly.yaml | 28 ---------------------------- .github/workflows/tag-release.yaml | 28 ++++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 28 deletions(-) delete mode 100644 .github/workflows/tag-nightly.yaml create mode 100644 .github/workflows/tag-release.yaml (limited to '.github/workflows') diff --git a/.github/workflows/tag-nightly.yaml b/.github/workflows/tag-nightly.yaml deleted file mode 100644 index bb9e7094ec..0000000000 --- a/.github/workflows/tag-nightly.yaml +++ /dev/null @@ -1,28 +0,0 @@ -name: Tag Nightly Builds - -on: - # schedule event triggers always run on the default branch - # https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule - schedule: - - cron: "21 2 * * 2,4,6" # 2:21am UTC tues/thurs/sat == 7:21pm PDT mon/wed/fri -- see https://crontab.guru/#21_01_*_*_2,4,6 - workflow_dispatch: - -jobs: - tag-develop-nightly: - runs-on: ubuntu-latest - steps: - - name: Setup Date Env - run: | - echo NIGHTLY_DATE=$(date --rfc-3339=date) >> ${GITHUB_ENV} - - name: Update Tag - uses: actions/github-script@v7.0.1 - if: ${{ secrets.GITHUB_NIGHTLY_TOKEN != "" }} - with: - github-token: ${{ secrets.GITHUB_NIGHTLY_TOKEN }} - script: | - github.rest.git.createRef( - owner: context.repo.owner, - repo: context.repo.repo, - ref: "refs/tags/Second_Life_Develop#${{ env.NIGHTLY_DATE }}", - sha: context.sha - ) diff --git a/.github/workflows/tag-release.yaml b/.github/workflows/tag-release.yaml new file mode 100644 index 0000000000..bb9e7094ec --- /dev/null +++ b/.github/workflows/tag-release.yaml @@ -0,0 +1,28 @@ +name: Tag Nightly Builds + +on: + # schedule event triggers always run on the default branch + # https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule + schedule: + - cron: "21 2 * * 2,4,6" # 2:21am UTC tues/thurs/sat == 7:21pm PDT mon/wed/fri -- see https://crontab.guru/#21_01_*_*_2,4,6 + workflow_dispatch: + +jobs: + tag-develop-nightly: + runs-on: ubuntu-latest + steps: + - name: Setup Date Env + run: | + echo NIGHTLY_DATE=$(date --rfc-3339=date) >> ${GITHUB_ENV} + - name: Update Tag + uses: actions/github-script@v7.0.1 + if: ${{ secrets.GITHUB_NIGHTLY_TOKEN != "" }} + with: + github-token: ${{ secrets.GITHUB_NIGHTLY_TOKEN }} + script: | + github.rest.git.createRef( + owner: context.repo.owner, + repo: context.repo.repo, + ref: "refs/tags/Second_Life_Develop#${{ env.NIGHTLY_DATE }}", + sha: context.sha + ) -- cgit v1.3 From b9a8b3b240512bdf5bbb99f6bc581872fead86b8 Mon Sep 17 00:00:00 2001 From: Brad Linden Date: Mon, 17 Jun 2024 17:42:30 -0700 Subject: Update naming and add options to tag-release workflow_dispatch. --- .github/workflows/tag-release.yaml | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to '.github/workflows') diff --git a/.github/workflows/tag-release.yaml b/.github/workflows/tag-release.yaml index bb9e7094ec..8bb498219d 100644 --- a/.github/workflows/tag-release.yaml +++ b/.github/workflows/tag-release.yaml @@ -1,14 +1,30 @@ -name: Tag Nightly Builds +name: Tag a Build on: # schedule event triggers always run on the default branch # https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule schedule: + # run "nightly" builds on default branch every mon/wed/fri - cron: "21 2 * * 2,4,6" # 2:21am UTC tues/thurs/sat == 7:21pm PDT mon/wed/fri -- see https://crontab.guru/#21_01_*_*_2,4,6 workflow_dispatch: + inputs: + - channel: + description: "Channel to configure the build" + required: true + type: choice + default: "Test" + options: + - "Test" + - "Develop" + - "Project" + - "Release" + - project: + description: "Project Name (used for channel name in project builds, and tag name for all builds)" + default: "hippo" + # TODO - add an input for selecting another sha to build other than head of branch jobs: - tag-develop-nightly: + tag-release: runs-on: ubuntu-latest steps: - name: Setup Date Env -- cgit v1.3 From dd64c39d64ef0b829952dac5c4ef61c51671b9d4 Mon Sep 17 00:00:00 2001 From: Brad Linden Date: Mon, 17 Jun 2024 17:55:29 -0700 Subject: Pass through input channel to select the tag channel name --- .github/workflows/build.yaml | 6 ------ .github/workflows/tag-release.yaml | 6 ++++-- 2 files changed, 4 insertions(+), 8 deletions(-) (limited to '.github/workflows') diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index f9b0bdc309..aa504f51d8 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -1,12 +1,6 @@ name: Build on: - workflow_dispatch: - inputs: - release_run: - type: boolean - description: Do a release of this build - default: false pull_request: push: branches: ["main", "release/*", "project/*"] diff --git a/.github/workflows/tag-release.yaml b/.github/workflows/tag-release.yaml index 8bb498219d..2a375e0375 100644 --- a/.github/workflows/tag-release.yaml +++ b/.github/workflows/tag-release.yaml @@ -27,8 +27,10 @@ jobs: tag-release: runs-on: ubuntu-latest steps: - - name: Setup Date Env + - name: Setup Env Vars run: | + CHANNEL="${{ inputs.channel }}" + echo VIEWER_CHANNEL="Second_Life_${CHANNEL:-Develop}" >> ${GITHUB_ENV} echo NIGHTLY_DATE=$(date --rfc-3339=date) >> ${GITHUB_ENV} - name: Update Tag uses: actions/github-script@v7.0.1 @@ -39,6 +41,6 @@ jobs: github.rest.git.createRef( owner: context.repo.owner, repo: context.repo.repo, - ref: "refs/tags/Second_Life_Develop#${{ env.NIGHTLY_DATE }}", + ref: "refs/tags/${{ env.VIEWER_CHANNEL }}#${{ env.NIGHTLY_DATE }}", sha: context.sha ) -- cgit v1.3 From 352dff68307ba52ed124aea532e9a49048d8046a Mon Sep 17 00:00:00 2001 From: Brad Linden <46733234+brad-linden@users.noreply.github.com> Date: Mon, 17 Jun 2024 18:32:24 -0700 Subject: Attempt to fix workflow syntax in new tag-release workflow (#1792) --- .github/workflows/tag-release.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to '.github/workflows') diff --git a/.github/workflows/tag-release.yaml b/.github/workflows/tag-release.yaml index 2a375e0375..c803d4c6d0 100644 --- a/.github/workflows/tag-release.yaml +++ b/.github/workflows/tag-release.yaml @@ -8,17 +8,17 @@ on: - cron: "21 2 * * 2,4,6" # 2:21am UTC tues/thurs/sat == 7:21pm PDT mon/wed/fri -- see https://crontab.guru/#21_01_*_*_2,4,6 workflow_dispatch: inputs: - - channel: + channel: description: "Channel to configure the build" required: true type: choice default: "Test" options: - - "Test" - - "Develop" - - "Project" - - "Release" - - project: + - "Test" + - "Develop" + - "Project" + - "Release" + project: description: "Project Name (used for channel name in project builds, and tag name for all builds)" default: "hippo" # TODO - add an input for selecting another sha to build other than head of branch -- cgit v1.3 From 3da16d1899324b358ac0d27ddd99bf8214f6fb54 Mon Sep 17 00:00:00 2001 From: Brad Linden Date: Mon, 17 Jun 2024 18:38:00 -0700 Subject: Attempt to fix tag-release workflow by moving conditional secrets usage into env --- .github/workflows/tag-release.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to '.github/workflows') diff --git a/.github/workflows/tag-release.yaml b/.github/workflows/tag-release.yaml index c803d4c6d0..b73ec502f1 100644 --- a/.github/workflows/tag-release.yaml +++ b/.github/workflows/tag-release.yaml @@ -26,6 +26,8 @@ on: jobs: tag-release: runs-on: ubuntu-latest + env: + GITHUB_TAG_TOKEN: ${{ secrets.GITHUB_TAG_TOKEN }} steps: - name: Setup Env Vars run: | @@ -34,9 +36,9 @@ jobs: echo NIGHTLY_DATE=$(date --rfc-3339=date) >> ${GITHUB_ENV} - name: Update Tag uses: actions/github-script@v7.0.1 - if: ${{ secrets.GITHUB_NIGHTLY_TOKEN != "" }} + if: env.GITHUB_TAG_TOKEN with: - github-token: ${{ secrets.GITHUB_NIGHTLY_TOKEN }} + github-token: ${{ env.GITHUB_TAG_TOKEN }} script: | github.rest.git.createRef( owner: context.repo.owner, -- cgit v1.3 From f5659945b5a177b325f98b6d598af47a214e7abc Mon Sep 17 00:00:00 2001 From: Brad Linden Date: Mon, 17 Jun 2024 18:54:45 -0700 Subject: Fix secret name since GITHUB_ prefix is reserved --- .github/workflows/tag-release.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to '.github/workflows') diff --git a/.github/workflows/tag-release.yaml b/.github/workflows/tag-release.yaml index b73ec502f1..2083b414f5 100644 --- a/.github/workflows/tag-release.yaml +++ b/.github/workflows/tag-release.yaml @@ -27,7 +27,7 @@ jobs: tag-release: runs-on: ubuntu-latest env: - GITHUB_TAG_TOKEN: ${{ secrets.GITHUB_TAG_TOKEN }} + LL_TAG_RELEASE_TOKEN: ${{ secrets.LL_TAG_RELEASE_TOKEN }} steps: - name: Setup Env Vars run: | @@ -36,9 +36,9 @@ jobs: echo NIGHTLY_DATE=$(date --rfc-3339=date) >> ${GITHUB_ENV} - name: Update Tag uses: actions/github-script@v7.0.1 - if: env.GITHUB_TAG_TOKEN + if: env.LL_TAG_RELEASE_TOKEN with: - github-token: ${{ env.GITHUB_TAG_TOKEN }} + github-token: ${{ env.LL_TAG_RELEASE_TOKEN }} script: | github.rest.git.createRef( owner: context.repo.owner, -- cgit v1.3 From 05efb1494ddf2b3e68bc98835dc353f01482c25e Mon Sep 17 00:00:00 2001 From: Brad Linden Date: Mon, 17 Jun 2024 18:57:26 -0700 Subject: Fix yaml indentation of javascript snippet in tag-release workflow --- .github/workflows/tag-release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '.github/workflows') diff --git a/.github/workflows/tag-release.yaml b/.github/workflows/tag-release.yaml index 2083b414f5..cb9babaea8 100644 --- a/.github/workflows/tag-release.yaml +++ b/.github/workflows/tag-release.yaml @@ -45,4 +45,4 @@ jobs: repo: context.repo.repo, ref: "refs/tags/${{ env.VIEWER_CHANNEL }}#${{ env.NIGHTLY_DATE }}", sha: context.sha - ) + ) -- cgit v1.3 From e165be000781034c0d56659f3f021b1efb323108 Mon Sep 17 00:00:00 2001 From: Brad Linden Date: Tue, 18 Jun 2024 14:23:43 -0700 Subject: Attempt to use provided GITHUB_TOKEN and generate tag id from inputs --- .github/workflows/tag-release.yaml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to '.github/workflows') diff --git a/.github/workflows/tag-release.yaml b/.github/workflows/tag-release.yaml index cb9babaea8..24d8fbb8bf 100644 --- a/.github/workflows/tag-release.yaml +++ b/.github/workflows/tag-release.yaml @@ -26,23 +26,22 @@ on: jobs: tag-release: runs-on: ubuntu-latest - env: - LL_TAG_RELEASE_TOKEN: ${{ secrets.LL_TAG_RELEASE_TOKEN }} steps: - name: Setup Env Vars run: | CHANNEL="${{ inputs.channel }}" echo VIEWER_CHANNEL="Second_Life_${CHANNEL:-Develop}" >> ${GITHUB_ENV} - echo NIGHTLY_DATE=$(date --rfc-3339=date) >> ${GITHUB_ENV} + NIGHTLY_DATE=$(date --rfc-3339=date) + echo NIGHTLY_DATE=${NIGHTLY_DATE} >> ${GITHUB_ENV} + echo TAG_ID="${{ github.sha }}-${{ inputs.project || '${NIGHTLY_DATE}' }}" - name: Update Tag uses: actions/github-script@v7.0.1 - if: env.LL_TAG_RELEASE_TOKEN with: - github-token: ${{ env.LL_TAG_RELEASE_TOKEN }} + github-token: ${{ secrets.GITHUB_TOKEN }} script: | github.rest.git.createRef( owner: context.repo.owner, repo: context.repo.repo, - ref: "refs/tags/${{ env.VIEWER_CHANNEL }}#${{ env.NIGHTLY_DATE }}", + ref: "refs/tags/${{ env.VIEWER_CHANNEL }}#${{ env.TAG_ID }}", sha: context.sha ) -- cgit v1.3 From aa6161ca94d5bd8640840f981ca8b243b553acaa Mon Sep 17 00:00:00 2001 From: Brad Linden Date: Tue, 18 Jun 2024 14:35:22 -0700 Subject: Shorten SHA value used in tag id and attempt to fix js/yaml syntax error --- .github/workflows/tag-release.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to '.github/workflows') diff --git a/.github/workflows/tag-release.yaml b/.github/workflows/tag-release.yaml index 24d8fbb8bf..18fe686d36 100644 --- a/.github/workflows/tag-release.yaml +++ b/.github/workflows/tag-release.yaml @@ -33,15 +33,15 @@ jobs: echo VIEWER_CHANNEL="Second_Life_${CHANNEL:-Develop}" >> ${GITHUB_ENV} NIGHTLY_DATE=$(date --rfc-3339=date) echo NIGHTLY_DATE=${NIGHTLY_DATE} >> ${GITHUB_ENV} - echo TAG_ID="${{ github.sha }}-${{ inputs.project || '${NIGHTLY_DATE}' }}" + echo TAG_ID="$(echo ${{ github.sha }} | cut -c1-8)-${{ inputs.project || '${NIGHTLY_DATE}' }}" - name: Update Tag uses: actions/github-script@v7.0.1 with: github-token: ${{ secrets.GITHUB_TOKEN }} script: | - github.rest.git.createRef( + github.rest.git.createRef({ owner: context.repo.owner, repo: context.repo.repo, ref: "refs/tags/${{ env.VIEWER_CHANNEL }}#${{ env.TAG_ID }}", sha: context.sha - ) + }) -- cgit v1.3 From 32b912af9a821b0edaebb75d037da05df6ff25e5 Mon Sep 17 00:00:00 2001 From: Brad Linden Date: Thu, 20 Jun 2024 17:15:16 -0700 Subject: Make sure TAG_ID actually gets added to GITHUB_ENV --- .github/workflows/tag-release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '.github/workflows') diff --git a/.github/workflows/tag-release.yaml b/.github/workflows/tag-release.yaml index 18fe686d36..65d1d43a83 100644 --- a/.github/workflows/tag-release.yaml +++ b/.github/workflows/tag-release.yaml @@ -33,7 +33,7 @@ jobs: echo VIEWER_CHANNEL="Second_Life_${CHANNEL:-Develop}" >> ${GITHUB_ENV} NIGHTLY_DATE=$(date --rfc-3339=date) echo NIGHTLY_DATE=${NIGHTLY_DATE} >> ${GITHUB_ENV} - echo TAG_ID="$(echo ${{ github.sha }} | cut -c1-8)-${{ inputs.project || '${NIGHTLY_DATE}' }}" + echo TAG_ID="$(echo ${{ github.sha }} | cut -c1-8)-${{ inputs.project || '${NIGHTLY_DATE}' }}" >> ${GITHUB_ENV} - name: Update Tag uses: actions/github-script@v7.0.1 with: -- cgit v1.3 From 57e78ed43b61864a6b8a54df95d8823daaeb5fe8 Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev Date: Tue, 23 Jul 2024 11:22:09 +0300 Subject: viewer#2043 bugsplat symbol upload update --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '.github/workflows') diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index aa504f51d8..68fdc3c2bf 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -395,7 +395,7 @@ jobs: password: ${{ env.BUGSPLAT_PASS }} database: "SecondLife_Viewer_2018" channel: ${{ needs.build.outputs.viewer_channel }} - version: ${{ needs.build.outputs.viewer_version }} + version: ${{ needs.build.outputs.viewer_version }} (${{ needs.build.outputs.viewer_version }}) release: needs: [setvar, build, sign-and-package-windows, sign-and-package-mac] -- cgit v1.3 From 60d91f8e7551f3005626ec30f9f760e59e6a92c7 Mon Sep 17 00:00:00 2001 From: Bennett Goble Date: Sun, 28 Jul 2024 22:38:28 -0700 Subject: Fix PR builds from forks Build ReleaseOS when a PR is from a fork rather than Release. This fixes OSS PR builds which, until now, have been failing because they cannot access secrets. --- .github/workflows/build.yaml | 65 ++++++++++++++++++++------------------------ 1 file changed, 29 insertions(+), 36 deletions(-) (limited to '.github/workflows') diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 68fdc3c2bf..f0a48f9b69 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -7,14 +7,14 @@ on: tags: ["Second_Life*"] jobs: - # The whole point of the setvar job is that we want to set a variable once - # that will be consumed by multiple subsequent jobs. We tried setting it in - # the global env, but a job.env can't directly reference the global env - # context. - setvar: + # The whole point of the setup job is that we want to set variables once + # that will be consumed by multiple subsequent jobs. + setup: runs-on: ubuntu-latest outputs: release_run: ${{ steps.setvar.outputs.release_run }} + configurations: ${{ steps.setvar.outputs.configurations }} + bugsplat_db: ${{ steps.setvar.outputs.bugsplat_db }} env: # Build with a tag like "Second_Life#abcdef0" to generate a release page # (used for builds we are planning to deploy). @@ -23,32 +23,34 @@ jobs: # its value when false is "false", which is interpreted as true. RELEASE_RUN: ${{ (github.event.inputs.release_run || github.ref_type == 'tag' && startsWith(github.ref_name, 'Second_Life')) && 'Y' || '' }} steps: - - name: Set Variable + - name: Set Variables id: setvar shell: bash run: | echo "release_run=$RELEASE_RUN" >> "$GITHUB_OUTPUT" + if [[ "$FROM_FORK" == "true" ]]; then + # PR from fork; don't build with Bugsplat, proprietary libs + echo 'configurations=["ReleaseOS"]' >> $GITHUB_OUTPUT + echo "bugsplat_db=" >> $GITHUB_OUTPUT + else + echo 'configurations=["Release"]' >> $GITHUB_OUTPUT + echo "bugsplat_db=SecondLife_Viewer_2018" >> $GITHUB_OUTPUT + fi build: - needs: setvar + needs: setup strategy: matrix: runner: [windows-large, macos-12-xl] - configuration: [Release] - Linden: [true] - include: - - runner: macos-12-xl - developer_dir: "/Applications/Xcode_14.0.1.app/Contents/Developer" - - runner: windows-large - configuration: ReleaseOS - Linden: false + configuration: ${{ fromJSON(needs.setup.outputs.configurations) }} runs-on: ${{ matrix.runner }} outputs: viewer_channel: ${{ steps.build.outputs.viewer_channel }} viewer_version: ${{ steps.build.outputs.viewer_version }} viewer_branch: ${{ steps.which-branch.outputs.branch }} relnotes: ${{ steps.which-branch.outputs.relnotes }} - imagename: ${{ steps.build.outputs.imagename }} + imagename: ${{ steps.build.outputs.imagename }} + configuration: ${{ matrix.configuration }} env: AUTOBUILD_ADDRSIZE: 64 AUTOBUILD_BUILD_ID: ${{ github.run_id }} @@ -61,12 +63,12 @@ jobs: # autobuild-package.xml. AUTOBUILD_VCS_INFO: "true" AUTOBUILD_VSVER: "170" - DEVELOPER_DIR: ${{ matrix.developer_dir }} + DEVELOPER_DIR: "/Applications/Xcode_14.0.1.app/Contents/Developer" # Ensure that Linden viewer builds engage Bugsplat. - BUGSPLAT_DB: ${{ matrix.Linden && 'SecondLife_Viewer_2018' || '' }} + BUGSPLAT_DB: ${{ needs.setup.outputs.bugsplat_db }} # Run BUILD steps for Release configuration. # Run BUILD steps for ReleaseOS configuration only for release runs. - BUILD: ${{ (matrix.Linden || needs.setvar.outputs.release_run) && 'Y' || '' }} + BUILD: ${{ needs.setup.outputs.build }} build_coverity: false build_log_dir: ${{ github.workspace }}/.logs build_viewer: true @@ -85,19 +87,16 @@ jobs: variants: ${{ matrix.configuration }} steps: - name: Checkout code - if: env.BUILD uses: actions/checkout@v4 with: ref: ${{ github.event.pull_request.head.sha || github.sha }} - name: Setup python - if: env.BUILD uses: actions/setup-python@v5 with: python-version: "3.11" - name: Checkout build variables - if: env.BUILD uses: actions/checkout@v4 with: repository: secondlife/build-variables @@ -105,19 +104,16 @@ jobs: path: .build-variables - name: Checkout master-message-template - if: env.BUILD uses: actions/checkout@v4 with: repository: secondlife/master-message-template path: .master-message-template - name: Install autobuild and python dependencies - if: env.BUILD run: pip3 install autobuild llsd - name: Cache autobuild packages id: cache-installables - if: env.BUILD uses: actions/cache@v4 with: path: .autobuild-installables @@ -127,19 +123,17 @@ jobs: ${{ runner.os }}-64- - name: Install windows dependencies - if: env.BUILD && runner.os == 'Windows' + if: runner.os == 'Windows' run: choco install nsis-unicode - name: Determine source branch id: which-branch - if: env.BUILD uses: secondlife/viewer-build-util/which-branch@v2 with: token: ${{ github.token }} - name: Build id: build - if: env.BUILD shell: bash env: AUTOBUILD_VCS_BRANCH: ${{ steps.which-branch.outputs.branch }} @@ -265,7 +259,7 @@ jobs: echo "artifact=$RUNNER_OS$cfg_suffix" >> $GITHUB_OUTPUT - name: Upload executable - if: matrix.Linden && steps.build.outputs.viewer_app + if: matrix.configuration == 'Release' && steps.build.outputs.viewer_app uses: actions/upload-artifact@v4 with: name: "${{ steps.build.outputs.artifact }}-app" @@ -275,15 +269,13 @@ jobs: # The other upload of nontrivial size is the symbol file. Use a distinct # artifact for that too. - name: Upload symbol file - if: matrix.Linden uses: actions/upload-artifact@v4 + if: matrix.configuration == 'Release' with: name: "${{ steps.build.outputs.artifact }}-symbols" - path: | - ${{ steps.build.outputs.symbolfile }} + path: ${{ steps.build.outputs.symbolfile }} - name: Upload metadata - if: matrix.Linden uses: actions/upload-artifact@v4 with: name: "${{ steps.build.outputs.artifact }}-metadata" @@ -294,7 +286,7 @@ jobs: - name: Upload physics package uses: actions/upload-artifact@v4 # should only be set for viewer-private - if: matrix.Linden && steps.build.outputs.physicstpv + if: matrix.configuration == 'Release' && steps.build.outputs.physicstpv with: name: "${{ steps.build.outputs.artifact }}-physics" # emitted by build.sh, zero or one lines @@ -385,6 +377,7 @@ jobs: BUGSPLAT_USER: ${{ secrets.BUGSPLAT_USER }} BUGSPLAT_PASS: ${{ secrets.BUGSPLAT_PASS }} needs: build + if: needs.build.outputs.configuration == 'Release' runs-on: ubuntu-latest steps: - name: Post Mac symbols @@ -398,9 +391,9 @@ jobs: version: ${{ needs.build.outputs.viewer_version }} (${{ needs.build.outputs.viewer_version }}) release: - needs: [setvar, build, sign-and-package-windows, sign-and-package-mac] + needs: [setup, build, sign-and-package-windows, sign-and-package-mac] runs-on: ubuntu-latest - if: needs.setvar.outputs.release_run + if: needs.setup.outputs.release_run steps: - uses: actions/download-artifact@v4 with: -- cgit v1.3 From a247902e3dd7c9fa566b9ecd97845419a82c1afe Mon Sep 17 00:00:00 2001 From: Bennett Goble Date: Mon, 29 Jul 2024 09:52:59 -0700 Subject: build.yaml: Remove unused BUILD variable --- .github/workflows/build.yaml | 3 --- 1 file changed, 3 deletions(-) (limited to '.github/workflows') diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index f0a48f9b69..b385e3ba12 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -66,9 +66,6 @@ jobs: DEVELOPER_DIR: "/Applications/Xcode_14.0.1.app/Contents/Developer" # Ensure that Linden viewer builds engage Bugsplat. BUGSPLAT_DB: ${{ needs.setup.outputs.bugsplat_db }} - # Run BUILD steps for Release configuration. - # Run BUILD steps for ReleaseOS configuration only for release runs. - BUILD: ${{ needs.setup.outputs.build }} build_coverity: false build_log_dir: ${{ github.workspace }}/.logs build_viewer: true -- cgit v1.3 From dfa7d60a72fbf2705d0240dd73ca78ddda5db56d Mon Sep 17 00:00:00 2001 From: Signal Linden Date: Tue, 30 Jul 2024 10:09:49 -0700 Subject: build.yaml: Fix FROM_FORK value, ReleaseOS PR builds (#2147) --- .github/workflows/build.yaml | 1 + build.sh | 19 ++++++++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) (limited to '.github/workflows') diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index b385e3ba12..fd3b1e0e0a 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -22,6 +22,7 @@ jobs: # important to ensure it's the empty string when false. If you omit || '', # its value when false is "false", which is interpreted as true. RELEASE_RUN: ${{ (github.event.inputs.release_run || github.ref_type == 'tag' && startsWith(github.ref_name, 'Second_Life')) && 'Y' || '' }} + FROM_FORK: ${{ github.event.pull_request.head.repo.organization != 'secondlife' }} steps: - name: Set Variables id: setvar diff --git a/build.sh b/build.sh index 74148f455c..2316f5e558 100755 --- a/build.sh +++ b/build.sh @@ -146,12 +146,21 @@ pre_build() && [ -r "$master_message_template_checkout/message_template.msg" ] \ && template_verifier_master_url="-DTEMPLATE_VERIFIER_MASTER_URL=file://$master_message_template_checkout/message_template.msg" - RELEASE_CRASH_REPORTING=ON - HAVOK=ON + RELEASE_CRASH_REPORTING=OFF + HAVOK=OFF SIGNING=() - if [[ "$arch" == "Darwin" && "$variant" == "Release" ]] - then SIGNING=("-DENABLE_SIGNING:BOOL=YES" \ - "-DSIGNING_IDENTITY:STRING=Developer ID Application: Linden Research, Inc.") + if [[ "$variant" != *OS ]] + then + # Proprietary builds + + RELEASE_CRASH_REPORTING=ON + HAVOK=ON + + if [[ "$arch" == "Darwin" ]] + then + SIGNING=("-DENABLE_SIGNING:BOOL=YES" \ + "-DSIGNING_IDENTITY:STRING=Developer ID Application: Linden Research, Inc.") + fi fi if [ "${RELEASE_CRASH_REPORTING:-}" != "OFF" ] -- cgit v1.3 From 01688e52165b66962dcd13c78aa27c68fbfb2a8b Mon Sep 17 00:00:00 2001 From: Andrey Lihatskiy Date: Fri, 2 Aug 2024 20:48:06 +0300 Subject: Use dedicated property to determine if build is called from a fork (#2183) --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '.github/workflows') diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index fd3b1e0e0a..e54eb170af 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -22,7 +22,7 @@ jobs: # important to ensure it's the empty string when false. If you omit || '', # its value when false is "false", which is interpreted as true. RELEASE_RUN: ${{ (github.event.inputs.release_run || github.ref_type == 'tag' && startsWith(github.ref_name, 'Second_Life')) && 'Y' || '' }} - FROM_FORK: ${{ github.event.pull_request.head.repo.organization != 'secondlife' }} + FROM_FORK: ${{ github.event.pull_request.head.repo.fork }} steps: - name: Set Variables id: setvar -- cgit v1.3 From 293187e04b5dfbc002fd694b75ffdca4b2fdbc8e Mon Sep 17 00:00:00 2001 From: Roxie Linden Date: Mon, 5 Aug 2024 18:17:03 -0700 Subject: Build mac symbols for multiple binaries/dynamic libraries and upload them all to bugsplat --- .github/workflows/build.yaml | 16 ++++++++++++++-- build.sh | 4 ++-- indra/cmake/Linking.cmake | 1 + indra/llwebrtc/CMakeLists.txt | 2 ++ 4 files changed, 19 insertions(+), 4 deletions(-) (limited to '.github/workflows') diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 57faafc042..c2abc503bb 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -390,15 +390,27 @@ jobs: needs: build runs-on: ubuntu-latest steps: + - name: Download Mac Symbols + if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS + uses: actions/download-artifact@v4 + with: + name: macOS-symbols + path: _artifacts + - name: Unpack Mac Symbols + run: | + mkdir _extracted + tar -xJf ${{ needs.build.outputs.viewer_channel }}.sym.tar.gz -C _extracted - name: Post Mac symbols if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS - uses: secondlife/viewer-build-util/post-bugsplat-mac@v2 + uses: Bugsplat-Git/symbol-upload@v9.1.1 with: username: ${{ env.BUGSPLAT_USER }} password: ${{ env.BUGSPLAT_PASS }} database: "SecondLife_Viewer_2018" - channel: ${{ needs.build.outputs.viewer_channel }} + application: ${{ needs.build.outputs.viewer_channel }} version: ${{ needs.build.outputs.viewer_version }} + directory: _extracted + files: "**/*.dSYM" release: needs: [setvar, build, sign-and-package-windows, sign-and-package-mac] diff --git a/build.sh b/build.sh index e025b73170..1a7ef1a941 100755 --- a/build.sh +++ b/build.sh @@ -527,8 +527,8 @@ then if [ "${RELEASE_CRASH_REPORTING:-}" != "OFF" ] then # BugSplat wants to see xcarchive.zip - # e.g. build-darwin-x86_64/newview/Release/Second Life Test.xcarchive.zip - symbol_file="${build_dir}/newview/${variant}/${viewer_channel}.xcarchive.zip" + # e.g. build-darwin-x86_64/newview/Release/Second Life Test.sym.tar.gz + symbol_file="${build_dir}/newview/${variant}/${viewer_channel}.sym.tar.gz if [[ ! -f "$symbol_file" ]] then # symbol tarball we prep for (e.g.) Breakpad diff --git a/indra/cmake/Linking.cmake b/indra/cmake/Linking.cmake index 0ab30d0800..a5b8767923 100644 --- a/indra/cmake/Linking.cmake +++ b/indra/cmake/Linking.cmake @@ -19,6 +19,7 @@ if (WINDOWS OR DARWIN ) endif() else() set(SHARED_LIB_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs/$,$,>) + set(SYMBOLS_STAGING_DIR ${CMAKE_BINARY_DIR}/symbols/$,$,>) endif() if( DARWIN ) diff --git a/indra/llwebrtc/CMakeLists.txt b/indra/llwebrtc/CMakeLists.txt index fd1788c5d4..a8d23b461a 100644 --- a/indra/llwebrtc/CMakeLists.txt +++ b/indra/llwebrtc/CMakeLists.txt @@ -41,6 +41,8 @@ if (WINDOWS) iphlpapi) elseif (DARWIN) target_link_libraries(llwebrtc PRIVATE ll::webrtc) + set_target_properties(llwebrtc PROPERTIES XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf-with-dsym" + XCODE_ATTRIBUTE_DWARF_DSYM_FOLDER_PATH "${SYMBOLS_STAGING_DIR}") elseif (LINUX) target_link_libraries(llwebrtc PRIVATE ll::webrtc) endif (WINDOWS) -- cgit v1.3 From 07573f7e10a9ce4df2c2a0f6c6eb5f0935da57a6 Mon Sep 17 00:00:00 2001 From: Roxie Linden Date: Mon, 5 Aug 2024 23:16:48 -0700 Subject: allow paths with spaces --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '.github/workflows') diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index c2abc503bb..cf14bac0a2 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -399,7 +399,7 @@ jobs: - name: Unpack Mac Symbols run: | mkdir _extracted - tar -xJf ${{ needs.build.outputs.viewer_channel }}.sym.tar.gz -C _extracted + tar -xJf "${{ needs.build.outputs.viewer_channel }}.sym.tar.gz" -C _extracted - name: Post Mac symbols if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS uses: Bugsplat-Git/symbol-upload@v9.1.1 -- cgit v1.3 From 83c1f45dbacecd9a9fe2a99c8dcd307b143f2b35 Mon Sep 17 00:00:00 2001 From: Roxie Linden Date: Tue, 6 Aug 2024 00:26:43 -0700 Subject: Download osx artifacts to working directory --- .github/workflows/build.yaml | 1 - 1 file changed, 1 deletion(-) (limited to '.github/workflows') diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index cf14bac0a2..506dbff664 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -395,7 +395,6 @@ jobs: uses: actions/download-artifact@v4 with: name: macOS-symbols - path: _artifacts - name: Unpack Mac Symbols run: | mkdir _extracted -- cgit v1.3 From c52c25e10db2b86a70929793a5d723c012a37671 Mon Sep 17 00:00:00 2001 From: Roxie Linden Date: Tue, 6 Aug 2024 12:06:40 -0700 Subject: As bugspat upload is broken for dylibs within .dSYM bundles, upload the dylibs directly --- .github/workflows/build.yaml | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to '.github/workflows') diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 506dbff664..21016c1015 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -399,7 +399,7 @@ jobs: run: | mkdir _extracted tar -xJf "${{ needs.build.outputs.viewer_channel }}.sym.tar.gz" -C _extracted - - name: Post Mac symbols + - name: Post Mac Executable symbols if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS uses: Bugsplat-Git/symbol-upload@v9.1.1 with: @@ -409,7 +409,18 @@ jobs: application: ${{ needs.build.outputs.viewer_channel }} version: ${{ needs.build.outputs.viewer_version }} directory: _extracted - files: "**/*.dSYM" + files: "**/*.app.dSYM" + - name: Post Mac Dylib symbols + if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS + uses: Bugsplat-Git/symbol-upload@v9.1.1 + with: + username: ${{ env.BUGSPLAT_USER }} + password: ${{ env.BUGSPLAT_PASS }} + database: "SecondLife_Viewer_2018" + application: ${{ needs.build.outputs.viewer_channel }} + version: ${{ needs.build.outputs.viewer_version }} + directory: _extracted + files: "**/*.dylib" release: needs: [setvar, build, sign-and-package-windows, sign-and-package-mac] -- cgit v1.3 From fc0e70e77b44a510ad1bf2a34fa04236aa4624a2 Mon Sep 17 00:00:00 2001 From: Roxie Linden Date: Tue, 6 Aug 2024 21:00:48 -0700 Subject: upload xcarchive to bugsplat --- .github/workflows/build.yaml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to '.github/workflows') diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 21016c1015..c88a23b85e 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -395,10 +395,6 @@ jobs: uses: actions/download-artifact@v4 with: name: macOS-symbols - - name: Unpack Mac Symbols - run: | - mkdir _extracted - tar -xJf "${{ needs.build.outputs.viewer_channel }}.sym.tar.gz" -C _extracted - name: Post Mac Executable symbols if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS uses: Bugsplat-Git/symbol-upload@v9.1.1 @@ -408,8 +404,8 @@ jobs: database: "SecondLife_Viewer_2018" application: ${{ needs.build.outputs.viewer_channel }} version: ${{ needs.build.outputs.viewer_version }} - directory: _extracted - files: "**/*.app.dSYM" + directory: . + files: "**/*.xcarchive.zip" - name: Post Mac Dylib symbols if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS uses: Bugsplat-Git/symbol-upload@v9.1.1 -- cgit v1.3 From 753cf01ef0165e840d90fe9e9b943eb27c2b6f19 Mon Sep 17 00:00:00 2001 From: Roxie Linden Date: Tue, 6 Aug 2024 22:24:38 -0700 Subject: don't need to post dylib as we're using xcarchive --- .github/workflows/build.yaml | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) (limited to '.github/workflows') diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index c88a23b85e..03dcad2158 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -395,7 +395,7 @@ jobs: uses: actions/download-artifact@v4 with: name: macOS-symbols - - name: Post Mac Executable symbols + - name: Post Mac symbols if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS uses: Bugsplat-Git/symbol-upload@v9.1.1 with: @@ -406,17 +406,6 @@ jobs: version: ${{ needs.build.outputs.viewer_version }} directory: . files: "**/*.xcarchive.zip" - - name: Post Mac Dylib symbols - if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS - uses: Bugsplat-Git/symbol-upload@v9.1.1 - with: - username: ${{ env.BUGSPLAT_USER }} - password: ${{ env.BUGSPLAT_PASS }} - database: "SecondLife_Viewer_2018" - application: ${{ needs.build.outputs.viewer_channel }} - version: ${{ needs.build.outputs.viewer_version }} - directory: _extracted - files: "**/*.dylib" release: needs: [setvar, build, sign-and-package-windows, sign-and-package-mac] -- cgit v1.3 From 399eb2104ec84272fb253c6029517f9f4935e17e Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev Date: Tue, 23 Jul 2024 11:22:09 +0300 Subject: viewer#2043 bugsplat symbol upload update --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '.github/workflows') diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index aa504f51d8..68fdc3c2bf 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -395,7 +395,7 @@ jobs: password: ${{ env.BUGSPLAT_PASS }} database: "SecondLife_Viewer_2018" channel: ${{ needs.build.outputs.viewer_channel }} - version: ${{ needs.build.outputs.viewer_version }} + version: ${{ needs.build.outputs.viewer_version }} (${{ needs.build.outputs.viewer_version }}) release: needs: [setvar, build, sign-and-package-windows, sign-and-package-mac] -- cgit v1.3 From 63a4ad9b98a21b86986385398f7a93043c4f3650 Mon Sep 17 00:00:00 2001 From: Roxie Linden Date: Wed, 7 Aug 2024 14:16:11 -0700 Subject: Add Windows multi-pdb upload capability --- .github/workflows/build.yaml | 17 +++++++++++++++-- build.sh | 2 +- indra/llwebrtc/CMakeLists.txt | 9 +++++++-- indra/newview/CMakeLists.txt | 40 ++++++++++++++++------------------------ 4 files changed, 39 insertions(+), 29 deletions(-) (limited to '.github/workflows') diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 03dcad2158..6e5d166847 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -373,15 +373,28 @@ jobs: needs: build runs-on: ubuntu-latest steps: + - name: Download Windows Symbols + if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS + uses: actions/download-artifact@v4 + with: + name: Windows-symbols + - name: Extract viewer pdb + if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS + shell: bash + run: | + mkdir _artifacts + tar -xJf ${{ needs.build.outputs.viewer_channel }}.sym.tar.xz -C _artifacts - name: Post Windows symbols if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS - uses: secondlife/viewer-build-util/post-bugsplat-windows@v2 + uses: Bugsplat-Git/symbol-upload@v9.1.1 with: username: ${{ env.BUGSPLAT_USER }} password: ${{ env.BUGSPLAT_PASS }} database: "SecondLife_Viewer_2018" - channel: ${{ needs.build.outputs.viewer_channel }} + application: ${{ needs.build.outputs.viewer_channel }} version: ${{ needs.build.outputs.viewer_version }} + directory: _artifacts + files: "**/*.pdb" post-mac-symbols: env: diff --git a/build.sh b/build.sh index 2a2227657b..1e5e8470eb 100755 --- a/build.sh +++ b/build.sh @@ -170,7 +170,7 @@ pre_build() # This name is consumed by indra/newview/CMakeLists.txt. Make it # absolute because we've had troubles with relative pathnames. abs_build_dir="$(cd "$build_dir"; pwd)" - VIEWER_SYMBOL_FILE="$(native_path "$abs_build_dir/newview/$variant/secondlife-symbols-$symplat-${AUTOBUILD_ADDRSIZE}.tar.xz")" + VIEWER_SYMBOL_FILE="$(native_path "$abs_build_dir/symbols/$variant/${viewer_channel}.tar.xz")" fi # honor autobuild_configure_parameters same as sling-buildscripts diff --git a/indra/llwebrtc/CMakeLists.txt b/indra/llwebrtc/CMakeLists.txt index e7c7248b0c..c6f77ee848 100644 --- a/indra/llwebrtc/CMakeLists.txt +++ b/indra/llwebrtc/CMakeLists.txt @@ -39,10 +39,15 @@ if (WINDOWS) msdmo strmiids iphlpapi) + if (USE_BUGSPLAT) + set_target_properties(llwebrtc PROPERTIES PDB_OUTPUT_DIRECTORY "${SYMBOLS_STAGING_DIR}/${VIEWER_CHANNEL}") + endif (USE_BUGSPLAT) elseif (DARWIN) target_link_libraries(llwebrtc PRIVATE ll::webrtc) - set_target_properties(llwebrtc PROPERTIES XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf-with-dsym" - XCODE_ATTRIBUTE_DWARF_DSYM_FOLDER_PATH "${SYMBOLS_STAGING_DIR}/${VIEWER_CHANNEL}/dSYMs") + if (USE_BUGSPLAT) + set_target_properties(llwebrtc PROPERTIES XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf-with-dsym" + XCODE_ATTRIBUTE_DWARF_DSYM_FOLDER_PATH "${SYMBOLS_STAGING_DIR}/${VIEWER_CHANNEL}/dSYMs") + endif (USE_BUGSPLAT) elseif (LINUX) target_link_libraries(llwebrtc PRIVATE ll::webrtc) endif (WINDOWS) diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 000f2e2684..c5f38a832a 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -2085,8 +2085,6 @@ if (DARWIN) set(VIEWER_APP_BUNDLE "${CMAKE_CURRENT_BINARY_DIR}/$,$,>/${product}.app") set(VIEWER_APP_EXE "${VIEWER_APP_BUNDLE}/Contents/MacOS/${product}") - set(VIEWER_APP_SYMBOLS_ARCHIVE "${VIEWER_APP_BUNDLE}/../${product}.sym.tar.gz") - set(VIEWER_APP_XCARCHIVE "${SYMBOLS_STAGING_DIR}/${VIEWER_CHANNEL}.xcarchive.zip") configure_file( "${CMAKE_CURRENT_SOURCE_DIR}/Info-SecondLife.plist" @@ -2159,38 +2157,32 @@ if (INSTALL) include(${CMAKE_CURRENT_SOURCE_DIR}/ViewerInstall.cmake) endif (INSTALL) -# Note that the conventional VIEWER_SYMBOL_FILE is set by ../../build.sh if (PACKAGE AND (RELEASE_CRASH_REPORTING OR NON_RELEASE_CRASH_REPORTING) AND VIEWER_SYMBOL_FILE) if (USE_BUGSPLAT) # BugSplat symbol-file generation if (WINDOWS) - # Just pack up a tarball containing only the .pdb file for the - # executable. Because we intend to use cygwin tar, we must render - # VIEWER_SYMBOL_FILE in cygwin path syntax. - execute_process(COMMAND "cygpath" "-u" "${VIEWER_SYMBOL_FILE}" - OUTPUT_VARIABLE VIEWER_SYMBOL_FILE_CYGWIN - OUTPUT_STRIP_TRAILING_WHITESPACE) - execute_process(COMMAND "cygpath" "-u" "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}" - OUTPUT_VARIABLE PARENT_DIRECTORY_CYGWIN - OUTPUT_STRIP_TRAILING_WHITESPACE) - add_custom_command(OUTPUT "${VIEWER_SYMBOL_FILE}" - # Use of 'tar ...j' here assumes VIEWER_SYMBOL_FILE endswith .tar.xz; - # testing a string suffix is painful enough in CMake language that - # we'll continue assuming it until forced to generalize. + set(VIEWER_APP_SYMBOLS_ARCHIVE "${SYMBOLS_STAGING_DIR}/${VIEWER_CHANNEL}.sym.tar.xz") + set_target_properties( ${VIEWER_BINARY_NAME} PROPERTIES PDB_OUTPUT_DIRECTORY "${SYMBOLS_STAGING_DIR}/${VIEWER_CHANNEL}") + + # Just pack up a tarball containing only the .pdb files for the + # executables. + add_custom_command(OUTPUT "${VIEWER_APP_SYMBOLS_ARCHIVE}" COMMAND "tar" ARGS "cJf" - "${VIEWER_SYMBOL_FILE_CYGWIN}" - "-C" - "${PARENT_DIRECTORY_CYGWIN}" - "secondlife-bin.pdb" - DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/secondlife-bin.pdb" - COMMENT "Packing viewer PDB into ${VIEWER_SYMBOL_FILE_CYGWIN}" + "${VIEWER_CHANNEL}.sym.tar.xz" + "${VIEWER_CHANNEL}" + DEPENDS "${VIEWER_BINARY_NAME}" llwebrtc + WORKING_DIRECTORY "${SYMBOLS_STAGING_DIR}" + COMMENT "Packing viewer PDBs into ${VIEWER_APP_SYMBOLS_ARCHIVE}" ) - add_custom_target(generate_symbols DEPENDS "${VIEWER_SYMBOL_FILE}" ${VIEWER_BINARY_NAME}) - add_dependencies(generate_symbols ${VIEWER_BINARY_NAME}) + add_custom_target(generate_symbols DEPENDS "${VIEWER_APP_SYMBOLS_ARCHIVE}") + add_dependencies(generate_symbols ${VIEWER_BINARY_NAME} llwebrtc) + endif (WINDOWS) if (DARWIN) + set(VIEWER_APP_XCARCHIVE "${SYMBOLS_STAGING_DIR}/${VIEWER_CHANNEL}.xcarchive.zip") + # we only need an xcarchive with dSYMs (including the application) set_target_properties(${VIEWER_BINARY_NAME} PROPERTIES -- cgit v1.3 From f6f3d7e0480c9c695abf6c48f553ad0e01121e78 Mon Sep 17 00:00:00 2001 From: Roxie Linden Date: Wed, 7 Aug 2024 14:24:00 -0700 Subject: spacing issue --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '.github/workflows') diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 6e5d166847..2a174e5d2c 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -382,7 +382,7 @@ jobs: if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS shell: bash run: | - mkdir _artifacts + mkdir _artifacts tar -xJf ${{ needs.build.outputs.viewer_channel }}.sym.tar.xz -C _artifacts - name: Post Windows symbols if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS -- cgit v1.3 From 530bc2975315240f6f5dda753b48790364a6312b Mon Sep 17 00:00:00 2001 From: Roxie Linden Date: Wed, 7 Aug 2024 16:33:00 -0700 Subject: build debug symbols for llwebrtc even for release --- .github/workflows/build.yaml | 2 +- indra/llwebrtc/CMakeLists.txt | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) (limited to '.github/workflows') diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 2a174e5d2c..ecd3f22a35 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -383,7 +383,7 @@ jobs: shell: bash run: | mkdir _artifacts - tar -xJf ${{ needs.build.outputs.viewer_channel }}.sym.tar.xz -C _artifacts + tar -xJf "${{ needs.build.outputs.viewer_channel }}.sym.tar.xz" -C _artifacts - name: Post Windows symbols if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS uses: Bugsplat-Git/symbol-upload@v9.1.1 diff --git a/indra/llwebrtc/CMakeLists.txt b/indra/llwebrtc/CMakeLists.txt index c6f77ee848..e3404b3a23 100644 --- a/indra/llwebrtc/CMakeLists.txt +++ b/indra/llwebrtc/CMakeLists.txt @@ -31,7 +31,11 @@ add_library (llwebrtc SHARED ${llwebrtc_SOURCE_FILES}) set_target_properties(llwebrtc PROPERTIES PUBLIC_HEADER llwebrtc.h) if (WINDOWS) - target_link_libraries(llwebrtc PRIVATE ll::webrtc + set_target_properties(llwebrtc + PROPERTIES + LINK_FLAGS "/debug /LARGEADDRESSAWARE" + ) + target_link_libraries(llwebrtc PRIVATE ll::webrtc secur32 winmm dmoguids -- cgit v1.3 From 60003cf077866401a809905474d3369c7795109a Mon Sep 17 00:00:00 2001 From: Roxie Linden Date: Wed, 7 Aug 2024 19:09:19 -0700 Subject: include viewer exe in uploaded symbols --- .github/workflows/build.yaml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to '.github/workflows') diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index ecd3f22a35..72cdf01634 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -373,6 +373,11 @@ jobs: needs: build runs-on: ubuntu-latest steps: + - name: Download viewer exe + uses: actions/download-artifact@v4 + with: + name: Windows-app + path: _artifacts - name: Download Windows Symbols if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS uses: actions/download-artifact@v4 @@ -382,7 +387,6 @@ jobs: if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS shell: bash run: | - mkdir _artifacts tar -xJf "${{ needs.build.outputs.viewer_channel }}.sym.tar.xz" -C _artifacts - name: Post Windows symbols if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS @@ -394,7 +398,7 @@ jobs: application: ${{ needs.build.outputs.viewer_channel }} version: ${{ needs.build.outputs.viewer_version }} directory: _artifacts - files: "**/*.pdb" + files: "**/{SecondLifeViewer.exe,*.pdb}" post-mac-symbols: env: -- cgit v1.3 From 83390094f10e0f7069676bf2bd09bd1401ca891c Mon Sep 17 00:00:00 2001 From: Roxie Linden Date: Wed, 7 Aug 2024 20:57:05 -0700 Subject: test llwebrtc.dll for additional symbols --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '.github/workflows') diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 72cdf01634..d3a3c2ed6e 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -398,7 +398,7 @@ jobs: application: ${{ needs.build.outputs.viewer_channel }} version: ${{ needs.build.outputs.viewer_version }} directory: _artifacts - files: "**/{SecondLifeViewer.exe,*.pdb}" + files: "**/{SecondLifeViewer.exe,llwebrtc.dll,*.pdb}" post-mac-symbols: env: -- cgit v1.3 From f1f3aa42e8fcb3e1a511c08a23c50aaf291199dc Mon Sep 17 00:00:00 2001 From: Roxie Linden Date: Thu, 8 Aug 2024 09:34:48 -0700 Subject: CR fixes --- .github/workflows/build.yaml | 2 +- indra/cmake/Linking.cmake | 2 +- indra/llwebrtc/CMakeLists.txt | 4 ++-- indra/newview/CMakeLists.txt | 14 +++++++------- 4 files changed, 11 insertions(+), 11 deletions(-) (limited to '.github/workflows') diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 72cdf01634..c998f42905 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -390,7 +390,7 @@ jobs: tar -xJf "${{ needs.build.outputs.viewer_channel }}.sym.tar.xz" -C _artifacts - name: Post Windows symbols if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS - uses: Bugsplat-Git/symbol-upload@v9.1.1 + uses: Bugsplat-Git/symbol-upload@v10 with: username: ${{ env.BUGSPLAT_USER }} password: ${{ env.BUGSPLAT_PASS }} diff --git a/indra/cmake/Linking.cmake b/indra/cmake/Linking.cmake index a5b8767923..1d757abeff 100644 --- a/indra/cmake/Linking.cmake +++ b/indra/cmake/Linking.cmake @@ -19,7 +19,7 @@ if (WINDOWS OR DARWIN ) endif() else() set(SHARED_LIB_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs/$,$,>) - set(SYMBOLS_STAGING_DIR ${CMAKE_BINARY_DIR}/symbols/$,$,>) + set(SYMBOLS_STAGING_DIR ${CMAKE_BINARY_DIR}/symbols/$,$,>/${VIEWER_CHANNEL}) endif() if( DARWIN ) diff --git a/indra/llwebrtc/CMakeLists.txt b/indra/llwebrtc/CMakeLists.txt index e3404b3a23..30aaec1265 100644 --- a/indra/llwebrtc/CMakeLists.txt +++ b/indra/llwebrtc/CMakeLists.txt @@ -44,13 +44,13 @@ if (WINDOWS) strmiids iphlpapi) if (USE_BUGSPLAT) - set_target_properties(llwebrtc PROPERTIES PDB_OUTPUT_DIRECTORY "${SYMBOLS_STAGING_DIR}/${VIEWER_CHANNEL}") + set_target_properties(llwebrtc PROPERTIES PDB_OUTPUT_DIRECTORY "${SYMBOLS_STAGING_DIR}") endif (USE_BUGSPLAT) elseif (DARWIN) target_link_libraries(llwebrtc PRIVATE ll::webrtc) if (USE_BUGSPLAT) set_target_properties(llwebrtc PROPERTIES XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf-with-dsym" - XCODE_ATTRIBUTE_DWARF_DSYM_FOLDER_PATH "${SYMBOLS_STAGING_DIR}/${VIEWER_CHANNEL}/dSYMs") + XCODE_ATTRIBUTE_DWARF_DSYM_FOLDER_PATH "${SYMBOLS_STAGING_DIR}/dSYMs") endif (USE_BUGSPLAT) elseif (LINUX) target_link_libraries(llwebrtc PRIVATE ll::webrtc) diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index c5f38a832a..517b25def5 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -2161,8 +2161,8 @@ if (PACKAGE AND (RELEASE_CRASH_REPORTING OR NON_RELEASE_CRASH_REPORTING) AND VIE if (USE_BUGSPLAT) # BugSplat symbol-file generation if (WINDOWS) - set(VIEWER_APP_SYMBOLS_ARCHIVE "${SYMBOLS_STAGING_DIR}/${VIEWER_CHANNEL}.sym.tar.xz") - set_target_properties( ${VIEWER_BINARY_NAME} PROPERTIES PDB_OUTPUT_DIRECTORY "${SYMBOLS_STAGING_DIR}/${VIEWER_CHANNEL}") + set(VIEWER_APP_SYMBOLS_ARCHIVE "${SYMBOLS_STAGING_DIR}.sym.tar.xz") + set_target_properties( ${VIEWER_BINARY_NAME} PROPERTIES PDB_OUTPUT_DIRECTORY "${SYMBOLS_STAGING_DIR}") # Just pack up a tarball containing only the .pdb files for the # executables. @@ -2173,7 +2173,7 @@ if (PACKAGE AND (RELEASE_CRASH_REPORTING OR NON_RELEASE_CRASH_REPORTING) AND VIE "${VIEWER_CHANNEL}.sym.tar.xz" "${VIEWER_CHANNEL}" DEPENDS "${VIEWER_BINARY_NAME}" llwebrtc - WORKING_DIRECTORY "${SYMBOLS_STAGING_DIR}" + WORKING_DIRECTORY "${SYMBOLS_STAGING_DIR}/.." COMMENT "Packing viewer PDBs into ${VIEWER_APP_SYMBOLS_ARCHIVE}" ) add_custom_target(generate_symbols DEPENDS "${VIEWER_APP_SYMBOLS_ARCHIVE}") @@ -2181,21 +2181,21 @@ if (PACKAGE AND (RELEASE_CRASH_REPORTING OR NON_RELEASE_CRASH_REPORTING) AND VIE endif (WINDOWS) if (DARWIN) - set(VIEWER_APP_XCARCHIVE "${SYMBOLS_STAGING_DIR}/${VIEWER_CHANNEL}.xcarchive.zip") + set(VIEWER_APP_XCARCHIVE "${SYMBOLS_STAGING_DIR}.xcarchive.zip") # we only need an xcarchive with dSYMs (including the application) set_target_properties(${VIEWER_BINARY_NAME} PROPERTIES XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf-with-dsym" - XCODE_ATTRIBUTE_DWARF_DSYM_FOLDER_PATH "${SYMBOLS_STAGING_DIR}/${product}/dSYMs") + XCODE_ATTRIBUTE_DWARF_DSYM_FOLDER_PATH "${SYMBOLS_STAGING_DIR}/dSYMs") add_custom_command(OUTPUT "${VIEWER_APP_XCARCHIVE}" COMMAND "zip" ARGS "-r" "${VIEWER_APP_XCARCHIVE}" - "${product}" - WORKING_DIRECTORY "${SYMBOLS_STAGING_DIR}" + "${VIEWER_CHANNEL}" + WORKING_DIRECTORY "${SYMBOLS_STAGING_DIR}/.." DEPENDS "${VIEWER_BINARY_NAME}" llwebrtc COMMENT "Generating ${VIEWER_APP_XCARCHIVE} for upload to BugSplat" ) -- cgit v1.3 From d46c444aee3fa1b3623d8d94151af1bfdae815b1 Mon Sep 17 00:00:00 2001 From: Roxie Linden Date: Thu, 8 Aug 2024 12:03:53 -0700 Subject: Use the secondlife-3p fork of symbol upload, which has vMAJOR tags --- .github/workflows/build.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to '.github/workflows') diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 3295e5b401..ebbb9dea88 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -390,7 +390,7 @@ jobs: tar -xJf "${{ needs.build.outputs.viewer_channel }}.sym.tar.xz" -C _artifacts - name: Post Windows symbols if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS - uses: Bugsplat-Git/symbol-upload@v10 + uses: secondlife-3p/symbol-upload@v10 with: username: ${{ env.BUGSPLAT_USER }} password: ${{ env.BUGSPLAT_PASS }} @@ -414,7 +414,7 @@ jobs: name: macOS-symbols - name: Post Mac symbols if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS - uses: Bugsplat-Git/symbol-upload@v9.1.1 + uses: secondlife-3p/symbol-upload@v10 with: username: ${{ env.BUGSPLAT_USER }} password: ${{ env.BUGSPLAT_PASS }} -- cgit v1.3 From dff3fdbfd7d0b29b51d4d6b7ecfd84177e114eb8 Mon Sep 17 00:00:00 2001 From: Signal Linden Date: Sun, 11 Aug 2024 16:44:39 -0700 Subject: Adopt NSIS 3.0 (#2248) --- .github/workflows/build.yaml | 4 ---- indra/newview/installers/windows/installer_template.nsi | 1 + 2 files changed, 1 insertion(+), 4 deletions(-) (limited to '.github/workflows') diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 00b9ccd2c9..53bfbc2c0a 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -120,10 +120,6 @@ jobs: ${{ runner.os }}-64-${{ matrix.configuration }}- ${{ runner.os }}-64- - - name: Install windows dependencies - if: runner.os == 'Windows' - run: choco install nsis-unicode - - name: Determine source branch id: which-branch uses: secondlife/viewer-build-util/which-branch@v2 diff --git a/indra/newview/installers/windows/installer_template.nsi b/indra/newview/installers/windows/installer_template.nsi index d1dab94a76..77f24ac6a6 100644 --- a/indra/newview/installers/windows/installer_template.nsi +++ b/indra/newview/installers/windows/installer_template.nsi @@ -32,6 +32,7 @@ SetCompressor /solid lzma # Compress whole installer as one block SetDatablockOptimize off # Only saves us 0.1%, not worth it XPStyle on # Add an XP manifest to the installer RequestExecutionLevel admin # For when we write to Program Files +Unicode true # Enable unicode support ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Project flags -- cgit v1.3 From 8ce3323269d95f54e2b768c4c5aa154d4afbbb6b Mon Sep 17 00:00:00 2001 From: Signal Linden Date: Tue, 13 Aug 2024 12:12:48 -0700 Subject: CI: Upload ReleaseOS app (#2252) Upload the built app on ReleaseOS builds. Not sure why we wouldn't want this. --- .github/workflows/build.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to '.github/workflows') diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 53bfbc2c0a..a422c73391 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -253,7 +253,7 @@ jobs: echo "artifact=$RUNNER_OS$cfg_suffix" >> $GITHUB_OUTPUT - name: Upload executable - if: matrix.configuration == 'Release' && steps.build.outputs.viewer_app + if: steps.build.outputs.viewer_app uses: actions/upload-artifact@v4 with: name: "${{ steps.build.outputs.artifact }}-app" @@ -264,7 +264,6 @@ jobs: # artifact for that too. - name: Upload symbol file uses: actions/upload-artifact@v4 - if: matrix.configuration == 'Release' with: name: "${{ steps.build.outputs.artifact }}-symbols" path: ${{ steps.build.outputs.symbolfile }} -- cgit v1.3