ci: mention Discord update role in release posts

This commit is contained in:
Bohdan Triapitsyn
2026-04-07 14:11:03 +03:00
parent 2af782b4da
commit 1fed81439c
+13
View File
@@ -499,6 +499,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
env: env:
DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }} DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }}
DISCORD_UPDATE_ROLE_ID: ${{ secrets.DISCORD_UPDATE_ROLE_ID }}
steps: steps:
- name: Publish release - name: Publish release
uses: softprops/action-gh-release@v2 uses: softprops/action-gh-release@v2
@@ -514,11 +515,14 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VERSION: ${{ needs.create-release.outputs.version }} VERSION: ${{ needs.create-release.outputs.version }}
REPOSITORY: ${{ github.repository }} REPOSITORY: ${{ github.repository }}
UPDATE_ROLE_ID: ${{ env.DISCORD_UPDATE_ROLE_ID }}
run: | run: |
node - <<'NODE' node - <<'NODE'
(async () => { (async () => {
const tag = `v${process.env.VERSION}`; const tag = `v${process.env.VERSION}`;
const repo = process.env.REPOSITORY; const repo = process.env.REPOSITORY;
const rawRoleId = (process.env.UPDATE_ROLE_ID || '').trim();
const updateRoleId = /^\d+$/.test(rawRoleId) ? rawRoleId : '';
const releaseRes = await fetch(`https://api.github.com/repos/${repo}/releases/tags/${tag}`, { const releaseRes = await fetch(`https://api.github.com/repos/${repo}/releases/tags/${tag}`, {
headers: { headers: {
@@ -534,9 +538,18 @@ jobs:
const release = await releaseRes.json(); const release = await releaseRes.json();
const description = (release.body || `OpenChamber ${tag} released.`).slice(0, 4096); const description = (release.body || `OpenChamber ${tag} released.`).slice(0, 4096);
const mention = updateRoleId ? `<@&${updateRoleId}>` : '';
const payload = { const payload = {
username: 'OpenChamber Releases', username: 'OpenChamber Releases',
...(mention ? { content: mention } : {}),
...(updateRoleId
? {
allowed_mentions: {
roles: [updateRoleId],
},
}
: {}),
embeds: [ embeds: [
{ {
title: release.name || `OpenChamber ${tag}`, title: release.name || `OpenChamber ${tag}`,