Skip to content

Commit 0180b6d

Browse files
TUN-6146: Release_pkgs is now a generic command line script
1 parent 9ef6191 commit 0180b6d

File tree

1 file changed

+55
-18
lines changed

1 file changed

+55
-18
lines changed

release_pkgs.py

Lines changed: 55 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
"""
1111
import subprocess
1212
import os
13+
import argparse
1314
import logging
1415
from hashlib import sha256
1516

@@ -166,23 +167,59 @@ def create_deb_packaging(pkg_creator, pkg_uploader, releases, gpg_key_id, binary
166167
upload_from_directories(pkg_uploader, "dists", release_version, binary_name)
167168
upload_from_directories(pkg_uploader, "pool", release_version, binary_name)
168169

169-
#TODO: https://jira.cfops.it/browse/TUN-6146 will extract this into it's own command line script.
170+
def parse_args():
171+
parser = argparse.ArgumentParser(
172+
description="Creates linux releases and uploads them in a packaged format"
173+
)
174+
175+
parser.add_argument(
176+
"--bucket", default=os.environ.get("R2_BUCKET_NAME"), help="R2 Bucket name"
177+
)
178+
parser.add_argument(
179+
"--id", default=os.environ.get("R2_CLIENT_ID"), help="R2 Client ID"
180+
)
181+
parser.add_argument(
182+
"--secret", default=os.environ.get("R2_CLIENT_SECRET"), help="R2 Client Secret"
183+
)
184+
parser.add_argument(
185+
"--account", default=os.environ.get("R2_ACCOUNT_ID"), help="R2 Account Tag"
186+
)
187+
parser.add_argument(
188+
"--release-tag", default=os.environ.get("RELEASE_VERSION"), help="Release version you want your pkgs to be\
189+
prefixed with"
190+
)
191+
192+
parser.add_argument(
193+
"--binary", default=os.environ.get("BINARY_NAME"), help="The name of the binary the packages are for"
194+
)
195+
196+
parser.add_argument(
197+
"--gpg-key-id", default=os.environ.get("GPG_KEY_ID"), help="gpg key ID that's being used to sign release\
198+
packages."
199+
)
200+
201+
parser.add_argument(
202+
"--deb-based-releases", default=["bookworm", "bullseye", "buster", "jammy", "impish", "focal", "bionic"],
203+
help="list of debian based releases that need to be packaged for"
204+
)
205+
206+
parser.add_argument(
207+
"--archs", default=["amd64", "386", "arm64"], help="list of architectures we want to package for. Note that\
208+
it is the caller's responsiblity to ensure that these debs are already present in a directory. This script\
209+
will not build binaries or create their debs."
210+
)
211+
args = parser.parse_args()
212+
213+
return args
214+
170215
if __name__ == "__main__":
171-
# initialise pkg creator
216+
try:
217+
args = parse_args()
218+
except Exception as e:
219+
logging.exception(e)
220+
exit(1)
221+
172222
pkg_creator = PkgCreator()
173-
174-
# initialise pkg uploader
175-
bucket_name = os.getenv('R2_BUCKET_NAME')
176-
client_id = os.getenv('R2_CLIENT_ID')
177-
client_secret = os.getenv('R2_CLIENT_SECRET')
178-
tunnel_account_id = os.getenv('R2_ACCOUNT_ID')
179-
release_version = os.getenv('RELEASE_VERSION')
180-
gpg_key_id = os.getenv('GPG_KEY_ID')
181-
182-
pkg_uploader = PkgUploader(tunnel_account_id, bucket_name, client_id, client_secret)
183-
184-
archs = ["amd64", "386", "arm64"]
185-
debian_releases = ["bookworm", "bullseye", "buster"]
186-
ubuntu_releases = ["jammy", "impish", "focal", "bionic"]
187-
deb_based_releases = debian_releases + ubuntu_releases
188-
create_deb_packaging(pkg_creator, pkg_uploader, deb_based_releases, gpg_key_id, "cloudflared", archs, "main", release_version)
223+
pkg_uploader = PkgUploader(args.account, args.bucket, args.id, args.secret)
224+
create_deb_packaging(pkg_creator, pkg_uploader, args.deb_based_releases, args.gpg_key_id, args.binary,
225+
args.archs, "main", args.release_tag)

0 commit comments

Comments
 (0)