fix(ci): simplify backend github deployment workflow

This commit is contained in:
Ashwin Kumar Sivakumar 2026-06-14 22:59:51 +05:30
parent 8153105c77
commit 06789f2b61

View file

@ -16,90 +16,33 @@ env:
GITOPS_REPO: Traceworks2023/nxtgauge-gitops
jobs:
detect-changes:
runs-on: ubuntu-latest
outputs:
services: ${{ steps.detect.outputs.services }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 2
- name: Detect changed services
id: detect
shell: bash
run: |
set -euo pipefail
ALL_SERVICES='gateway users companies jobs leads job-seekers customers payments employees photographers makeup-artists tutors developers video-editors graphic-designers social-media-managers fitness-trainers catering-services ugc-content-creators cron'
if git rev-parse --verify HEAD^ >/dev/null 2>&1; then
CHANGED_FILES="$(git diff --name-only HEAD^ HEAD)"
else
CHANGED_FILES="$(git ls-files)"
fi
LAST_COMMIT_MSG="$(git log -1 --pretty=%B | tr '\n' ' ')"
FORCE_FULL_BUILD=false
if echo "$LAST_COMMIT_MSG" | grep -Eiq 'trigger build|force build|rebuild all'; then
FORCE_FULL_BUILD=true
elif echo "$CHANGED_FILES" | grep -Eq '^(\.github/workflows/|\.forgejo/workflows/|Dockerfile|Cargo\.toml|Cargo\.lock|crates/|scripts/)'; then
FORCE_FULL_BUILD=true
fi
if [ "$FORCE_FULL_BUILD" = true ]; then
SERVICES_JSON="$(printf '%s\n' $ALL_SERVICES | python3 -c 'import json,sys; print(json.dumps([line.strip() for line in sys.stdin if line.strip()]))')"
echo "services=$SERVICES_JSON" >> "$GITHUB_OUTPUT"
exit 0
fi
SERVICES_JSON="$(printf '%s\n' "$CHANGED_FILES" | python3 -c '
import json
import sys
mapping = {
"apps/gateway/": "gateway",
"apps/users/": "users",
"apps/companies/": "companies",
"apps/jobs/": "jobs",
"apps/leads/": "leads",
"apps/job_seekers/": "job-seekers",
"apps/customers/": "customers",
"apps/payments/": "payments",
"apps/employees/": "employees",
"apps/photographers/": "photographers",
"apps/makeup_artists/": "makeup-artists",
"apps/tutors/": "tutors",
"apps/developers/": "developers",
"apps/video_editors/": "video-editors",
"apps/graphic_designers/": "graphic-designers",
"apps/social_media_managers/": "social-media-managers",
"apps/fitness_trainers/": "fitness-trainers",
"apps/catering_services/": "catering-services",
"apps/ugc_content_creators/": "ugc-content-creators",
"apps/cron/": "cron",
}
services = []
seen = set()
for raw in sys.stdin:
line = raw.strip()
for prefix, service in mapping.items():
if line.startswith(prefix) and service not in seen:
seen.add(service)
services.append(service)
break
print(json.dumps(services))
')"
echo "services=$SERVICES_JSON" >> "$GITHUB_OUTPUT"
build-deploy:
needs: detect-changes
if: needs.detect-changes.outputs.services != '[]'
runs-on: ubuntu-latest
strategy:
fail-fast: false
max-parallel: 1
max-parallel: 4
matrix:
service: ${{ fromJSON(needs.detect-changes.outputs.services) }}
service:
- gateway
- users
- companies
- jobs
- leads
- job-seekers
- customers
- payments
- employees
- photographers
- makeup-artists
- tutors
- developers
- video-editors
- graphic-designers
- social-media-managers
- fitness-trainers
- catering-services
- ugc-content-creators
- cron
steps:
- name: Checkout
uses: actions/checkout@v4