add clash build version in ci

This commit is contained in:
yichengchen 2019-09-30 14:42:28 +08:00 committed by Yicheng
parent db4e4f2e0f
commit eb29a86ce1
3 changed files with 54 additions and 3 deletions

1
.gitignore vendored
View File

@ -6,3 +6,4 @@ ClashX/Resources/dashboard
ClashX.app
*.dmg
**/xcuserdata/
.idea

View File

@ -20,9 +20,9 @@ install:
- cd ..
- brew update
- echo `go version`
- brew upgrade go || true
- echo `go version`
- CGO_CFLAGS=-mmacosx-version-min=10.10 CGO_LDFLAGS=-mmacosx-version-min=10.10 go build -buildmode=c-archive
#- brew upgrade go || true
#- echo `go version`
- python3 ci_build_clash.py
- cd $TRAVIS_BUILD_DIR
script:

50
ClashX/ci_build_clash.py Normal file
View File

@ -0,0 +1,50 @@
import subprocess
import datetime
import plistlib
def get_version():
with open('./go.mod') as file:
for line in file.readlines():
if "require" in line:
return line.split(" ")[-1].strip()
return "unknown"
def build_clash(version):
build_time = datetime.datetime.now().strftime("%Y-%m-%d-%H%M")
command = f"""CGO_CFLAGS=-mmacosx-version-min=10.12 \
CGO_LDFLAGS=-mmacosx-version-min=10.10 \
GOBUILD=CGO_ENABLED=0 \
go build -ldflags '-X "github.com/Dreamacro/clash/constant.Version={version}" \
-X "github.com/Dreamacro/clash/constant.BuildTime={build_time}"' \
-buildmode=c-archive """
subprocess.check_output(command, shell=True)
def write_to_info(version):
path = "info.plist"
with open(path, 'rb') as f:
contents = plistlib.load(f)
if not contents:
exit(-1)
contents["coreVersion"] = version
with open(path, 'wb') as f:
plistlib.dump(contents, f, sort_keys=False)
def run():
version = get_version()
print("current clash version: ", version)
build_clash(version)
print("build static library complete!")
print("writing info.plist")
write_to_info(version)
print("done")
if __name__ == "__main__":
run()