Skip to content

Commit

Permalink
moved release logic
Browse files Browse the repository at this point in the history
  • Loading branch information
7h3Rabbit committed Nov 18, 2024
1 parent 5ec7cbd commit 68048c9
Show file tree
Hide file tree
Showing 6 changed files with 105 additions and 571 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/create-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ jobs:
include-hashes: false
- name: Generate new release version
id: newversion
run: python tools/release.py -l "${{ steps.changes.outputs.last-tag }}"
run: python default.py --create-release "${{ steps.changes.outputs.last-tag }}"
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/prep-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:
include-hashes: false
- name: Generate new release version
id: newversion
run: python tools/release.py -u "${{ steps.changes.outputs.last-tag }}"
run: python default.py --prepare-release "${{ steps.changes.outputs.last-tag }}"
- name: Create pull request
uses: peter-evans/create-pull-request@v7
with:
Expand Down
12 changes: 12 additions & 0 deletions default.py
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,14 @@ def update_carbon_rating(self, _):
update_mdn_rules()
sys.exit(0)

def prepare_release(self, argv):
update_release_version(argv)
sys.exit(0)

def create_release(self, argv):
set_new_release_version_in_env(argv)
sys.exit(0)

def update_translations(self, _):
if validate_translations():
sys.exit(0)
Expand Down Expand Up @@ -541,6 +549,8 @@ def handle_option(self, opt, arg):
("--ums", "--update-mdn-sources"): self.update_mdn,
("--ucr", "--update-carbon-rating"): self.update_carbon_rating,
("--ut", "--update-translations"): self.update_translations,
("--pr", "--prepare-release"): self.prepare_release,
("--cr", "--create-release"): self.create_release,
("-s", "--setting"): self.set_setting,
("-ss", "--save-setting"): self.save_setting
}
Expand Down Expand Up @@ -588,6 +598,8 @@ def main(argv):
"ums", "update-mdn-sources",
"update-browser", "update-definitions=",
"update-translations",
"pr=", "create-release=",
"cr=", "create-release=",
"update-carbon-rating",
"is=", "it=", "setting=", "save-setting="])
except getopt.GetoptError:
Expand Down
91 changes: 91 additions & 0 deletions helpers/release_helper.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
import json
import os
import getopt
from pathlib import Path
import sys
from datetime import datetime
import packaging.version

def get_new_version(last_version):
"""
Generates a new version number based on the current date and the last version number.
Args:
last_version (packaging.version.Version): The last version number.
Returns:
packaging.version.Version: The new version number.
"""
print('last_version', last_version)
new_version = packaging.version.Version(f"{datetime.now().year}.{datetime.now().month}.0")
if new_version <= last_version:
if last_version.major != new_version.major:
print('major new_version', new_version)
return new_version
if last_version.minor != new_version.minor:
print('minor new_version', new_version)
return new_version

new_version = packaging.version.Version(
f"{new_version.major}.{new_version.minor}.{(last_version.micro + 1)}")

print('micro new_version', new_version)
else:
print('new_version', new_version)
return new_version

def set_new_release_version_in_env(argv):
last_version = packaging.version.Version(argv)
new_version= get_new_version(last_version)

current_version = None
base_directory = Path(os.path.dirname(
os.path.realpath(__file__)) + os.path.sep).parent
with open(
f'{base_directory}{os.path.sep}package.json',
encoding='utf-8'
) as json_input_file:
package_info = json.load(json_input_file)
if 'version' in package_info:
current_version = packaging.version.Version(package_info['version'])

if current_version != new_version:
print((
'last and current version(s) do not match'
f'new version={new_version}',
f'package.json version={current_version}'
))
return

env_file = os.getenv('GITHUB_ENV')
with open(env_file, "a", encoding="utf-8") as myfile:
myfile.write(f"NEW_VERSION={new_version}")


def update_release_version(argv):
last_version = packaging.version.Version(argv)
package_info = None

base_directory = Path(os.path.dirname(
os.path.realpath(__file__)) + os.path.sep).parent
with open(
f'{base_directory}{os.path.sep}package.json',
encoding='utf-8'
) as json_input_file:
package_info = json.load(json_input_file)
package_version = packaging.version.Version(package_info['version'])
last_version = max(last_version, package_version)
new_version= get_new_version(last_version)
package_info['version'] = f'{new_version}'

with open(
f'{base_directory}{os.path.sep}package.json',
'w',
encoding='utf-8'
) as json_output_file:
json.dump(package_info, json_output_file, indent=2)

env_file = os.getenv('GITHUB_ENV')
with open(env_file, "a", encoding="utf-8") as myfile:
myfile.write(f"NEW_VERSION={new_version}")

116 changes: 0 additions & 116 deletions tools/release.py

This file was deleted.

Loading

0 comments on commit 68048c9

Please sign in to comment.