35
35
import stat
36
36
import subprocess
37
37
import tinys3
38
- import time
39
38
import traceback
40
39
from github3 import login
41
40
from requests .auth import HTTPBasicAuth
@@ -193,13 +192,13 @@ def upload(file_path, github_release):
193
192
def parse_version_info (version_path ):
194
193
"""Parse version info from gitlab artifacts"""
195
194
# Get name of version file
196
- version_name = os .path .split (version_path )[ 1 ]
195
+ version_name = os .path .basename (version_path )
197
196
version_info [version_name ] = {
198
197
"CI_PROJECT_NAME" : None ,
199
198
"CI_COMMIT_REF_NAME" : None ,
200
199
"CI_COMMIT_SHA" : None ,
201
200
"CI_JOB_ID" : None ,
202
- "COMMIT_DATE_UNIX " : None ,
201
+ "CI_PIPELINE_ID " : None ,
203
202
}
204
203
205
204
if os .path .exists (version_path ):
@@ -261,23 +260,13 @@ def parse_version_info(version_path):
261
260
openshot_qt_git_desc = ""
262
261
needs_upload = True
263
262
264
- # Add num of commits from libopenshot and libopenshot-audio (for naming purposes)
265
- # If not an official release
266
- if git_branch_name == "develop" :
267
- # Make filename more descriptive for daily builds (add time epoch)
268
- build_date = int (
269
- version_info .get ('openshot-qt' ).get ('COMMIT_DATE_UNIX' , 0 ))
270
- if not build_date :
271
- log .error ("Could not find commit date! %s" , version_info )
272
- build_date = int (time .time ())
273
- openshot_qt_git_desc = "OpenShot-v%s-%d" % (info .VERSION , build_date )
274
- openshot_qt_git_desc = "%s-%s-%s" % (openshot_qt_git_desc , version_info .get ('libopenshot' ).get ('CI_COMMIT_SHA' )[:8 ], version_info .get ('libopenshot-audio' ).get ('CI_COMMIT_SHA' )[:8 ])
263
+ pipeline_id = version_info .get ('openshot-qt' ).get ('CI_PIPELINE_ID' )
264
+ if git_branch_name .startswith ("release" ):
265
+ # Name release candidates with pipeline ID for uniqueness
266
+ openshot_qt_git_desc = "OpenShot-v%s-release-candidate-%s" % (
267
+ info .VERSION , pipeline_id )
275
268
# Get daily git_release object
276
269
github_release = get_release (repo , "daily" )
277
- elif git_branch_name .startswith ("release" ):
278
- # Get daily git_release object
279
- openshot_qt_git_desc = "OpenShot-v%s-release-candidate-%d" % (info .VERSION , int (time .time ()))
280
- github_release = get_release (repo , "daily" )
281
270
elif git_branch_name == "master" :
282
271
# Get official version release (i.e. v2.1.0, v2.x.x)
283
272
openshot_qt_git_desc = "OpenShot-v%s" % info .VERSION
@@ -289,12 +278,18 @@ def parse_version_info(version_path):
289
278
# Create a new release if one if missing
290
279
github_release = repo .create_release (github_release_name , target_commitish = "master" , prerelease = True )
291
280
else :
292
- # Make filename more descriptive for daily builds
293
- openshot_qt_git_desc = "OpenShot-v%s-%d" % (info .VERSION , int (time .time ()))
294
- openshot_qt_git_desc = "%s-%s-%s" % (openshot_qt_git_desc , version_info .get ('libopenshot' ).get ('CI_COMMIT_SHA' )[:8 ], version_info .get ('libopenshot-audio' ).get ('CI_COMMIT_SHA' )[:8 ])
281
+ # Generate unique name using library commit SHAs and pipeline ID
282
+ openshot_qt_git_desc = "OpenShot-v%s-%s-%s-%s" % (
283
+ info .VERSION ,
284
+ pipeline_id ,
285
+ version_info .get ('libopenshot' ).get ('CI_COMMIT_SHA' )[:8 ],
286
+ version_info .get ('libopenshot-audio' ).get ('CI_COMMIT_SHA' )[:8 ],
287
+ )
295
288
# Get daily git_release object
296
289
github_release = get_release (repo , "daily" )
297
- needs_upload = False
290
+ if git_branch_name != "develop" :
291
+ # Only upload develop-branch pipelines as Daily Builds
292
+ needs_upload = False
298
293
299
294
# Output git description
300
295
output ("git description of openshot-qt-git: %s" % openshot_qt_git_desc )
0 commit comments