Files
demo-contact/.gitea/workflows/deploy.yml
Sufi Aziz 5e606cde31
All checks were successful
Build & Test / build (pull_request) Successful in 1m37s
chore: Upgraded all projects to .NET 10.
2026-02-03 16:52:59 +08:00

103 lines
3.4 KiB
YAML

name: .NET
permissions: read-all
on:
push:
tags:
- 'v*'
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
env:
APPSETTINGS_PATH: ui/Sufi.Demo.PeopleDirectory.UI/Server/appsettings.json
IMAGE_NAME: sufiaziz/demo-contact
steps:
- name: 🔧 Install dependencies
run: |
apt-get update
apt-get install -y curl sed ca-certificates gnupg
# Install Docker CLI with Compose plugin
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update
apt-get install -y docker-ce-cli docker-compose-plugin
# Verify installation
docker compose version
- name: 🔎 Checkout files
uses: actions/checkout@v5
- name: 💎 Cache NuGet packages
uses: actions/cache@v4
id: cache-nuget
with:
path: |
~/.nuget/packages
~/.local/share/NuGet/Cache-*
key: ${{ runner.os }}-nuget-${{ hashFiles('**/*.csproj') }}
restore-keys: |
${{ runner.os }}-nuget-
- name: 🎽 Setup .NET
uses: actions/setup-dotnet@v5
with:
dotnet-version: '10.0.x'
- name: 🔄 Replace placeholders in docker-compose.yml
run: |
echo "Replacing placeholders in docker-compose.yml..."
echo "Replace connection string..."
sed -i "s|#ConnectionString#|${{ secrets.CONNECTION_STRING }}|g" docker-compose.yml
echo "Replace license key..."
sed -i "s|#LuckyPennyLicenseKey#|${{ secrets.LUCKY_PENNY_LICENSE_KEY }}|g" docker-compose.yml
echo "Replace SEQ settings..."
sed -i "s|#SEQ_URL#|${{ vars.SEQ_URL }}|g" docker-compose.yml
sed -i "s|#SEQ_APIKEY#|${{ secrets.SEQ_APIKEY }}|g" docker-compose.yml
- name: 🐳 Build Docker image
run: |
docker build -t $IMAGE_NAME:latest \
--build-arg BUILD_PROJ="${{ vars.BUILD_PROJ }}" \
-f Dockerfile .
echo "Docker image built successfully"
- name: 🛑 Stop existing containers
run: |
echo "Stopping existing containers via docker compose..."
docker compose down || echo "No existing containers to stop"
- name: 🚀 Start containers with docker compose
run: |
echo "Starting containers via docker compose..."
docker compose up -d
echo "Containers started successfully at $(date)"
- name: ✅ Verify container status
run: |
echo "Waiting for containers to be healthy..."
sleep 5
echo "Listing running containers:"
docker compose ps
echo ""
echo "Recent logs:"
docker compose logs --tail=20
# Check if main service is running
if docker compose ps | grep -q "Up"; then
echo "Containers are running successfully"
else
echo "Error: Containers failed to start"
docker compose logs
exit 1
fi