88 them to be in an uploadable state.
99 2. Upload these packages to a storage in a format that apt and yum expect.
1010"""
11- import subprocess
11+ from subprocess import Popen , PIPE
1212import os
1313import argparse
1414import base64
@@ -102,19 +102,21 @@ def create_distribution_conf(self,
102102 dist: contains all the pkgs and signed releases that are necessary for an apt download.
103103 """
104104 def create_deb_pkgs (self , release , deb_file ):
105- self ._clean_build_resources ()
106- subprocess .call (("reprepro" , "includedeb" , release , deb_file ), timeout = 120 )
107-
108- """
109- This is mostly useful to clear previously built db, dist and pool resources.
110- """
111- def _clean_build_resources (self ):
112- subprocess .call (("reprepro" , "clearvanished" ), timeout = 120 )
105+ print (f"creating deb pkgs: { release } : { deb_file } " )
106+ p = Popen (["reprepro" , "includedeb" , release , deb_file ], stdout = PIPE , stderr = PIPE )
107+ out , err = p .communicate ()
108+ if p .returncode != 0 :
109+ print (f"create deb_pkgs result => { out } , { err } " )
110+ raise
113111
114112 # TODO https://jira.cfops.it/browse/TUN-6209 : Sign these packages.
115113 def create_rpm_pkgs (self , artifacts_path ):
116114 self ._setup_rpm_pkg_directories (artifacts_path )
117- subprocess .call (("createrepo" , "./rpm" ), timeout = 120 )
115+ p = Popen (["createrepo" , "./rpm" ], stdout = PIPE , stderr = PIPE )
116+ out , err = p .communicate ()
117+ if p .returncode != 0 :
118+ print (f"create rpm_pkgs result => { out } , { err } " )
119+ raise
118120
119121 """
120122 sets up the RPM directories in the following format:
@@ -180,7 +182,7 @@ def upload_from_directories(pkg_uploader, directory, release, binary):
180182 gpg_key_id: is an id indicating the key the package should be signed with. The public key of this id will be
181183 uploaded to R2 so it can be presented to apt downloaders.
182184
183- release_version: is the cloudflared release version.
185+ release_version: is the cloudflared release version. Only provide this if you want a permanent backup.
184186"""
185187def create_deb_packaging (pkg_creator , pkg_uploader , releases , gpg_key_id , binary_name , archs , package_component , release_version ):
186188 # set configuration for package creation.
@@ -205,9 +207,10 @@ def create_deb_packaging(pkg_creator, pkg_uploader, releases, gpg_key_id, binary
205207 upload_from_directories (pkg_uploader , "dists" , None , binary_name )
206208 upload_from_directories (pkg_uploader , "pool" , None , binary_name )
207209
208- print (f"uploading versioned release { release_version } to r2..." )
209- upload_from_directories (pkg_uploader , "dists" , release_version , binary_name )
210- upload_from_directories (pkg_uploader , "pool" , release_version , binary_name )
210+ if release_version :
211+ print (f"uploading versioned release { release_version } to r2..." )
212+ upload_from_directories (pkg_uploader , "dists" , release_version , binary_name )
213+ upload_from_directories (pkg_uploader , "pool" , release_version , binary_name )
211214
212215def create_rpm_packaging (pkg_creator , pkg_uploader , artifacts_path , release_version , binary_name ):
213216 print (f"creating rpm pkgs..." )
@@ -216,8 +219,9 @@ def create_rpm_packaging(pkg_creator, pkg_uploader, artifacts_path, release_vers
216219 print ("uploading latest to r2..." )
217220 upload_from_directories (pkg_uploader , "rpm" , None , binary_name )
218221
219- print (f"uploading versioned release { release_version } to r2..." )
220- upload_from_directories (pkg_uploader , "rpm" , release_version , binary_name )
222+ if release_version :
223+ print (f"uploading versioned release { release_version } to r2..." )
224+ upload_from_directories (pkg_uploader , "rpm" , release_version , binary_name )
221225
222226
223227def parse_args ():
@@ -239,7 +243,7 @@ def parse_args():
239243 )
240244 parser .add_argument (
241245 "--release-tag" , default = os .environ .get ("RELEASE_VERSION" ), help = "Release version you want your pkgs to be\
242- prefixed with"
246+ prefixed with. Leave empty if you don't want tagged release versions backed up to R2. "
243247 )
244248
245249 parser .add_argument (
@@ -281,6 +285,7 @@ def parse_args():
281285 gpg_key_id = pkg_creator .import_gpg_keys (args .gpg_private_key , args .gpg_public_key )
282286
283287 pkg_uploader = PkgUploader (args .account , args .bucket , args .id , args .secret )
288+ print (f"signing with gpg_key: { gpg_key_id } " )
284289 create_deb_packaging (pkg_creator , pkg_uploader , args .deb_based_releases , gpg_key_id , args .binary , args .archs ,
285290 "main" , args .release_tag )
286291
0 commit comments