@@ -120,6 +120,26 @@ def create_rpm_pkgs(self, artifacts_path, gpg_key_name):
120120
121121 self ._sign_repomd ()
122122
123+ """
124+ creates a <binary>.repo file with details like so
125+ [cloudflared-stable]
126+ name=cloudflared-stable
127+ baseurl=https://pkg.cloudflare.com/cloudflared/rpm
128+ enabled=1
129+ type=rpm
130+ gpgcheck=1
131+ gpgkey=https://pkg.cloudflare.com/cloudflare-main.gpg
132+ """
133+ def create_repo_file (self , file_path , binary_name , baseurl , gpgkey_url ):
134+ with open (file_path , "w+" ) as repo_file :
135+ repo_file .write (f"[{ binary_name } -stable]" )
136+ repo_file .write (f"{ binary_name } -stable" )
137+ repo_file .write (f"baseurl={ baseurl } /rpm" )
138+ repo_file .write ("enabled=1" )
139+ repo_file .write ("type=rpm" )
140+ repo_file .write ("gpgcheck=1" )
141+ repo_file .write (f"gpgkey={ gpgkey_url } " )
142+
123143 def _sign_rpms (self , file_path ):
124144 p = Popen (["rpm" , "--define" , f"_gpg_name { gpg_key_name } " , "--addsign" , file_path ], stdout = PIPE , stderr = PIPE )
125145 out , err = p .communicate ()
@@ -246,9 +266,19 @@ def create_deb_packaging(pkg_creator, pkg_uploader, releases, gpg_key_id, binary
246266 upload_from_directories (pkg_uploader , "dists" , release_version , binary_name )
247267 upload_from_directories (pkg_uploader , "pool" , release_version , binary_name )
248268
249- def create_rpm_packaging (pkg_creator , pkg_uploader , artifacts_path , release_version , binary_name , gpg_key_name ):
269+ def create_rpm_packaging (
270+ pkg_creator ,
271+ pkg_uploader ,
272+ artifacts_path ,
273+ release_version ,
274+ binary_name ,
275+ gpg_key_name ,
276+ base_url ,
277+ gpg_key_url ,
278+ ):
250279 print (f"creating rpm pkgs..." )
251280 pkg_creator .create_rpm_pkgs (artifacts_path , gpg_key_name )
281+ pkg_creator .create_repo_file (artifacts_path , binary_name , base_url , gpg_key_url )
252282
253283 print ("uploading latest to r2..." )
254284 upload_from_directories (pkg_uploader , "rpm" , None , binary_name )
@@ -294,6 +324,15 @@ def parse_args():
294324 signing packages"
295325 )
296326
327+ parser .add_argument (
328+ "--gpg-public-key-url" , default = os .environ .get ("GPG_PUBLIC_KEY_URL" ), help = "GPG public key url that\
329+ downloaders can use to verify signing"
330+ )
331+
332+ parser .add_argument (
333+ "--pkg-upload-url" , default = os .environ .get ("PKG_URL" ), help = "URL to be used by downloaders"
334+ )
335+
297336 parser .add_argument (
298337 "--deb-based-releases" , default = ["bookworm" , "bullseye" , "buster" , "jammy" , "impish" , "focal" , "bionic" ],
299338 help = "list of debian based releases that need to be packaged for"
@@ -324,4 +363,13 @@ def parse_args():
324363 create_deb_packaging (pkg_creator , pkg_uploader , args .deb_based_releases , gpg_key_id , args .binary , args .archs ,
325364 "main" , args .release_tag )
326365
327- create_rpm_packaging (pkg_creator , pkg_uploader , "./built_artifacts" , args .release_tag , args .binary , gpg_key_name )
366+ create_rpm_packaging (
367+ pkg_creator ,
368+ pkg_uploader ,
369+ "./built_artifacts" ,
370+ args .release_tag ,
371+ args .binary ,
372+ gpg_key_name ,
373+ args .gpg_public_key_url ,
374+ args .pkg_upload_url ,
375+ )
0 commit comments