Add tool to set commit status. (#812)

Add tool to set commit status.

Reviewed-on: https://codeberg.org/gitnex/GitNex/pulls/812
Reviewed-by: 6543 <6543@noreply.codeberg.org>
Co-Authored-By: opyale <opyale@noreply.codeberg.org>
Co-Committed-By: opyale <opyale@noreply.codeberg.org>
This commit is contained in:
opyale 2021-01-26 23:21:47 +01:00 committed by 6543
parent 20b203c4ad
commit d0c06a65f4
2 changed files with 65 additions and 5 deletions

View File

@ -1,17 +1,20 @@
stages:
- test
- build
- sign
- publish
test:
image: nextcloudci/android:android-49
stage: test
on_setup:
image: tutum/curl
stage: .pre
only:
- master
- tags
variables:
INSTANCE: "https://codeberg.org"
MAIN_REPO: gitnex/GitNex
STATE: pending
script:
- ./gradlew test
- ./scripts/add_commit_status.sh
build:
image: nextcloudci/android:android-49
@ -67,3 +70,31 @@ release:
script:
- "[[ $CI_COMMIT_REF_NAME == *'-rc'* ]] && echo 'Upload blocked. Build seems to be a release candidate.' && exit 0"
- curl -T "$PLUGIN_FILE" -u "$WEBDAV_USERNAME":"$WEBDAV_PASSWORD" 'https://cloud.swatian.com/remote.php/dav/files/GitNexBot/gitnex/releases/'"$CI_COMMIT_REF_NAME"'.apk'
on_success:
image: tutum/curl
stage: .post
only:
- master
- tags
variables:
INSTANCE: "https://codeberg.org"
MAIN_REPO: gitnex/GitNex
STATE: success
script:
- ./scripts/add_commit_status.sh
when: on_success
on_failure:
image: tutum/curl
stage: .post
only:
- master
- tags
variables:
INSTANCE: "https://codeberg.org"
MAIN_REPO: gitnex/GitNex
STATE: failure
script:
- ./scripts/add_commit_status.sh
when: on_failure

View File

@ -0,0 +1,29 @@
#!/bin/bash
# Environment variables which have to be set in order for this to work properly
# @author opyale
#
# INSTANCE (e.g. https://codeberg.org)
# MAIN_REPO (e.g. gitnex/GitNex)
# STATE (e.g. pending, success, error, failure or warning)
# CI_COMMIT_SHA; BOT_TOKEN
context="GitLab CI"
description="GitLab continuous integration tool"
state=$STATE
target_url="https://gitlab.com/opyale/gitnex/-/pipelines"
body='
{
"context": "'$context'",
"description": "'$description'",
"state": "'$state'",
"target_url": "'$target_url'"
}
'
curl --request POST \
--data "$body" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
"${INSTANCE}/api/v1/repos/${MAIN_REPO}/statuses/${CI_COMMIT_SHA}?token=${BOT_TOKEN}"