mirror of
https://github.com/github/codeql-action.git
synced 2026-01-01 20:20:07 +08:00
56 lines
2.0 KiB
Python
56 lines
2.0 KiB
Python
import argparse
|
|
import json
|
|
import os
|
|
import configparser
|
|
|
|
# Name of the remote
|
|
ORIGIN = 'origin'
|
|
|
|
script_dir = os.path.dirname(os.path.realpath(__file__))
|
|
grandparent_dir = os.path.dirname(os.path.dirname(script_dir))
|
|
|
|
config = configparser.ConfigParser()
|
|
with open(os.path.join(grandparent_dir, 'releases.ini')) as stream:
|
|
config.read_string('[default]\n' + stream.read())
|
|
|
|
OLDEST_SUPPORTED_MAJOR_VERSION = int(config['default']['OLDEST_SUPPORTED_MAJOR_VERSION'])
|
|
|
|
def main():
|
|
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument("--major-version", required=True, type=str, help="The major version of the release")
|
|
parser.add_argument("--latest-tag", required=True, type=str, help="The most recent tag published to the repository")
|
|
args = parser.parse_args()
|
|
|
|
major_version = args.major_version
|
|
latest_tag = args.latest_tag
|
|
|
|
print("major_version: " + major_version)
|
|
print("latest_tag: " + latest_tag)
|
|
|
|
# If this is a primary release, we backport to all supported branches,
|
|
# so we check whether the major_version taken from the package.json
|
|
# is greater than or equal to the latest tag pulled from the repo.
|
|
# For example...
|
|
# 'v1' >= 'v2' is False # we're operating from an older release branch and should not backport
|
|
# 'v2' >= 'v2' is True # the normal case where we're updating the current version
|
|
# 'v3' >= 'v2' is True # in this case we are making the first release of a new major version
|
|
consider_backports = ( major_version >= latest_tag.split(".")[0] )
|
|
|
|
with open(os.environ["GITHUB_OUTPUT"], "a") as f:
|
|
|
|
f.write(f"backport_source_branch=releases/{major_version}\n")
|
|
|
|
backport_target_branches = []
|
|
|
|
if consider_backports:
|
|
for i in range(int(major_version.strip("v"))-1, 0, -1):
|
|
branch_name = f"releases/v{i}"
|
|
if i >= OLDEST_SUPPORTED_MAJOR_VERSION:
|
|
backport_target_branches.append(branch_name)
|
|
|
|
f.write("backport_target_branches="+json.dumps(backport_target_branches)+"\n")
|
|
|
|
if __name__ == "__main__":
|
|
main()
|