Skip to content

Commit 5aa4851

Browse files
committed
Added package.py to simplify the packaging process.
1 parent 3a77bf5 commit 5aa4851

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

package.py

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
import os
2+
import json
3+
import re
4+
from git import Repo, TagReference
5+
6+
def readVersionFromPackageJson():
7+
packageJson = open("package.json", "r")
8+
contentRaw = packageJson.read()
9+
contentJson = json.loads(contentRaw)
10+
packageJson.close()
11+
return contentJson["version"]
12+
13+
def isPackageJsonVersionTagged(repo, packageJsonVersion):
14+
packageJsonVersionTagFound = False
15+
for tag in repo.tags:
16+
if tag.name == packageJsonVersion:
17+
packageJsonVersionTagFound = True
18+
break
19+
return packageJsonVersionTagFound
20+
21+
def isChangeLogUpdatedWithPackageJsonVersion(packageJsonVersion):
22+
packageJsonVersionChangeLogEntryFound = False
23+
changeLog = open("CHANGELOG.md", "r")
24+
changeLogContent = changeLog.readlines()
25+
changeLog.close()
26+
for line in changeLogContent:
27+
match = re.search(f"^## Version {packageJsonVersion}$", line)
28+
if match:
29+
packageJsonVersionChangeLogEntryFound = True
30+
break
31+
return packageJsonVersionChangeLogEntryFound
32+
33+
def packageExtension():
34+
os.system("vsce package")
35+
36+
def main():
37+
packageJsonVersion = readVersionFromPackageJson()
38+
repo = Repo("./")
39+
packageJsonVersionTagFound = isPackageJsonVersionTagged(repo, packageJsonVersion)
40+
packageJsonVersionChangeLogEntryFound = isChangeLogUpdatedWithPackageJsonVersion(packageJsonVersion)
41+
42+
if not packageJsonVersionChangeLogEntryFound:
43+
print("Fail: CHANGELOG.md not update!")
44+
else:
45+
if not packageJsonVersionTagFound:
46+
print(f"New version found in package.json: {packageJsonVersion}.")
47+
print("Creating tag in Git...")
48+
repo.create_tag(packageJsonVersion)
49+
print("Creating vsix package...")
50+
packageExtension()
51+
else:
52+
print(f"Fail: Version already tagged: {packageJsonVersion}.")
53+
print("No vsix package created")
54+
55+
main()

0 commit comments

Comments
 (0)