Permalink
Cannot retrieve contributors at this time
55 lines (40 sloc)
1.98 KB
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
codeql-action/.github/actions/release-branches/release-branches.py
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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() |