Fix release version handling
This commit is contained in:
@@ -19,6 +19,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
version: ${{ steps.version.outputs.version }}
|
||||
commitish: ${{ steps.version.outputs.commitish }}
|
||||
steps:
|
||||
- uses: actions/checkout@v5.0.0
|
||||
with:
|
||||
@@ -30,9 +31,14 @@ jobs:
|
||||
if [ -n "$INPUT_VERSION" ]; then
|
||||
VERSION="$INPUT_VERSION"
|
||||
else
|
||||
VERSION=$(git describe --tags --exact-match 2>/dev/null || echo "0.$(date +%d%m%Y)")
|
||||
VERSION=$(git describe --tags --exact-match 2>/dev/null || true)
|
||||
fi
|
||||
if [[ ! "$VERSION" =~ ^[0-9]+(\.[0-9]+)*-[0-9]+$ ]]; then
|
||||
echo "Release version must use x.y.z-n format, got: ${VERSION:-<empty>}" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "version=$VERSION" >> "$GITHUB_OUTPUT"
|
||||
echo "commitish=$(git rev-parse HEAD)" >> "$GITHUB_OUTPUT"
|
||||
|
||||
build:
|
||||
name: Build Podkop Plus release packages
|
||||
@@ -83,3 +89,4 @@ jobs:
|
||||
prerelease: false
|
||||
name: ${{ needs.preparation.outputs.version }}
|
||||
tag_name: ${{ needs.preparation.outputs.version }}
|
||||
target_commitish: ${{ needs.preparation.outputs.commitish }}
|
||||
|
||||
@@ -2,11 +2,11 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-podkop-plus
|
||||
|
||||
PODKOP_RELEASE_VERSION:=$(or $(PODKOP_PACKAGE_VERSION),$(PODKOP_VERSION),0.7.17-4)
|
||||
PODKOP_RELEASE_VERSION:=$(or $(PODKOP_PACKAGE_VERSION),$(PODKOP_VERSION),dev)
|
||||
PODKOP_BASE_VERSION:=$(or $(PODKOP_BASE_VERSION),$(word 1,$(subst -, ,$(PODKOP_RELEASE_VERSION))))
|
||||
PODKOP_FORK_RELEASE:=$(or $(PODKOP_FORK_RELEASE),$(word 2,$(subst -, ,$(PODKOP_RELEASE_VERSION))),4)
|
||||
PODKOP_COMPILED_VERSION:=$(PODKOP_BASE_VERSION)-$(PODKOP_FORK_RELEASE)
|
||||
PODKOP_APK_VERSION:=$(PODKOP_BASE_VERSION)-r$(PODKOP_FORK_RELEASE)
|
||||
PODKOP_FORK_RELEASE:=$(or $(PODKOP_FORK_RELEASE),$(word 2,$(subst -, ,$(PODKOP_RELEASE_VERSION))))
|
||||
PODKOP_COMPILED_VERSION:=$(if $(PODKOP_FORK_RELEASE),$(PODKOP_BASE_VERSION)-$(PODKOP_FORK_RELEASE),$(PODKOP_BASE_VERSION))
|
||||
PODKOP_APK_VERSION:=$(if $(PODKOP_FORK_RELEASE),$(PODKOP_BASE_VERSION)-r$(PODKOP_FORK_RELEASE),$(PODKOP_BASE_VERSION))
|
||||
PODKOP_PO_VERSION:=$(if $(filter apk,$(PODKOP_PACKAGE_FORMAT)),$(PODKOP_APK_VERSION),$(PODKOP_COMPILED_VERSION))
|
||||
PODKOP_SDK_VERSION:=$(if $(filter apk,$(PODKOP_PACKAGE_FORMAT)),$(PODKOP_BASE_VERSION),$(PODKOP_COMPILED_VERSION))
|
||||
PODKOP_SDK_RELEASE:=$(if $(filter apk,$(PODKOP_PACKAGE_FORMAT)),$(PODKOP_FORK_RELEASE),)
|
||||
|
||||
+3
-3
@@ -2,10 +2,10 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=podkop-plus
|
||||
|
||||
PODKOP_RELEASE_VERSION:=$(or $(PODKOP_PACKAGE_VERSION),$(PODKOP_VERSION),0.7.17-4)
|
||||
PODKOP_RELEASE_VERSION:=$(or $(PODKOP_PACKAGE_VERSION),$(PODKOP_VERSION),dev)
|
||||
PODKOP_BASE_VERSION:=$(or $(PODKOP_BASE_VERSION),$(word 1,$(subst -, ,$(PODKOP_RELEASE_VERSION))))
|
||||
PODKOP_FORK_RELEASE:=$(or $(PODKOP_FORK_RELEASE),$(word 2,$(subst -, ,$(PODKOP_RELEASE_VERSION))),4)
|
||||
PODKOP_COMPILED_VERSION:=$(PODKOP_BASE_VERSION)-$(PODKOP_FORK_RELEASE)
|
||||
PODKOP_FORK_RELEASE:=$(or $(PODKOP_FORK_RELEASE),$(word 2,$(subst -, ,$(PODKOP_RELEASE_VERSION))))
|
||||
PODKOP_COMPILED_VERSION:=$(if $(PODKOP_FORK_RELEASE),$(PODKOP_BASE_VERSION)-$(PODKOP_FORK_RELEASE),$(PODKOP_BASE_VERSION))
|
||||
PODKOP_SDK_VERSION:=$(if $(filter apk,$(PODKOP_PACKAGE_FORMAT)),$(PODKOP_BASE_VERSION),$(PODKOP_COMPILED_VERSION))
|
||||
PODKOP_SDK_RELEASE:=$(if $(filter apk,$(PODKOP_PACKAGE_FORMAT)),$(PODKOP_FORK_RELEASE),)
|
||||
|
||||
|
||||
@@ -5942,6 +5942,22 @@ podkop_latest_version_is_older_than_current() {
|
||||
[ "$lowest" = "$latest_normalized" ]
|
||||
}
|
||||
|
||||
podkop_latest_version_is_newer_than_current() {
|
||||
local latest_version="$1"
|
||||
local latest_normalized current_normalized lowest
|
||||
|
||||
is_podkop_release_version "$latest_version" || return 1
|
||||
is_podkop_release_version "$PODKOP_VERSION" || return 1
|
||||
|
||||
latest_normalized="$(normalize_podkop_release_version "$latest_version")"
|
||||
current_normalized="$(normalize_podkop_release_version "$PODKOP_VERSION")"
|
||||
|
||||
[ "$latest_normalized" != "$current_normalized" ] || return 1
|
||||
|
||||
lowest="$(printf '%s\n%s\n' "$latest_normalized" "$current_normalized" | sort -V | head -n 1)"
|
||||
[ "$lowest" = "$current_normalized" ]
|
||||
}
|
||||
|
||||
write_podkop_latest_version_cache() {
|
||||
local value="$1"
|
||||
local timestamp="$2"
|
||||
@@ -5992,7 +6008,7 @@ get_podkop_latest_version() {
|
||||
cache_is_recent=1
|
||||
fi
|
||||
|
||||
if [ "$cache_is_recent" -eq 1 ] && ! podkop_latest_version_is_older_than_current "$cache_value"; then
|
||||
if [ "$cache_is_recent" -eq 1 ] && podkop_latest_version_is_newer_than_current "$cache_value"; then
|
||||
echo "$cache_value"
|
||||
return 0
|
||||
fi
|
||||
@@ -6009,7 +6025,7 @@ get_podkop_latest_version() {
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [ -n "$cache_value" ] && ! podkop_latest_version_is_older_than_current "$cache_value"; then
|
||||
if [ -n "$cache_value" ] && podkop_latest_version_is_newer_than_current "$cache_value"; then
|
||||
echo "$cache_value"
|
||||
return 0
|
||||
fi
|
||||
@@ -6057,6 +6073,7 @@ system_info_cache_is_valid() {
|
||||
cached_latest="$(jq -r '.podkop_latest_version // "unknown"' "$PODKOP_SYSTEM_INFO_CACHE_FILE" 2>/dev/null)"
|
||||
[ "$cached_latest" = "unknown" ] && return 1
|
||||
podkop_latest_version_is_older_than_current "$cached_latest" && return 1
|
||||
podkop_latest_version_is_newer_than_current "$cached_latest" || return 1
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
@@ -5,11 +5,8 @@ SCRIPT_PATH="$(readlink -f "${BASH_SOURCE[0]}")"
|
||||
SCRIPT_DIR="$(cd "$(dirname "$SCRIPT_PATH")" && pwd)"
|
||||
ROOT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||
|
||||
RELEASE_VERSION="${1:-0.7.17-4}"
|
||||
RELEASE_VERSION="${1:-}"
|
||||
OUTPUT_DIR_INPUT="${2:-}"
|
||||
BASE_VERSION="${RELEASE_VERSION%-*}"
|
||||
FORK_RELEASE="${RELEASE_VERSION##*-}"
|
||||
APK_INTERNAL_VERSION="${APK_INTERNAL_VERSION:-${BASE_VERSION}-r${FORK_RELEASE}}"
|
||||
SOURCE_ROOT_DIR="${SOURCE_ROOT_DIR:-}"
|
||||
WINDOWS_ARTIFACTS_DIR="${WINDOWS_ARTIFACTS_DIR:-}"
|
||||
DEFAULT_BUILD_HOME="${HOME}"
|
||||
@@ -19,11 +16,15 @@ if [[ "$DEFAULT_BUILD_HOME" == "/root" ]]; then
|
||||
DEFAULT_BUILD_HOME="${DEFAULT_BUILD_HOME:-/root}"
|
||||
fi
|
||||
|
||||
if [[ "$BASE_VERSION" == "$RELEASE_VERSION" || -z "$FORK_RELEASE" ]]; then
|
||||
if [[ ! "$RELEASE_VERSION" =~ ^[0-9]+(\.[0-9]+)*-[0-9]+$ ]]; then
|
||||
echo "Expected release version in the form x.y.z-n" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
BASE_VERSION="${RELEASE_VERSION%-*}"
|
||||
FORK_RELEASE="${RELEASE_VERSION##*-}"
|
||||
APK_INTERNAL_VERSION="${APK_INTERNAL_VERSION:-${BASE_VERSION}-r${FORK_RELEASE}}"
|
||||
|
||||
WSL_NATIVE_ROOT="${WSL_NATIVE_ROOT:-$DEFAULT_BUILD_HOME/build/podkop-plus}"
|
||||
WORK_DIR="${WORK_DIR:-$ROOT_DIR/.wsl-build}"
|
||||
SDK_WORK_DIR="${SDK_WORK_DIR:-$WORK_DIR/sdk}"
|
||||
|
||||
Reference in New Issue
Block a user