feat: add bot-triggered deployment via /update deploy command
Some checks failed
Deploy to Production / test (push) Failing after 20s
Deploy to Production / build (push) Has been skipped
Deploy to Production / deploy (push) Has been skipped

- Added Docker socket mount to docker-compose.prod.yml
- Added project directory mount for git operations
- Added performDeploy, isDeployAvailable methods to UpdateService
- Added /update deploy subcommand for Discord-triggered deployments
- Added deploy-related embeds to update.view.ts
This commit is contained in:
syntaxbullet
2026-01-30 14:26:38 +01:00
parent 73531f38ae
commit ebefd8c0df
4 changed files with 236 additions and 2 deletions

View File

@@ -354,3 +354,66 @@ export function getRollbackFailedEmbed(error: string) {
"❌ Rollback Failed"
);
}
// ============ Deploy Embeds ============
export function getDeployNotAvailableEmbed() {
return createErrorEmbed(
"Docker is not available in this environment.\n\n" +
"Deploy via Discord requires Docker socket access. " +
"Use the deploy script manually:\n" +
"```bash\ncd ~/Aurora && bash shared/scripts/deploy.sh\n```",
"❌ Deploy Unavailable"
);
}
export function getDeployCheckingEmbed() {
return createInfoEmbed(
"🔍 Checking for updates and preparing deployment...",
"🚀 Deploy"
);
}
export function getDeployProgressEmbed(step: string) {
return createInfoEmbed(
step,
"🚀 Deploying"
);
}
export function getDeploySuccessEmbed(previousCommit: string, newCommit: string, output: string) {
const embed = new EmbedBuilder()
.setTitle("🚀 Deployment Triggered")
.setColor(0x57F287)
.addFields(
{
name: "Version",
value: `\`${previousCommit}\`\`${newCommit}\``,
inline: false
},
{
name: "Status",
value: output || "Container rebuilding...",
inline: false
}
)
.setFooter({ text: "Container will restart shortly" })
.setTimestamp();
return embed;
}
export function getDeployNoChangesEmbed(currentCommit: string) {
return createSuccessEmbed(
`Already running the latest version.\n\n**Current:** \`${currentCommit}\``,
"✅ Up to Date"
);
}
export function getDeployErrorEmbed(error: string) {
return createErrorEmbed(
`Deployment failed:\n\`\`\`\n${truncate(error, 500)}\n\`\`\``,
"❌ Deploy Failed"
);
}