add ci script
This commit is contained in:
parent
0c8e75e82e
commit
dff4090678
28
.gitlab-ci.yml
Normal file
28
.gitlab-ci.yml
Normal file
@ -0,0 +1,28 @@
|
||||
stages:
|
||||
- check
|
||||
- release
|
||||
|
||||
build:
|
||||
stage: check
|
||||
image: registry.gitlab.com/wolutator/base-build-env:latest
|
||||
tags:
|
||||
- hottis
|
||||
- linux
|
||||
- docker
|
||||
script:
|
||||
- for I in *.py; do python -m py_compile $I; done
|
||||
- for I in *.py; do python -m pycodestyle $I; done
|
||||
|
||||
release:
|
||||
stage: release
|
||||
image: registry.gitlab.com/wolutator/base-build-env
|
||||
tags:
|
||||
- hottis
|
||||
- linux
|
||||
- docker
|
||||
only:
|
||||
- master
|
||||
script:
|
||||
- python gitlabreleaseuploader.py -p $PRIVATE_TOKEN -i $CI_PROJECT_ID -u $CI_PROJECT_URL
|
||||
-f gitlabreleaseuploader.py -F info.json -T $CI_COMMIT_REF_NAME
|
||||
|
@ -74,7 +74,8 @@ if (releaseInfoFilename):
|
||||
if 'releaseTagTarget' in releaseInfo:
|
||||
releaseTagTarget = releaseInfo['releaseTagTarget']
|
||||
if 'createReleaseTag' in releaseInfo:
|
||||
createReleaseTag = (releaseInfo['createReleaseTag'] in ('true', 'True'))
|
||||
createReleaseTag = (releaseInfo['createReleaseTag'] in
|
||||
('true', 'True'))
|
||||
if 'description' in releaseInfo:
|
||||
releaseDescription = releaseInfo['description']
|
||||
|
||||
@ -109,14 +110,10 @@ uploadResultJson = json.loads(uploadResult.text)
|
||||
|
||||
# --- create release tag
|
||||
if createReleaseTag:
|
||||
createReleaseTagUrl = "%s/api/v4//projects/%s/repository/tags" % (instanceUrl, projectId)
|
||||
headers = {"PRIVATE-TOKEN": privateToken, "Content-Type": "application/json"}
|
||||
|
||||
# id (required) - The ID or URL-encoded path of the project owned by the authenticated user
|
||||
# tag_name (required) - The name of a tag
|
||||
# ref (required) - Create tag using commit SHA, another tag name, or branch name.
|
||||
# message (optional) - Creates annotated tag.
|
||||
# release_description (optional) - Add release notes to the git tag and store it in the GitLab database.
|
||||
createReleaseTagUrl =
|
||||
"%s/api/v4//projects/%s/repository/tags" % (instanceUrl, projectId)
|
||||
headers = {"PRIVATE-TOKEN": privateToken,
|
||||
"Content-Type": "application/json"}
|
||||
|
||||
payloadCreateReleaseTag = {
|
||||
"tag_name": releaseTag,
|
||||
@ -125,8 +122,9 @@ if createReleaseTag:
|
||||
"message": "Tag for release %s" % releaseName
|
||||
}
|
||||
|
||||
createReleaseTagResult = requests.post(createReleaseTagUrl, headers=headers,
|
||||
data=json.dumps(payloadCreateReleaseTag))
|
||||
createReleaseTagResult =
|
||||
requests.post(createReleaseTagUrl, headers=headers,
|
||||
data=json.dumps(payloadCreateReleaseTag))
|
||||
|
||||
if createReleaseTagResult.status_code != 201:
|
||||
print(createReleaseTagResult)
|
||||
|
12
readme.md
Normal file
12
readme.md
Normal file
@ -0,0 +1,12 @@
|
||||
Release Uploader for Gitlab
|
||||
===========================
|
||||
|
||||
Creating releases on Gitlab seems to work only via the REST API.
|
||||
|
||||
This Python script handles the upload of a release file, the creation of
|
||||
the required release tag in the repository and the creation of the actual
|
||||
release referring to both the tag and the file.
|
||||
|
||||
It supports commandline options and an input file, adjusted to be used in
|
||||
Gitlab CI scripts.
|
||||
|
Reference in New Issue
Block a user