|
10 | 10 | """ |
11 | 11 | import subprocess |
12 | 12 | import os |
| 13 | +import argparse |
13 | 14 | import logging |
14 | 15 | from hashlib import sha256 |
15 | 16 |
|
@@ -166,23 +167,59 @@ def create_deb_packaging(pkg_creator, pkg_uploader, releases, gpg_key_id, binary |
166 | 167 | upload_from_directories(pkg_uploader, "dists", release_version, binary_name) |
167 | 168 | upload_from_directories(pkg_uploader, "pool", release_version, binary_name) |
168 | 169 |
|
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 | + |
170 | 215 | 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 | + |
172 | 222 | 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