Allow overriding version number in create_release.py This changes the CLI syntax for create_relase.py to be more compatible with argparse, but we don't run it often manually anyway.
diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 0a55ec0..7fcd678 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml
@@ -17,7 +17,7 @@ - name: Checkout repo uses: actions/checkout@v4 - name: Run create_release.py - run: python3 scripts/create_release.py ${{ inputs.lto-sha }} ${{ inputs.nonlto-sha }} --action + run: python3 scripts/create_release.py -r ${{ inputs.lto-sha }} -a ${{ inputs.nonlto-sha }} --action - name: Create PR id: cpr uses: peter-evans/create-pull-request@v6
diff --git a/scripts/create_release.py b/scripts/create_release.py index c544359..45c49f2 100755 --- a/scripts/create_release.py +++ b/scripts/create_release.py
@@ -1,5 +1,6 @@ #!/usr/bin/env python3 +import argparse import json import os import re @@ -20,26 +21,36 @@ return key -def main(args): +def main(): if subprocess.check_output(['git', 'status', '--porcelain'], cwd=root_dir).strip(): print('tree is not clean') sys.exit(1) - release_info = emsdk.load_releases_info() - new_version = version_key(release_info['aliases']['latest'])[0] - new_version[-1] += 1 + parser = argparse.ArgumentParser() + parser.add_argument('-r', '--release-hash') + parser.add_argument('-a', '--asserts-hash') + parser.add_argument('-v', '--new-version') + parser.add_argument('--action', action='store_true') + options = parser.parse_args() - new_version = '.'.join(str(part) for part in new_version) + release_info = emsdk.load_releases_info() + if options.new_version: + new_version = options.new_version + else: + new_version = version_key(release_info['aliases']['latest'])[0] + new_version[-1] += 1 + new_version = '.'.join(str(part) for part in new_version) + asserts_hash = None is_github_runner = False - if args: - new_hash = args[0] - if len(args) > 1: - asserts_hash = args[1] - if len(args) > 2 and args[2] == '--action': - is_github_runner = True + if options.release_hash: + new_hash = options.release_hash + asserts_hash = options.asserts_hash else: new_hash = emsdk.get_emscripten_releases_tot() + if options.action: + is_github_runner = True + print('Creating new release: %s -> %s' % (new_version, new_hash)) release_info['releases'][new_version] = new_hash if asserts_hash: @@ -81,4 +92,4 @@ if __name__ == '__main__': - sys.exit(main(sys.argv[1:])) + sys.exit(main())