1
0
Fork 0

ci: improve status push to discord
Some checks failed
/ pre-run-notify (push) Successful in 46s
/ sast (push) Failing after 48s

This commit is contained in:
Marc 2024-07-19 22:03:01 -04:00
parent 626987ba67
commit a11a4bd3ce
Signed by: marc
GPG key ID: 048E042F22B5DC79
4 changed files with 34 additions and 5 deletions

View file

@ -14,7 +14,7 @@ outputs:
description: "ID of the message that was posted, for editing purposes in further calls."
value: ""
run:
runs:
using: "composite"
steps:
- name: Setup Python
@ -22,5 +22,5 @@ run:
with:
python-version: 3.12
- name: Install dependencies
run: pip install .
- run: python ./main.py ${{ inputs.webhook_url }} ${{ inputs.project_name }} ${{inputs.status }}
run: pip install -r ./.forgejo/actions/push-status-to-discord/requirements.txt
- run: python ./.forgejo/actions/push-status-to-discord/main.py ${{ inputs.webhook-url }} ${{ inputs.project-name }} ${{ inputs.status }}

View file

@ -1,8 +1,35 @@
import httpx
import typing
import sys
COLORS = {
"failure": 0xCB2431,
"success": 0x28A745,
}
class EmbedField(typing.TypedDict):
name: str
value: str
inline: bool
class Embed(typing.TypedDict):
color: str
title: str
fields: list[EmbedField]
if __name__ == "__main__":
webhook_url, project_name, status = sys.argv[1:]
response = httpx.post(webhook_url, json={"content": f"{project_name} - {status}"})
print(response.json())
embed_data = Embed(
color=COLORS["success"],
title=f"{project_name}: build #",
fields=[
EmbedField(
name="Status",
value=status,
inline=True
)
]
)
response = httpx.post(webhook_url, json={"embeds": [embed_data]})
print(response.text)

View file

@ -0,0 +1 @@
httpx==0.27

View file

@ -5,6 +5,7 @@ jobs:
pre-run-notify:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.forgejo/actions/push-status-to-discord
with:
webhook-url: ${{ secrets.DISCORD_WEBHOOK_URL }}