Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 }} |