الملفات
2026-07-29 20:39:34 +00:00

60 أسطر
1.4 KiB
YAML

name: Build, Push and Deploy
on:
push:
branches:
- main
jobs:
build:
name: Build and Push Docker Image
runs-on: self-hosted
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_TOKEN }}
- name: Build Docker Image
run: |
docker build -t ${{ secrets.DOCKER_USERNAME }}/mithal-monitor:${{ github.sha }} .
- name: Push Docker Image
run: |
docker push ${{ secrets.DOCKER_USERNAME }}/mithal-monitor:${{ github.sha }}
deploy-production:
name: Deploy to Production
needs: build
runs-on: self-hosted
environment:
name: production
steps:
- name: Pull Latest Image
run: |
docker pull ${{ secrets.DOCKER_USERNAME }}/mithal-monitor:${{ github.sha }}
- name: Stop Existing Container
run: |
docker stop mithal-monitor || true
docker rm mithal-monitor || true
- name: Run New Container
run: |
docker run -d \
--name mithal-monitor \
--restart unless-stopped \
-p 8000:8000 \
${{ secrets.DOCKER_USERNAME }}/mithal-monitor:${{ github.sha }}
- name: Verify Deployment
run: |
docker ps