From 1ea8716ac65145503eea4f00cc085ab4b83f0cc7 Mon Sep 17 00:00:00 2001 From: Grae Jones Date: Sat, 21 Mar 2026 11:00:46 -0700 Subject: [PATCH] chore: per-service CI pipelines with local registry --- .gitea/workflows/{ci.yaml => ci.yaml.old} | 0 .gitea/workflows/creative.yml | 43 +++++++++++++++++++++++ .gitea/workflows/gateway.yml | 43 +++++++++++++++++++++++ .gitea/workflows/googleapi.yml | 43 +++++++++++++++++++++++ .gitea/workflows/intelligenceapi.yml | 43 +++++++++++++++++++++++ .gitea/workflows/management.yml | 43 +++++++++++++++++++++++ .gitea/workflows/metaapi.yml | 43 +++++++++++++++++++++++ .gitea/workflows/registration.yml | 43 +++++++++++++++++++++++ .gitea/workflows/tiktokapi.yml | 43 +++++++++++++++++++++++ 9 files changed, 344 insertions(+) rename .gitea/workflows/{ci.yaml => ci.yaml.old} (100%) create mode 100644 .gitea/workflows/creative.yml create mode 100644 .gitea/workflows/gateway.yml create mode 100644 .gitea/workflows/googleapi.yml create mode 100644 .gitea/workflows/intelligenceapi.yml create mode 100644 .gitea/workflows/management.yml create mode 100644 .gitea/workflows/metaapi.yml create mode 100644 .gitea/workflows/registration.yml create mode 100644 .gitea/workflows/tiktokapi.yml diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml.old similarity index 100% rename from .gitea/workflows/ci.yaml rename to .gitea/workflows/ci.yaml.old diff --git a/.gitea/workflows/creative.yml b/.gitea/workflows/creative.yml new file mode 100644 index 0000000..b87f3da --- /dev/null +++ b/.gitea/workflows/creative.yml @@ -0,0 +1,43 @@ +name: Creative + +on: + push: + branches: [master] + paths: + - 'Creative/**' + - 'Shared/**' + - 'AdPlatformServers.sln' + - '.gitea/workflows/creative.yml' + +jobs: + build-deploy: + runs-on: host + env: + REGISTRY: 10.10.25.211:5000 + IMAGE: adplatform/creative + SERVICE: creative + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Build service + run: dotnet build Creative/Creative.csproj --configuration Release + + - name: Build image + run: | + podman build \ + --layers \ + -t ${{ env.REGISTRY }}/${{ env.IMAGE }}:latest \ + -f Creative/Dockerfile \ + . + + - name: Push to local registry + run: podman push ${{ env.REGISTRY }}/${{ env.IMAGE }}:latest + + - name: Deploy on app server + run: | + ssh -i ~/.ssh/gitea_runner root@10.10.25.211 \ + "podman pull ${{ env.REGISTRY }}/${{ env.IMAGE }}:latest && \ + cd /opt/adplatform && \ + podman-compose up -d --no-deps --force-recreate ${{ env.SERVICE }}" diff --git a/.gitea/workflows/gateway.yml b/.gitea/workflows/gateway.yml new file mode 100644 index 0000000..df37f8d --- /dev/null +++ b/.gitea/workflows/gateway.yml @@ -0,0 +1,43 @@ +name: Gateway + +on: + push: + branches: [master] + paths: + - 'Gateway/**' + - 'Shared/**' # adjust to your actual shared project folder name + - 'AdPlatformServers.sln' + - '.gitea/workflows/gateway.yml' + +jobs: + build-deploy: + runs-on: host + env: + REGISTRY: 10.10.25.211:5000 + IMAGE: adplatform/gateway + SERVICE: gateway + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Build service + run: dotnet build Gateway/Gateway.csproj --configuration Release + + - name: Build image + run: | + podman build \ + --layers \ + -t ${{ env.REGISTRY }}/${{ env.IMAGE }}:latest \ + -f Gateway/Dockerfile \ + . + + - name: Push to local registry + run: podman push ${{ env.REGISTRY }}/${{ env.IMAGE }}:latest + + - name: Deploy on app server + run: | + ssh -i ~/.ssh/gitea_runner root@10.10.25.211 \ + "podman pull ${{ env.REGISTRY }}/${{ env.IMAGE }}:latest && \ + cd /opt/adplatform && \ + podman-compose up -d --no-deps --force-recreate ${{ env.SERVICE }}" diff --git a/.gitea/workflows/googleapi.yml b/.gitea/workflows/googleapi.yml new file mode 100644 index 0000000..45b1d51 --- /dev/null +++ b/.gitea/workflows/googleapi.yml @@ -0,0 +1,43 @@ +name: GoogleApi + +on: + push: + branches: [master] + paths: + - 'GoogleApi/**' + - 'Shared/**' + - 'AdPlatformServers.sln' + - '.gitea/workflows/googleapi.yml' + +jobs: + build-deploy: + runs-on: host + env: + REGISTRY: 10.10.25.211:5000 + IMAGE: adplatform/googleapi + SERVICE: googleapi + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Build service + run: dotnet build GoogleApi/GoogleApi.csproj --configuration Release + + - name: Build image + run: | + podman build \ + --layers \ + -t ${{ env.REGISTRY }}/${{ env.IMAGE }}:latest \ + -f GoogleApi/Dockerfile \ + . + + - name: Push to local registry + run: podman push ${{ env.REGISTRY }}/${{ env.IMAGE }}:latest + + - name: Deploy on app server + run: | + ssh -i ~/.ssh/gitea_runner root@10.10.25.211 \ + "podman pull ${{ env.REGISTRY }}/${{ env.IMAGE }}:latest && \ + cd /opt/adplatform && \ + podman-compose up -d --no-deps --force-recreate ${{ env.SERVICE }}" diff --git a/.gitea/workflows/intelligenceapi.yml b/.gitea/workflows/intelligenceapi.yml new file mode 100644 index 0000000..daf9d63 --- /dev/null +++ b/.gitea/workflows/intelligenceapi.yml @@ -0,0 +1,43 @@ +name: IntelligenceApi + +on: + push: + branches: [master] + paths: + - 'IntelligenceApi/**' + - 'Shared/**' + - 'AdPlatformServers.sln' + - '.gitea/workflows/intelligenceapi.yml' + +jobs: + build-deploy: + runs-on: host + env: + REGISTRY: 10.10.25.211:5000 + IMAGE: adplatform/intelligenceapi + SERVICE: intelligenceapi + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Build service + run: dotnet build IntelligenceApi/IntelligenceApi.csproj --configuration Release + + - name: Build image + run: | + podman build \ + --layers \ + -t ${{ env.REGISTRY }}/${{ env.IMAGE }}:latest \ + -f IntelligenceApi/Dockerfile \ + . + + - name: Push to local registry + run: podman push ${{ env.REGISTRY }}/${{ env.IMAGE }}:latest + + - name: Deploy on app server + run: | + ssh -i ~/.ssh/gitea_runner root@10.10.25.211 \ + "podman pull ${{ env.REGISTRY }}/${{ env.IMAGE }}:latest && \ + cd /opt/adplatform && \ + podman-compose up -d --no-deps --force-recreate ${{ env.SERVICE }}" diff --git a/.gitea/workflows/management.yml b/.gitea/workflows/management.yml new file mode 100644 index 0000000..4842fa5 --- /dev/null +++ b/.gitea/workflows/management.yml @@ -0,0 +1,43 @@ +name: Management + +on: + push: + branches: [master] + paths: + - 'Management/**' + - 'Shared/**' + - 'AdPlatformServers.sln' + - '.gitea/workflows/management.yml' + +jobs: + build-deploy: + runs-on: host + env: + REGISTRY: 10.10.25.211:5000 + IMAGE: adplatform/management + SERVICE: management + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Build service + run: dotnet build Management/Management.csproj --configuration Release + + - name: Build image + run: | + podman build \ + --layers \ + -t ${{ env.REGISTRY }}/${{ env.IMAGE }}:latest \ + -f Management/Dockerfile \ + . + + - name: Push to local registry + run: podman push ${{ env.REGISTRY }}/${{ env.IMAGE }}:latest + + - name: Deploy on app server + run: | + ssh -i ~/.ssh/gitea_runner root@10.10.25.211 \ + "podman pull ${{ env.REGISTRY }}/${{ env.IMAGE }}:latest && \ + cd /opt/adplatform && \ + podman-compose up -d --no-deps --force-recreate ${{ env.SERVICE }}" diff --git a/.gitea/workflows/metaapi.yml b/.gitea/workflows/metaapi.yml new file mode 100644 index 0000000..f5910cf --- /dev/null +++ b/.gitea/workflows/metaapi.yml @@ -0,0 +1,43 @@ +name: MetaApi + +on: + push: + branches: [master] + paths: + - 'MetaApi/**' + - 'Shared/**' + - 'AdPlatformServers.sln' + - '.gitea/workflows/metaapi.yml' + +jobs: + build-deploy: + runs-on: host + env: + REGISTRY: 10.10.25.211:5000 + IMAGE: adplatform/metaapi + SERVICE: metaapi + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Build service + run: dotnet build MetaApi/MetaApi.csproj --configuration Release + + - name: Build image + run: | + podman build \ + --layers \ + -t ${{ env.REGISTRY }}/${{ env.IMAGE }}:latest \ + -f MetaApi/Dockerfile \ + . + + - name: Push to local registry + run: podman push ${{ env.REGISTRY }}/${{ env.IMAGE }}:latest + + - name: Deploy on app server + run: | + ssh -i ~/.ssh/gitea_runner root@10.10.25.211 \ + "podman pull ${{ env.REGISTRY }}/${{ env.IMAGE }}:latest && \ + cd /opt/adplatform && \ + podman-compose up -d --no-deps --force-recreate ${{ env.SERVICE }}" diff --git a/.gitea/workflows/registration.yml b/.gitea/workflows/registration.yml new file mode 100644 index 0000000..98c4e27 --- /dev/null +++ b/.gitea/workflows/registration.yml @@ -0,0 +1,43 @@ +name: Registration + +on: + push: + branches: [master] + paths: + - 'Registration/**' + - 'Shared/**' + - 'AdPlatformServers.sln' + - '.gitea/workflows/registration.yml' + +jobs: + build-deploy: + runs-on: host + env: + REGISTRY: 10.10.25.211:5000 + IMAGE: adplatform/registration + SERVICE: registration + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Build service + run: dotnet build Registration/Registration.csproj --configuration Release + + - name: Build image + run: | + podman build \ + --layers \ + -t ${{ env.REGISTRY }}/${{ env.IMAGE }}:latest \ + -f Registration/Dockerfile \ + . + + - name: Push to local registry + run: podman push ${{ env.REGISTRY }}/${{ env.IMAGE }}:latest + + - name: Deploy on app server + run: | + ssh -i ~/.ssh/gitea_runner root@10.10.25.211 \ + "podman pull ${{ env.REGISTRY }}/${{ env.IMAGE }}:latest && \ + cd /opt/adplatform && \ + podman-compose up -d --no-deps --force-recreate ${{ env.SERVICE }}" diff --git a/.gitea/workflows/tiktokapi.yml b/.gitea/workflows/tiktokapi.yml new file mode 100644 index 0000000..9d1d20c --- /dev/null +++ b/.gitea/workflows/tiktokapi.yml @@ -0,0 +1,43 @@ +name: TikTokApi + +on: + push: + branches: [master] + paths: + - 'TikTokApi/**' + - 'Shared/**' + - 'AdPlatformServers.sln' + - '.gitea/workflows/tiktokapi.yml' + +jobs: + build-deploy: + runs-on: host + env: + REGISTRY: 10.10.25.211:5000 + IMAGE: adplatform/tiktokapi + SERVICE: tiktokapi + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Build service + run: dotnet build TikTokApi/TikTokApi.csproj --configuration Release + + - name: Build image + run: | + podman build \ + --layers \ + -t ${{ env.REGISTRY }}/${{ env.IMAGE }}:latest \ + -f TikTokApi/Dockerfile \ + . + + - name: Push to local registry + run: podman push ${{ env.REGISTRY }}/${{ env.IMAGE }}:latest + + - name: Deploy on app server + run: | + ssh -i ~/.ssh/gitea_runner root@10.10.25.211 \ + "podman pull ${{ env.REGISTRY }}/${{ env.IMAGE }}:latest && \ + cd /opt/adplatform && \ + podman-compose up -d --no-deps --force-recreate ${{ env.SERVICE }}"