chore: migrate ci naming to forgejo

This commit is contained in:
Ashwin Kumar Sivakumar 2026-06-11 17:17:42 +05:30
parent 6666cc5f67
commit c8ecb6bf81
6 changed files with 27 additions and 19 deletions

View file

@ -11,7 +11,7 @@ Usage:
This script: This script:
1. Updates the newTag for the specified service to the SHA 1. Updates the newTag for the specified service to the SHA
2. Commits and pushes to the gitops repo 2. Commits and pushes to the gitops repo
3. ArgoCD detects the change and deploys 3. Flux detects the change and deploys
""" """
import argparse import argparse
@ -98,10 +98,14 @@ def main():
image_name = f"nxtgauge-{args.service}" image_name = f"nxtgauge-{args.service}"
# Find the right kustomization file based on service # Find the right kustomization file based on service
if "frontend" in args.service or "admin" in args.service: if "frontend" in args.service:
kustomization_path = os.path.join(args.repo, "apps/nxtgauge-frontend-solid/overlays/prod/kustomization.yaml") kustomization_path = os.path.join(args.repo, "apps/nxtgauge-frontend-solid/overlays/prod/kustomization.yaml")
if not os.path.exists(kustomization_path): if not os.path.exists(kustomization_path):
kustomization_path = os.path.join(args.repo, "apps/nxtgauge-frontend-solid/base/kustomization.yaml") kustomization_path = os.path.join(args.repo, "apps/nxtgauge-frontend-solid/base/kustomization.yaml")
elif "admin" in args.service:
kustomization_path = os.path.join(args.repo, "apps/nxtgauge-admin-solid/overlays/prod/kustomization.yaml")
if not os.path.exists(kustomization_path):
kustomization_path = os.path.join(args.repo, "apps/nxtgauge-admin-solid/base/kustomization.yaml")
elif "ai-assistant" in args.service: elif "ai-assistant" in args.service:
kustomization_path = os.path.join(args.repo, "apps/nxtgauge-ai-assistant/overlays/prod/kustomization.yaml") kustomization_path = os.path.join(args.repo, "apps/nxtgauge-ai-assistant/overlays/prod/kustomization.yaml")
if not os.path.exists(kustomization_path): if not os.path.exists(kustomization_path):

View file

@ -30,6 +30,7 @@ jobs:
run: | run: |
set -euo pipefail set -euo pipefail
export DOCKER_HOST=unix:///var/run/docker.sock export DOCKER_HOST=unix:///var/run/docker.sock
SHA="$(git rev-parse HEAD)"
test -n "$REGISTRY_HOSTPORT" test -n "$REGISTRY_HOSTPORT"
echo "$REGISTRY_PASSWORD" | docker login "$REGISTRY_HOSTPORT" -u "$REGISTRY_USERNAME" --password-stdin echo "$REGISTRY_PASSWORD" | docker login "$REGISTRY_HOSTPORT" -u "$REGISTRY_USERNAME" --password-stdin
@ -39,11 +40,12 @@ jobs:
run: | run: |
set -euo pipefail set -euo pipefail
export DOCKER_HOST=unix:///var/run/docker.sock export DOCKER_HOST=unix:///var/run/docker.sock
SHA="$(git rev-parse HEAD)"
build_and_push() { build_and_push() {
docker buildx build --push \ docker buildx build --push \
-f Dockerfile \ -f Dockerfile \
-t "$REGISTRY_HOSTPORT/nxtgauge-frontend-solid:${{ gitea.sha }}" \ -t "$REGISTRY_HOSTPORT/nxtgauge-frontend-solid:${SHA}" \
-t "$REGISTRY_HOSTPORT/nxtgauge-frontend-solid:high-performance-latest" \ -t "$REGISTRY_HOSTPORT/nxtgauge-frontend-solid:high-performance-latest" \
. .
} }
@ -72,7 +74,7 @@ jobs:
REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }} REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }}
run: | run: |
set -euo pipefail set -euo pipefail
python3 .gitea/scripts/registry_prune.py \ python3 .forgejo/scripts/registry_prune.py \
--registry "$REGISTRY_HOST" \ --registry "$REGISTRY_HOST" \
--repo "nxtgauge-frontend-solid" \ --repo "nxtgauge-frontend-solid" \
--username "$REGISTRY_USERNAME" \ --username "$REGISTRY_USERNAME" \
@ -87,6 +89,7 @@ jobs:
GITEOPS_SSH_KEY: ${{ secrets.GITEOPS_SSH_KEY }} GITEOPS_SSH_KEY: ${{ secrets.GITEOPS_SSH_KEY }}
run: | run: |
set -euo pipefail set -euo pipefail
SHA="$(git rev-parse HEAD)"
if [ -z "$GITEOPS_REPO" ]; then if [ -z "$GITEOPS_REPO" ]; then
echo "GITEOPS_REPO secret not set, skipping GitOps update" echo "GITEOPS_REPO secret not set, skipping GitOps update"
@ -102,10 +105,10 @@ jobs:
chmod 600 ~/.ssh/id_ed25519 chmod 600 ~/.ssh/id_ed25519
ssh-keyscan github.com >> ~/.ssh/known_hosts 2>/dev/null ssh-keyscan github.com >> ~/.ssh/known_hosts 2>/dev/null
python3 .gitea/scripts/update-gitops.py \ python3 .forgejo/scripts/update-gitops.py \
--repo "$GITEOPS_DIR" \ --repo "$GITEOPS_DIR" \
--service "frontend-solid" \ --service "frontend-solid" \
--sha "${{ gitea.sha }}" \ --sha "${SHA}" \
--message "chore: deploy frontend-solid@${{ gitea.sha }}" --message "chore: deploy frontend-solid@${SHA}"
rm -rf "$GITEOPS_DIR" rm -rf "$GITEOPS_DIR"

