From 22ee7f8544115f4ccf4fadd34a104caeb844eccc Mon Sep 17 00:00:00 2001 From: Ashwin Kumar Sivakumar Date: Sun, 14 Jun 2026 22:59:51 +0530 Subject: [PATCH] fix(ci): simplify backend github deployment workflow --- .github/workflows/build-and-deploy-ghcr.yml | 101 +++++--------------- 1 file changed, 22 insertions(+), 79 deletions(-) diff --git a/.github/workflows/build-and-deploy-ghcr.yml b/.github/workflows/build-and-deploy-ghcr.yml index 55eb784..f03becd 100644 --- a/.github/workflows/build-and-deploy-ghcr.yml +++ b/.github/workflows/build-and-deploy-ghcr.yml @@ -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