From 41fc40ac0fcb15cf0c89f04f80da31192bc12b1d Mon Sep 17 00:00:00 2001 From: adelyaou Date: Tue, 30 Dec 2025 14:18:52 +0700 Subject: [PATCH] rearrange: add workflow for each branch --- .gitea/workflows/prod-deploy.yaml | 56 ++++++++++++++++++++++++++++ .gitea/workflows/staging-deploy.yaml | 56 ++++++++++++++++++++++++++++ 2 files changed, 112 insertions(+) create mode 100644 .gitea/workflows/prod-deploy.yaml create mode 100644 .gitea/workflows/staging-deploy.yaml diff --git a/.gitea/workflows/prod-deploy.yaml b/.gitea/workflows/prod-deploy.yaml new file mode 100644 index 0000000..8734dfd --- /dev/null +++ b/.gitea/workflows/prod-deploy.yaml @@ -0,0 +1,56 @@ +name: Deploy Backend Production Environment + +on: + push: + branches: [ prod ] + workflow_dispatch: + +env: + ENV_NAME: prod + IMAGE_NAME: csa-backend + REGISTRY: ${{ secrets.REGISTRY_URL }} + +jobs: + build-and-deploy: + runs-on: ubuntu-latest + + steps: + - name: Checkout source code + uses: actions/checkout@v4 + + - name: Set image tag + run: | + echo "IMAGE_TAG=$(git rev-parse --short HEAD)" >> $GITHUB_ENV + + - name: Login to registry + run: | + echo "${{ secrets.REGISTRY_PASSWORD }}" | docker login $REGISTRY \ + -u "${{ secrets.REGISTRY_USERNAME }}" --password-stdin + + - name: Build and push image + run: | + docker build -t $REGISTRY/$IMAGE_NAME:$IMAGE_TAG . + docker push $REGISTRY/$IMAGE_NAME:$IMAGE_TAG + + - name: Clone manifest repo + run: | + git clone https://oauth2:${{ secrets.MANIFEST_REPO_TOKEN }}@${{ secrets.MANIFEST_REPO_URL }} manifest + cd manifest + git checkout (${ENV_NAME}) + + - name: Update kustomization (PROD) + run: | + cd manifest/overlays + kustomize edit set image $REGISTRY/$IMAGE_NAME=$REGISTRY/$IMAGE_NAME:$IMAGE_TAG + + - name: Commit manifest update + run: | + cd manifest + git config user.name "csa-ci" + git config user.email "ci@gitea.local" + git commit -am "deploy(${ENV_NAME}): update backend image to $IMAGE_TAG" + git push origin (${ENV_NAME}) + + - name: Cleanup workspace + run: | + rm -rf manifest \ No newline at end of file diff --git a/.gitea/workflows/staging-deploy.yaml b/.gitea/workflows/staging-deploy.yaml new file mode 100644 index 0000000..79705f8 --- /dev/null +++ b/.gitea/workflows/staging-deploy.yaml @@ -0,0 +1,56 @@ +name: Deploy Backend Production Environment + +on: + push: + branches: [ staging ] + workflow_dispatch: + +env: + ENV_NAME: staging + IMAGE_NAME: csa-backend + REGISTRY: ${{ secrets.REGISTRY_URL }} + +jobs: + build-and-deploy: + runs-on: ubuntu-latest + + steps: + - name: Checkout source code + uses: actions/checkout@v4 + + - name: Set image tag + run: | + echo "IMAGE_TAG=$(git rev-parse --short HEAD)" >> $GITHUB_ENV + + - name: Login to registry + run: | + echo "${{ secrets.REGISTRY_PASSWORD }}" | docker login $REGISTRY \ + -u "${{ secrets.REGISTRY_USERNAME }}" --password-stdin + + - name: Build and push image + run: | + docker build -t $REGISTRY/$IMAGE_NAME:$IMAGE_TAG . + docker push $REGISTRY/$IMAGE_NAME:$IMAGE_TAG + + - name: Clone manifest repo + run: | + git clone https://oauth2:${{ secrets.MANIFEST_REPO_TOKEN }}@${{ secrets.MANIFEST_REPO_URL }} manifest + cd manifest + git checkout (${ENV_NAME}) + + - name: Update kustomization (PROD) + run: | + cd manifest/overlays + kustomize edit set image $REGISTRY/$IMAGE_NAME=$REGISTRY/$IMAGE_NAME:$IMAGE_TAG + + - name: Commit manifest update + run: | + cd manifest + git config user.name "csa-ci" + git config user.email "ci@gitea.local" + git commit -am "deploy(${ENV_NAME}): update backend image to $IMAGE_TAG" + git push origin (${ENV_NAME}) + + - name: Cleanup workspace + run: | + rm -rf manifest \ No newline at end of file