View file

@ -1,8 +1,9 @@
name: sync-to-gitea name: sync-to-forgejo
on: on:
push: push:
branches: branches:
- main
- high-performance - high-performance
jobs: jobs:
@ -16,9 +17,9 @@ jobs:
with: with:
fetch-depth: 0 fetch-depth: 0
- name: Sync to Gitea - name: Sync to Forgejo
env: env:
GITEA_TOKEN: ${{ secrets.GITEA_SECRET }} FORGEJO_TOKEN: ${{ secrets.FORGEJO_SECRET }}
REPO: ${{ github.event.repository.name }} REPO: ${{ github.event.repository.name }}
BRANCH: ${{ github.ref_name }} BRANCH: ${{ github.ref_name }}
run: | run: |
@ -29,18 +30,18 @@ jobs:
USER="Admin" USER="Admin"
TARGET="https://ci.nxtgauge.com/Admin/${REPO}.git" TARGET="https://ci.nxtgauge.com/Admin/${REPO}.git"
AUTH="$(printf '%s' "${USER}:${GITEA_TOKEN}" | base64 -w0)" AUTH="$(printf '%s' "${USER}:${FORGEJO_TOKEN}" | base64 -w0)"
test -n "${GITEA_TOKEN:-}" || (echo "GITEA_TOKEN empty" && exit 1) test -n "${FORGEJO_TOKEN:-}" || (echo "FORGEJO_TOKEN empty" && exit 1)
curl -fsS -H "Authorization: token ${GITEA_TOKEN}" https://ci.nxtgauge.com/api/v1/user >/dev/null curl -fsS -H "Authorization: token ${FORGEJO_TOKEN}" https://ci.nxtgauge.com/api/v1/user >/dev/null
curl -fsS -H "Authorization: Basic ${AUTH}" "${TARGET}/info/refs?service=git-receive-pack" >/dev/null curl -fsS -H "Authorization: Basic ${AUTH}" "${TARGET}/info/refs?service=git-receive-pack" >/dev/null
git config user.name "github-actions[bot]" git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com" git config user.email "github-actions[bot]@users.noreply.github.com"
git config --global http.version HTTP/1.1 git config --global http.version HTTP/1.1
git config --global http.postBuffer 524288000 git config --global http.postBuffer 524288000
git remote remove gitea 2>/dev/null || true git remote remove forgejo 2>/dev/null || true
git remote add gitea "${TARGET}" git remote add forgejo "${TARGET}"
git -c http.extraheader="Authorization: Basic ${AUTH}" push gitea "HEAD:${BRANCH}" --force git -c http.extraheader="Authorization: Basic ${AUTH}" push forgejo "HEAD:${BRANCH}" --force
git -c http.extraheader="Authorization: Basic ${AUTH}" push gitea --tags --force git -c http.extraheader="Authorization: Basic ${AUTH}" push forgejo --tags --force

View file

@ -102,9 +102,9 @@ Visual tests compare screenshots against baselines in `tests/e2e/visual/`.
## CI / Nightly Runs ## CI / Nightly Runs
GitHub Actions runs tests nightly via `.gitea/workflows/test.yaml`: GitHub Actions runs tests nightly via `.forgejo/workflows/test.yaml`:
- **2:30 AM daily** — all test suites - **2:30 AM daily** — all test suites
- **On-demand** — use `workflow_dispatch` trigger in Gitea - **On-demand** — use `workflow_dispatch` trigger in Forgejo
Artifacts are uploaded: Artifacts are uploaded:
- `vitest-coverage/` — coverage reports - `vitest-coverage/` — coverage reports