Initial code commit.
This commit is contained in:
103
.gitea/workflows/deploy.yml
Normal file
103
.gitea/workflows/deploy.yml
Normal file
@@ -0,0 +1,103 @@
|
||||
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: '8.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
|
||||
Reference in New Issue
Block a user