forked from davidonete/mangosbot-docker
-
Notifications
You must be signed in to change notification settings - Fork 0
130 lines (111 loc) · 4.28 KB
/
docker-build-push-discord.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
name: Build and Push MangosBot Images
on:
release:
types: [published]
# Keeping workflow_dispatch for manual triggers if needed
workflow_dispatch:
env:
REGISTRY: docker.io
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
MANGOSD_IMAGE_NAME: mangosbot-mangosd
REALMD_IMAGE_NAME: mangosbot-realmd
# Get version from release tag or 'latest' for manual runs
VERSION: ${{ github.event.release.tag_name || 'latest' }}
jobs:
build-and-push:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Extract metadata for MangosD
id: meta-mangosd
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.DOCKERHUB_USERNAME }}/${{ env.MANGOSD_IMAGE_NAME }}
tags: |
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=raw,value=latest
- name: Extract metadata for RealmD
id: meta-realmd
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.DOCKERHUB_USERNAME }}/${{ env.REALMD_IMAGE_NAME }}
tags: |
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=raw,value=latest
- name: Build and push RealmD image
id: build-realmd
uses: docker/build-push-action@v6
with:
context: .
file: ./realmd/Dockerfile
push: true
tags: ${{ steps.meta-realmd.outputs.tags }}
labels: ${{ steps.meta-realmd.outputs.labels }}
cache-from: type=registry,ref=user/app:latest
cache-to: type=inline
- name: Build and push MangosD image
id: build-mangosd
uses: docker/build-push-action@v6
with:
context: .
file: ./mangosd/Dockerfile
build-args: BUILD_PLAYERBOT=ON BUILD_AHBOT=ON
push: true
tags: ${{ steps.meta-mangosd.outputs.tags }}
labels: ${{ steps.meta-mangosd.outputs.labels }}
cache-from: type=registry,ref=user/app:latest
cache-to: type=inline
notify-success:
needs: build-and-push
runs-on: ubuntu-latest
steps:
- name: Discord notification - Success
if: success()
uses: appleboy/discord-action@master
with:
webhook_id: ${{ secrets.DISCORD_WEBHOOK_ID }}
webhook_token: ${{ secrets.DISCORD_WEBHOOK_TOKEN }}
color: "#43b581"
username: "GitHub Actions"
message: |
🚀 **New Release Build Successful!**
**Release:** ${{ github.event.release.tag_name || 'manual build' }}
**Release Title:** ${{ github.event.release.name || 'Manual Build' }}
**Images Built:**
• MangosD: `${{ env.DOCKERHUB_USERNAME }}/${{ env.MANGOSD_IMAGE_NAME }}:${{ env.VERSION }}`
• RealmD: `${{ env.DOCKERHUB_USERNAME }}/${{ env.REALMD_IMAGE_NAME }}:${{ env.VERSION }}`
**Build Link:** ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
notify-failure:
needs: build-and-push
runs-on: ubuntu-latest
steps:
- name: Discord notification - Failure
if: failure()
uses: appleboy/discord-action@master
with:
webhook_id: ${{ secrets.DISCORD_WEBHOOK_ID }}
webhook_token: ${{ secrets.DISCORD_WEBHOOK_TOKEN }}
color: "#ff0000"
username: "GitHub Actions"
message: |
❌ **Release Build Failed!**
**Release:** ${{ github.event.release.tag_name || 'manual build' }}
**Release Title:** ${{ github.event.release.name || 'Manual Build' }}
**Error Details:**
Please check the build logs for more information.
**Build Link:** ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}