mirror of
https://github.com/SagerNet/sing-box.git
synced 2024-11-22 00:21:30 +00:00
Update Makefile
This commit is contained in:
parent
c75e32e722
commit
ea3731162b
10
Makefile
10
Makefile
|
@ -69,13 +69,17 @@ release_install:
|
||||||
go install -v github.com/goreleaser/goreleaser@latest
|
go install -v github.com/goreleaser/goreleaser@latest
|
||||||
go install -v github.com/tcnksm/ghr@latest
|
go install -v github.com/tcnksm/ghr@latest
|
||||||
|
|
||||||
upload_android:
|
update_android_version:
|
||||||
go run ./cmd/internal/update_android_version
|
go run ./cmd/internal/update_android_version
|
||||||
|
|
||||||
|
upload_android:
|
||||||
cd ../sing-box-for-android && ./gradlew :app:assembleRelease
|
cd ../sing-box-for-android && ./gradlew :app:assembleRelease
|
||||||
mkdir dist/release_android
|
mkdir dist/release_android
|
||||||
cp ../sing-box-for-android/app/build/outputs/apk/release/*.apk dist/release_android
|
cp ../sing-box-for-android/app/build/outputs/apk/release/*.apk dist/release_android
|
||||||
ghr --replace --draft --prerelease -p 3 "v${VERSION}" dist/release_android
|
ghr --replace --draft --prerelease -p 3 "v${VERSION}" dist/release_android
|
||||||
|
|
||||||
|
release_android: lib_android update_android_version upload_android
|
||||||
|
|
||||||
publish_android:
|
publish_android:
|
||||||
cd ../sing-box-for-android && ./gradlew :app:appCenterAssembleAndUploadRelease
|
cd ../sing-box-for-android && ./gradlew :app:appCenterAssembleAndUploadRelease
|
||||||
|
|
||||||
|
@ -140,6 +144,10 @@ update_apple_version:
|
||||||
|
|
||||||
release_apple: update_apple_version release_ios release_macos release_macos_independent release_tvos
|
release_apple: update_apple_version release_ios release_macos release_macos_independent release_tvos
|
||||||
|
|
||||||
|
build_apple_beta: update_apple_version build_ios build_macos build_tvos
|
||||||
|
|
||||||
|
upload_apple_beta: upload_ios_app_store upload_macos_app_store upload_tvos_app_store
|
||||||
|
|
||||||
test:
|
test:
|
||||||
@go test -v ./... && \
|
@go test -v ./... && \
|
||||||
cd test && \
|
cd test && \
|
||||||
|
|
|
@ -2,6 +2,7 @@ package build_shared
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/sagernet/sing-box/common/badversion"
|
"github.com/sagernet/sing-box/common/badversion"
|
||||||
|
"github.com/sagernet/sing/common"
|
||||||
"github.com/sagernet/sing/common/shell"
|
"github.com/sagernet/sing/common/shell"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -22,11 +23,14 @@ func ReadTag() (string, error) {
|
||||||
return version.String() + "-" + shortCommit, nil
|
return version.String() + "-" + shortCommit, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func ReadTagVersion() (string, error) {
|
func ReadTagVersion() (badversion.Version, error) {
|
||||||
currentTagRev, err := shell.Exec("git", "describe", "--tags", "--abbrev=0").ReadOutput()
|
currentTag := common.Must1(shell.Exec("git", "describe", "--tags").ReadOutput())
|
||||||
if err != nil {
|
currentTagRev := common.Must1(shell.Exec("git", "describe", "--tags", "--abbrev=0").ReadOutput())
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
version := badversion.Parse(currentTagRev[1:])
|
version := badversion.Parse(currentTagRev[1:])
|
||||||
return version.VersionString(), nil
|
if currentTagRev != currentTag {
|
||||||
|
if version.PreReleaseIdentifier == "" {
|
||||||
|
version.Patch++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return version, nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
newTag := common.Must1(build_shared.ReadTag())
|
newVersion := common.Must1(build_shared.ReadTagVersion())
|
||||||
androidPath, err := filepath.Abs("../sing-box-for-android")
|
androidPath, err := filepath.Abs("../sing-box-for-android")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
|
@ -25,12 +25,12 @@ func main() {
|
||||||
}
|
}
|
||||||
for _, propPair := range propsList {
|
for _, propPair := range propsList {
|
||||||
if propPair[0] == "VERSION_NAME" {
|
if propPair[0] == "VERSION_NAME" {
|
||||||
if propPair[1] == newTag {
|
if propPair[1] == newVersion.String() {
|
||||||
log.Info("version not changed")
|
log.Info("version not changed")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
propPair[1] = newTag
|
propPair[1] = newVersion.String()
|
||||||
log.Info("updated version to ", newTag)
|
log.Info("updated version to ", newVersion.String())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for _, propPair := range propsList {
|
for _, propPair := range propsList {
|
||||||
|
@ -40,7 +40,7 @@ func main() {
|
||||||
propPair[1] = strconv.Itoa(int(versionCode + 1))
|
propPair[1] = strconv.Itoa(int(versionCode + 1))
|
||||||
log.Info("updated version code to ", propPair[1])
|
log.Info("updated version code to ", propPair[1])
|
||||||
case "RELEASE_NOTES":
|
case "RELEASE_NOTES":
|
||||||
propPair[1] = "sing-box " + newTag
|
propPair[1] = "sing-box " + newVersion.String()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var newProps []string
|
var newProps []string
|
||||||
|
|
|
@ -15,7 +15,6 @@ import (
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
newVersion := common.Must1(build_shared.ReadTagVersion())
|
newVersion := common.Must1(build_shared.ReadTagVersion())
|
||||||
newTag := common.Must1(build_shared.ReadTag())
|
|
||||||
applePath, err := filepath.Abs("../sing-box-for-apple")
|
applePath, err := filepath.Abs("../sing-box-for-apple")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
|
@ -27,10 +26,10 @@ func main() {
|
||||||
common.Must(decoder.Decode(&project))
|
common.Must(decoder.Decode(&project))
|
||||||
objectsMap := project["objects"].(map[string]any)
|
objectsMap := project["objects"].(map[string]any)
|
||||||
projectContent := string(common.Must1(os.ReadFile("sing-box.xcodeproj/project.pbxproj")))
|
projectContent := string(common.Must1(os.ReadFile("sing-box.xcodeproj/project.pbxproj")))
|
||||||
newContent, updated0 := findAndReplace(objectsMap, projectContent, []string{"io.nekohasekai.sfa"}, newVersion)
|
newContent, updated0 := findAndReplace(objectsMap, projectContent, []string{"io.nekohasekai.sfa"}, newVersion.VersionString())
|
||||||
newContent, updated1 := findAndReplace(objectsMap, newContent, []string{"io.nekohasekai.sfa.independent", "io.nekohasekai.sfa.system"}, newTag)
|
newContent, updated1 := findAndReplace(objectsMap, newContent, []string{"io.nekohasekai.sfa.independent", "io.nekohasekai.sfa.system"}, newVersion.String())
|
||||||
if updated0 || updated1 {
|
if updated0 || updated1 {
|
||||||
log.Info("updated version to ", newTag)
|
log.Info("updated version to ", newVersion.VersionString())
|
||||||
common.Must(os.WriteFile("sing-box.xcodeproj/project.pbxproj.bak", []byte(projectContent), 0o644))
|
common.Must(os.WriteFile("sing-box.xcodeproj/project.pbxproj.bak", []byte(projectContent), 0o644))
|
||||||
common.Must(os.WriteFile("sing-box.xcodeproj/project.pbxproj", []byte(newContent), 0o644))
|
common.Must(os.WriteFile("sing-box.xcodeproj/project.pbxproj", []byte(newContent), 0o644))
|
||||||
} else {
|
} else {
|
||||||
|
@ -44,6 +43,10 @@ func findAndReplace(objectsMap map[string]any, projectContent string, bundleIDLi
|
||||||
for _, objectKey := range objectKeyList {
|
for _, objectKey := range objectKeyList {
|
||||||
matchRegexp := common.Must1(regexp.Compile(objectKey + ".*= \\{"))
|
matchRegexp := common.Must1(regexp.Compile(objectKey + ".*= \\{"))
|
||||||
indexes := matchRegexp.FindStringIndex(projectContent)
|
indexes := matchRegexp.FindStringIndex(projectContent)
|
||||||
|
if len(indexes) < 2 {
|
||||||
|
println(projectContent)
|
||||||
|
log.Fatal("failed to find object key ", objectKey, ": ", strings.Index(projectContent, objectKey))
|
||||||
|
}
|
||||||
indexStart := indexes[1]
|
indexStart := indexes[1]
|
||||||
indexEnd := indexStart + strings.Index(projectContent[indexStart:], "}")
|
indexEnd := indexStart + strings.Index(projectContent[indexStart:], "}")
|
||||||
versionStart := indexStart + strings.Index(projectContent[indexStart:indexEnd], "MARKETING_VERSION = ") + 20
|
versionStart := indexStart + strings.Index(projectContent[indexStart:indexEnd], "MARKETING_VERSION = ") + 20
|
||||||
|
@ -53,7 +56,7 @@ func findAndReplace(objectsMap map[string]any, projectContent string, bundleIDLi
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
updated = true
|
updated = true
|
||||||
projectContent = projectContent[indexStart:versionStart] + newVersion + projectContent[versionEnd:indexEnd]
|
projectContent = projectContent[:versionStart] + newVersion + projectContent[versionEnd:]
|
||||||
}
|
}
|
||||||
return projectContent, updated
|
return projectContent, updated
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue