Compare commits

..

No commits in common. "159a0027ff50baa7e6d21cec0e75153f52dccf64" and "90091205467d38ab0c9e7b267f5c1c5821a9dc46" have entirely different histories.

2 changed files with 74 additions and 91 deletions

View File

@ -285,6 +285,7 @@ pipeline {
}
}
}
/*
post {
failure {
matrixSendMessage https:true, hostname: 'greyn.club', port:8448, accessTokenCredentialsId: '040b63d1-2f14-4692-badb-114bddd7c5a5', roomId: '!QmOCACetHdGDlNFsZP:greyn.club', body: '1-click service failed :(', formattedBody: "1-click service <b>failed</b> :("
@ -294,4 +295,5 @@ pipeline {
//TODO: archiveArtifacts the password data, then store them somewhere
}
}
*/
}

View File

@ -5,109 +5,90 @@ pipeline {
string(name: 'videodesc', description: "video description")
}
environment {
JENKINSONGITEA=credentials('d0e86441-2157-405f-8539-a9a9010c6ecf')
JENKINSONMATRIXTOKEN=credentials('17d18fd7-29eb-4957-9532-ce42aaa9b4ec')
GITEATOKEN = credentials('d0e86441-2157-405f-8539-a9a9010c6ecf')
JENKINSMATRIX=credentials('040b63d1-2f14-4692-badb-114bddd7c5a5')
}
stages {
stage("environment setup") {
steps{
script{
if (videoname.isEmpty()) {
error("videoname mandatory")
}
if (videoname.contains(' ')) {
error("videoname cannot have spaces. try dashes.")
}
}
}
steps{
script{
if (videoname.isEmpty()) {
error("videoname mandatory")
}
if (videoname.contains(' ')) {
error("videoname cannot have spaces. try dashes.")
}
}
}
}
stage("create gitea project"){
steps{
script{
env.giteaCreateEvent=sh(returnStdout: true, script: """
curl -X 'POST' \
'https://gitea.arg.rip/api/v1/repos/beefhavers/_videotemplate/generate' \
-H 'accept: application/json' \
-H 'Authorization: token ${env.JENKINSONGITEA}' \
-H 'Content-Type: application/json' \
-d '{
"description": "${videodesc}",
"git_content": true,
"git_hooks": true,
"labels": true,
"name": "${videoname}",
"owner": "beefhavers",
"private": false,
"protected_branch": true,
"topics": true,
"webhooks": true
}'
""").trim()
if (!env.giteaCreateEvent?.trim()) {
error "couldn't make gitea repo, apparently"
}
}
sh """
curl -X 'POST' \
'https://gitea.arg.rip/api/v1/repos/beefhavers/_videotemplate/generate' \
-H 'accept: application/json' \
-H 'Authorization: token ${env.GITEATOKEN}' \
-H 'Content-Type: application/json' \
-d '{
"description": "${videodesc}",
"git_content": true,
"git_hooks": true,
"labels": true,
"name": "${videoname}",
"owner": "beefhavers",
"private": false,
"protected_branch": true,
"topics": true,
"webhooks": true
}'
"""
}
}
stage("create matrix room"){
steps{
script{
env.roomcreationevent=sh(returnStdout: true, script: """
curl -X 'POST' \
'https://greyn.club:8448/_matrix/client/v3/createRoom' \
-H 'accept: application/json' \
-H 'Authorization: Bearer ${JENKINSONMATRIXTOKEN}' \
-H 'Content-Type: application/json' \
-d '{
"creation_content": {
"m.federate": false
},
"name": "${videoname}",
"preset": "public_chat",
"invite": ["@adam:greyn.club", "@gitea:greyn.club"],
"topic": "[link to gitea project]"
}'
"""
).trim()
if (!env.roomcreationevent?.trim()) {
error "couldn't make matrix room, apparently"
}
echo "roomcreationevent:"
echo env.roomcreationevent
env.room_id = sh(returnStdout: true, script: "${env.roomcreationevent} | jq .room_id").trim()
if(!env.room_id?.trim()){
error "couldn't make matrix room, apparently"
}
}
}
steps{
env.roomId=sh(returnStdout: true, script: """curl -X 'POST' \
'https://greyn.club:8448/_matrix/client/v3/createRoom' \
-H 'accept: application/json' \
-H 'Authorization: Bearer ${JENKINSMATRIX}}' \
-H 'Content-Type: application/json' \
-d '{
"creation_content": {
"m.federate": false
},
"name": "${videoname}",
"preset": "public_chat",
"invite": ["@adam:greyn.club", "@gitea:greyn.club"],
"topic": "[link to gitea project]"
}' | jq .room_id
""").trim()
}
stage("link gitea webhook"){
steps{
sh """
curl -X 'GET' 'https://gitea.arg.rip/api/v1/repos/beefhavers/${videoname}/hooks' \
-H 'accept: application/json' \
-H 'authorization: token ${env.JENKINSONGITEA}' \
>reporesponse.json
"""
steps{
sh """
curl -X 'GET' 'https://gitea.arg.rip/api/v1/repos/beefhavers/${videoname}/hooks' \
-H 'accept: application/json' \
-H 'authorization: token ${env.GITEATOKEN}' \
>reporesponse.json
"""
sh """
curl -X 'PATCH' 'https://gitea.arg.rip/api/v1/repos/beefhavers/${videoname}/hooks' \
-H 'accept: application/json' \
-H 'authorization: token ${env.JENKINSONGITEA}' \
sh """
curl -X 'PATCH' 'https://gitea.arg.rip/api/v1/repos/beefhavers/${videoname}/hooks' \
-H 'accept: application/json' \
-H 'authorization: token ${env.GITEATOKEN}' \
-H 'Content-Type: application/json' \
-d '{
"active": true,
"authorization_header": \$(cat reporesponse.json | jq .[0].authorization_header),
"branch_filter": "*",
"config": {
"content_type": "json",
"url": "https://greyn.club:8448/_matrix/client/r0/rooms/\$(echo ${env.room_id} | sed 's/!/%21/')/send/m.room.message"
},
"events": \$(cat reporesponse.json | jq .[0].events)
}'
"""
}
-d '{
"active": true,
"authorization_header": $$(cat reporesponse.json | jq .[0].authorization_header),
"branch_filter": "*",
"config": {
"content_type": "json",
"url": "https://greyn.club:8448/_matrix/client/r0/rooms/$$(echo ${env.roomId} | sed 's/!/%21/')/send/m.room.message"
},
"events": $$(cat reporesponse.json | jq .[0].events)
}'
"""
}
}
}
}
}