aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorskjnldsv <skjnldsv@protonmail.com>2025-02-27 13:15:48 +0100
committerskjnldsv <skjnldsv@protonmail.com>2025-02-27 14:39:55 +0100
commitf5e870b95fc6a57d909923aa21e8c0aeb05caa88 (patch)
tree1ca86665d17daeb8e4feecde14399bd1d3c3694f
parent7bab703dff8b44f7f8b15c5658351f7aa1aa3742 (diff)
downloadnextcloud-server-feat/auto-sync-desktop-version.tar.gz
nextcloud-server-feat/auto-sync-desktop-version.zip
chore: auto sync min desktop version with last supported versionfeat/auto-sync-desktop-version
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
-rw-r--r--.github/workflows/update-min-supported-desktop.yml123
-rw-r--r--config/config.sample.php2
2 files changed, 124 insertions, 1 deletions
diff --git a/.github/workflows/update-min-supported-desktop.yml b/.github/workflows/update-min-supported-desktop.yml
new file mode 100644
index 00000000000..f57f35ad676
--- /dev/null
+++ b/.github/workflows/update-min-supported-desktop.yml
@@ -0,0 +1,123 @@
+# SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
+# SPDX-License-Identifier: MIT
+name: Update min supported desktop version
+
+on:
+ workflow_dispatch:
+ schedule:
+ - cron: "0 0 * * 1"
+
+jobs:
+ update-minimum-supported-desktop-version:
+ runs-on: ubuntu-latest-low
+
+ steps:
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
+ with:
+ submodules: true
+
+ - name: Download desktop client version file from 5 years ago
+ id: download
+ run: |
+ # Create a temporary directory for the downloaded file
+ mkdir -p tmp
+
+ # Download the version file from the provided URL
+ VERSION_FILE_URL="https://github.com/nextcloud/desktop/raw/@%7B5.years.ago%7D/VERSION.cmake"
+
+ # Download the file using curl
+ curl -s -L "$VERSION_FILE_URL" -o tmp/VERSION.cmake
+
+ if [ ! -f "tmp/VERSION.cmake" ]; then
+ echo "Failed to download VERSION.cmake file"
+ exit 1
+ fi
+
+ echo "VERSION_FILE=tmp/VERSION.cmake" >> $GITHUB_OUTPUT
+ echo "Downloaded version file to tmp/VERSION.cmake"
+
+ - name: Extract version info
+ id: extract-version
+ run: |
+ # Path to the downloaded version file
+ VERSION_FILE="${{ steps.download.outputs.VERSION_FILE }}"
+
+ # Extract major, minor, patch versions
+ MAJOR=$(grep "VERSION_MAJOR" $VERSION_FILE | grep -o '[0-9]\+')
+ MINOR=$(grep "VERSION_MINOR" $VERSION_FILE | grep -o '[0-9]\+')
+ PATCH=$(grep "VERSION_PATCH" $VERSION_FILE | grep -o '[0-9]\+')
+
+ # Construct the version string
+ VERSION="$MAJOR.$MINOR.$PATCH"
+
+ # Validate format: xx.xx.xx where each x is a digit
+ if ! [[ "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
+ echo "Error: Extracted version '$VERSION' does not match required format (xx.xx.xx)"
+ exit 1
+ fi
+
+ rm -rf tmp
+
+ echo "VERSION=$VERSION" >> $GITHUB_OUTPUT
+ echo "Extracted Version: $VERSION"
+
+ - name: Update files with new version ${{ steps.extract-version.outputs.VERSION }}
+ id: update-files
+ run: |
+ VERSION="${{ steps.extract-version.outputs.VERSION }}"
+
+ # Define the files to update
+ DAV_FILE="apps/dav/lib/Connector/Sabre/BlockLegacyClientPlugin.php"
+ CONFIG_FILE="config/config.sample.php"
+
+ # Check if files exist
+ if [ ! -f "$DAV_FILE" ]; then
+ echo "Error: DAV file not found at $DAV_FILE"
+ exit 1
+ fi
+
+ if [ ! -f "$CONFIG_FILE" ]; then
+ echo "Error: Config file not found at $CONFIG_FILE"
+ exit 1
+ fi
+
+ # Update the DAV file - replace the version in the specific line
+ sed -i "s/\('minimum\.supported\.desktop\.version', '\)[0-9]\+\.[0-9]\+\.[0-9]\+'/\1$VERSION'/g" "$DAV_FILE"
+ echo "Updated $DAV_FILE"
+
+ # Update the config sample file
+ PREV_VERSION=$(grep "'minimum.supported.desktop.version'" "$CONFIG_FILE" | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+')
+ sed -i "s/Defaults to \`\`$PREV_VERSION\`\`/Defaults to \`\`$VERSION\`\`/" "$CONFIG_FILE"
+ sed -i "s/'minimum\.supported\.desktop\.version' => '[0-9]\+\.[0-9]\+\.[0-9]\+'/'minimum.supported.desktop.version' => '$VERSION'/g" "$CONFIG_FILE"
+ echo "Updated $CONFIG_FILE"
+
+ # Check if any changes were made
+ if [ -n "$(git diff "$DAV_FILE" "$CONFIG_FILE")" ]; then
+ echo "CHANGES_MADE=true" >> $GITHUB_OUTPUT
+ echo "Changes were made to the files"
+ git diff "$DAV_FILE" "$CONFIG_FILE"
+ else
+ echo "CHANGES_MADE=false" >> $GITHUB_OUTPUT
+ echo "No changes were needed (versions might already be up to date)"
+ fi
+
+ - name: Create Pull Request
+ uses: peter-evans/create-pull-request@67ccf781d68cd99b580ae25a5c18a1cc84ffff1f
+ if: steps.update-files.outputs.CHANGES_MADE == 'true'
+ with:
+ token: ${{ secrets.COMMAND_BOT_PAT }}
+ commit-message: "chore: Update minimum supported desktop version"
+ committer: GitHub <noreply@github.com>
+ author: nextcloud-command <nextcloud-command@users.noreply.github.com>
+ signoff: true
+ branch: "automated/noid/${{ matrix.branches }}-update-min-supported-desktop-version"
+ title: "chore: Update minimum supported desktop version to ${{ steps.extract-version.outputs.VERSION }}"
+ base: "master"
+ body: |
+ Auto-generated update of the minimum supported desktop version using last supported version.
+ https://github.com/nextcloud/desktop/blob/@%7B5.years.ago%7D/VERSION.cmake
+ labels: |
+ client: 💻 desktop
+ automated
+ 3. to review
+ reviewers: tobiasKaminsky, camilasan, claucambra
diff --git a/config/config.sample.php b/config/config.sample.php
index bfda1609d75..d366d737757 100644
--- a/config/config.sample.php
+++ b/config/config.sample.php
@@ -2176,7 +2176,7 @@ $CONFIG = [
* this server instance. All connections made from later clients will be denied
* by the server.
*
- * Defaults to 99.99.99
+ * Defaults to ``99.99.99``
*/
'maximum.supported.desktop.version' => '99.99.99',