70 lines
2.1 KiB
YAML
70 lines
2.1 KiB
YAML
name: build-image
|
|
run-name: build and push Docker-Image with tag:${{ github.ref_name }}
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- "*"
|
|
|
|
env:
|
|
image_name: doc_rudi
|
|
registry: gitea.tebarius.duckdns.org
|
|
user: tebarius
|
|
|
|
jobs:
|
|
release-image:
|
|
runs-on: build-ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Set up QEMU
|
|
uses: docker/setup-qemu-action@v2
|
|
|
|
- name: Login to Gitea
|
|
uses: docker/login-action@v2
|
|
with:
|
|
registry: ${{ env.registry }}
|
|
username: ${{ env.user }}
|
|
password: ${{ secrets.DOCKER_PULL_TOKEN }}
|
|
|
|
- name: Build and push
|
|
run: |
|
|
# Stelle sicher, dass Buildx aktiviert ist
|
|
docker buildx create --use
|
|
|
|
# Führe den Multiarch-Build aus und pushe das Image
|
|
docker buildx build \
|
|
--file ./Dockerfile \
|
|
--platform linux/amd64,linux/386,linux/arm64,linux/arm/v7 \
|
|
--tag ${{ env.registry }}/${{ env.user }}/${{ env.image_name }}:latest \
|
|
--tag ${{ env.registry }}/${{ env.user }}/${{ env.image_name }}:${{ github.ref_name }} \
|
|
--push ./
|
|
telegram-notify:
|
|
needs: release-image
|
|
if: always()
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Telegram Alert
|
|
run: |
|
|
case "${{ needs.release-image.result }}" in
|
|
"success") EMOJI="✅"; MSG="OK" ;;
|
|
"failure") EMOJI="❌"; MSG="WARN!" ;;
|
|
"cancelled") EMOJI="⏹️"; MSG="Canceled" ;;
|
|
*) EMOJI="❓"; MSG="Unknown-State: ${{ needs.release-image.result }}" ;;
|
|
esac
|
|
|
|
curl -s -X POST "https://api.telegram.org/bot${{ secrets.TELEGRAM_BOT_TOKEN }}/sendMessage" \
|
|
-H 'Content-Type: application/json' \
|
|
-d "{
|
|
\"chat_id\": \"${{ secrets.TELEGRAM_CHAT_ID }}\",
|
|
\"parse_mode\": \"HTML\",
|
|
\"text\":
|
|
\"$EMOJI <b>$MSG - Build ${{ env.image_name }}:${{ github.ref_name }}</b>
|
|
<i>$(date +"%Y-%m-%d %T")</i>
|
|
Build of Image: <b><i>${{ env.image_name }}:${{ github.ref_name }}</i></b>
|
|
${{ gitea.server_url }}/${{ gitea.repository }}
|
|
\"
|
|
}"
|
|
|