From 45f6c5626e8705dc10b62aec4124fbb734a2a4e8 Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Tue, 16 Sep 2025 17:53:11 +0700 Subject: [PATCH] fix cicd placement --- .forgejo/workflows/build-placement.yml | 45 +++++++++++++++++--------- 1 file changed, 29 insertions(+), 16 deletions(-) diff --git a/.forgejo/workflows/build-placement.yml b/.forgejo/workflows/build-placement.yml index 0362af17..76c10a76 100644 --- a/.forgejo/workflows/build-placement.yml +++ b/.forgejo/workflows/build-placement.yml @@ -1,4 +1,4 @@ -name: Build +name: Build & Deploy Placement Service on: push: @@ -19,7 +19,6 @@ env: REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }} CONTAINER_IMAGE_NAME: ${{ vars.CONTAINER_REGISTRY }}/${{ vars.CONTAINER_IMAGE_OWNER }} SERVICE_NAME: hrms-api-placement - IMAGE_VERSION: build DISCORD_WEBHOOK: ${{ vars.DISCORD_WEBHOOK }} jobs: @@ -28,31 +27,45 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v4 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 - with: - config-inline: | - [registry."${{ env.REGISTRY }}"] - ca=["/etc/ssl/certs/ca-certificates.crt"] - - name: Tag Version + + - name: Extract version from tag + id: version run: | - echo "IMAGE_VERSION=${{ inputs.version }}" + if [ "${{ gitea.event_name }}" == "push" ] && [ -n "${{ gitea.ref_name }}" ]; then + # Extract version from tag (remove 'placement-dev' prefix) + VERSION="${{ gitea.ref_name }}" + VERSION="${VERSION#placement-dev}" + echo "IMAGE_VERSION=$VERSION" >> $GITEA_OUTPUT + echo "VERSION=$VERSION" >> $GITEA_OUTPUT + else + # Use workflow dispatch input or default to 'latest' + VERSION="${{ inputs.version || 'latest' }}" + echo "IMAGE_VERSION=$VERSION" >> $GITEA_OUTPUT + echo "VERSION=$VERSION" >> $GITEA_OUTPUT + fi + echo "Using version: $VERSION" + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Login in to registry - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ env.REGISTRY_USERNAME }} password: ${{ env.REGISTRY_PASSWORD }} + - name: Build and push docker image - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v5 with: platforms: linux/amd64 context: . file: ./BMA.EHR.Placement.Service/Dockerfile - tags: ${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-placement:${{ inputs.version }} + tags: ${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}:latest,${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}:${{ steps.version.outputs.VERSION }} push: true + - name: Remote Deploy - uses: appleboy/ssh-action@v1.2.1 + uses: appleboy/ssh-action@v1.0.3 with: host: ${{ vars.SSH_DEPLOY_HOST }} port: ${{ vars.SSH_DEPLOY_PORT }} @@ -60,7 +73,7 @@ jobs: password: ${{ secrets.SSH_DEPLOY_PASSWORD }} script: | cd ~/repo - ./replace-env.sh API_PLACEMENT "${{ inputs.version }}" + ./replace-env.sh API_PLACEMENT "${{ steps.version.outputs.VERSION }}" ./deploy.sh ${{ env.SERVICE_NAME }} - name: Discord Notification @@ -74,7 +87,7 @@ jobs: -d "{ \"embeds\": [{ \"title\": \"$STATUS\", - \"description\": \"**Build & Deploy**\\n- Image: \`${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}\`\\n- Version: \`${{ inputs.version }}\`\\n- By: \`${{ github.actor }}\`\", + \"description\": \"**Build & Deploy**\\n- Image: \`${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}\`\\n- Version: \`${{ steps.version.outputs.VERSION }}\`\\n- By: \`${{ gitea.actor }}\`\", \"color\": $COLOR, \"footer\": { \"text\": \"Release Notification\",