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:
|
if 'releaseTagTarget' in releaseInfo:
|
||||||
releaseTagTarget = releaseInfo['releaseTagTarget']
|
releaseTagTarget = releaseInfo['releaseTagTarget']
|
||||||
if 'createReleaseTag' in releaseInfo:
|
if 'createReleaseTag' in releaseInfo:
|
||||||
createReleaseTag = (releaseInfo['createReleaseTag'] in ('true', 'True'))
|
createReleaseTag = (releaseInfo['createReleaseTag'] in
|
||||||
|
('true', 'True'))
|
||||||
if 'description' in releaseInfo:
|
if 'description' in releaseInfo:
|
||||||
releaseDescription = releaseInfo['description']
|
releaseDescription = releaseInfo['description']
|
||||||
|
|
||||||
@ -109,14 +110,10 @@ uploadResultJson = json.loads(uploadResult.text)
|
|||||||
|
|
||||||
# --- create release tag
|
# --- create release tag
|
||||||
if createReleaseTag:
|
if createReleaseTag:
|
||||||
createReleaseTagUrl = "%s/api/v4//projects/%s/repository/tags" % (instanceUrl, projectId)
|
createReleaseTagUrl =
|
||||||
headers = {"PRIVATE-TOKEN": privateToken, "Content-Type": "application/json"}
|
"%s/api/v4//projects/%s/repository/tags" % (instanceUrl, projectId)
|
||||||
|
headers = {"PRIVATE-TOKEN": privateToken,
|
||||||
# id (required) - The ID or URL-encoded path of the project owned by the authenticated user
|
"Content-Type": "application/json"}
|
||||||
# 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.
|
|
||||||
|
|
||||||
payloadCreateReleaseTag = {
|
payloadCreateReleaseTag = {
|
||||||
"tag_name": releaseTag,
|
"tag_name": releaseTag,
|
||||||
@ -125,7 +122,8 @@ if createReleaseTag:
|
|||||||
"message": "Tag for release %s" % releaseName
|
"message": "Tag for release %s" % releaseName
|
||||||
}
|
}
|
||||||
|
|
||||||
createReleaseTagResult = requests.post(createReleaseTagUrl, headers=headers,
|
createReleaseTagResult =
|
||||||
|
requests.post(createReleaseTagUrl, headers=headers,
|
||||||
data=json.dumps(payloadCreateReleaseTag))
|
data=json.dumps(payloadCreateReleaseTag))
|
||||||
|
|
||||||
if createReleaseTagResult.status_code != 201:
|
if createReleaseTagResult.status_code != 201:
|
||||||
|
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