Compare commits
6 Commits
a0cdacc7be
...
agent/dex/
| Author | SHA1 | Date | |
|---|---|---|---|
| f5313b3362 | |||
| ff1fb621d7 | |||
| c8ac1fa283 | |||
|
|
4172e21fd1 | ||
|
|
c3def21220 | ||
|
|
458fc9a4e1 |
77
.gitea/workflows/dev.yml
Normal file
77
.gitea/workflows/dev.yml
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
name: Dev Build
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches: [dev]
|
||||||
|
push:
|
||||||
|
branches: [dev]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Setup .NET
|
||||||
|
uses: actions/setup-dotnet@v4
|
||||||
|
with:
|
||||||
|
dotnet-version: '9.0.x'
|
||||||
|
|
||||||
|
- name: Restore backend
|
||||||
|
run: dotnet restore
|
||||||
|
|
||||||
|
- name: Build backend
|
||||||
|
run: dotnet build --no-restore --configuration Release
|
||||||
|
|
||||||
|
- name: Test backend
|
||||||
|
run: dotnet test --no-build --configuration Release
|
||||||
|
|
||||||
|
- name: Setup Node
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: "24"
|
||||||
|
|
||||||
|
- name: Install frontend deps
|
||||||
|
run: npm ci
|
||||||
|
working-directory: ./frontend
|
||||||
|
|
||||||
|
- name: Build frontend
|
||||||
|
run: npm run build
|
||||||
|
working-directory: ./frontend
|
||||||
|
|
||||||
|
deploy-dev:
|
||||||
|
needs: build-test
|
||||||
|
if: gitea.event_name == 'push'
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Deploy dev
|
||||||
|
run: |
|
||||||
|
echo "${{ secrets.DEV_DEPLOY_SSH_KEY }}" > /tmp/dev_key
|
||||||
|
chmod 600 /tmp/dev_key
|
||||||
|
ssh -i /tmp/dev_key -o StrictHostKeyChecking=no \
|
||||||
|
${{ secrets.DEV_DEPLOY_USER }}@${{ secrets.DEV_DEPLOY_HOST }} \
|
||||||
|
"${{ secrets.DEV_DEPLOY_PATH }}/deploy.sh"
|
||||||
|
|
||||||
|
notify-success:
|
||||||
|
needs: [build-test, deploy-dev]
|
||||||
|
if: success() && gitea.event_name == 'push'
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Notify Slack success
|
||||||
|
run: |
|
||||||
|
curl -X POST -H 'Content-type: application/json' \
|
||||||
|
--data "{\"text\":\"✅ Extrudex dev deployed successfully from dev branch.\"}" \
|
||||||
|
"${{ secrets.SLACK_WEBHOOK_URL }}"
|
||||||
|
|
||||||
|
notify-failure:
|
||||||
|
needs: [build-test, deploy-dev]
|
||||||
|
if: failure()
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Notify Slack failure
|
||||||
|
run: |
|
||||||
|
curl -X POST -H 'Content-type: application/json' \
|
||||||
|
--data "{\"text\":\"🚨 Extrudex dev pipeline failed. Check Gitea Actions for details.\"}" \
|
||||||
|
"${{ secrets.SLACK_WEBHOOK_URL }}"
|
||||||
27
backend/.dockerignore
Normal file
27
backend/.dockerignore
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
# Build artifacts
|
||||||
|
bin/
|
||||||
|
obj/
|
||||||
|
|
||||||
|
# IDE / editor
|
||||||
|
.vs/
|
||||||
|
.vscode/
|
||||||
|
*.user
|
||||||
|
*.suo
|
||||||
|
.idea/
|
||||||
|
|
||||||
|
# Environment & secrets
|
||||||
|
appsettings.Development.json
|
||||||
|
.env
|
||||||
|
.env.*
|
||||||
|
|
||||||
|
# Docker
|
||||||
|
Dockerfile
|
||||||
|
.dockerignore
|
||||||
|
|
||||||
|
# OS
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
|
|
||||||
|
# Misc
|
||||||
|
*.md
|
||||||
|
*.log
|
||||||
30
backend/Dockerfile
Normal file
30
backend/Dockerfile
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
# ── Stage 1: Build ──────────────────────────────────────────
|
||||||
|
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
|
||||||
|
WORKDIR /src
|
||||||
|
|
||||||
|
# Copy csproj first for layer caching — restores before copying source
|
||||||
|
COPY Extrudex.csproj .
|
||||||
|
RUN dotnet restore
|
||||||
|
|
||||||
|
# Copy the rest of the source
|
||||||
|
COPY . .
|
||||||
|
RUN dotnet publish Extrudex.csproj \
|
||||||
|
-c Release \
|
||||||
|
-o /app/publish \
|
||||||
|
--no-restore
|
||||||
|
|
||||||
|
# ── Stage 2: Runtime ────────────────────────────────────────
|
||||||
|
FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS runtime
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Non-root user for security
|
||||||
|
RUN adduser --disabled-password --gecos "" appuser
|
||||||
|
USER appuser
|
||||||
|
|
||||||
|
# Copy published output from build stage
|
||||||
|
COPY --from=build /app/publish .
|
||||||
|
|
||||||
|
# ASP.NET Core listens on 8080 by default in .NET 8+
|
||||||
|
EXPOSE 8080
|
||||||
|
|
||||||
|
ENTRYPOINT ["dotnet", "Extrudex.dll"]
|
||||||
Reference in New Issue
Block a user