From 507d50dfe3f7c5a7fee41c290c30582620500c82 Mon Sep 17 00:00:00 2001 From: forgejo Date: Tue, 9 Sep 2025 13:19:47 +0700 Subject: [PATCH 01/48] Add .forgejo/build.yml --- .forgejo/build.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .forgejo/build.yml diff --git a/.forgejo/build.yml b/.forgejo/build.yml new file mode 100644 index 00000000..e69de29b From bdd613b40f177646f5bffe176cdce91efe14c112 Mon Sep 17 00:00:00 2001 From: forgejo Date: Tue, 9 Sep 2025 13:20:15 +0700 Subject: [PATCH 02/48] Update .forgejo/build.yml --- .forgejo/build.yml | 49 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/.forgejo/build.yml b/.forgejo/build.yml index e69de29b..ba3556e0 100644 --- a/.forgejo/build.yml +++ b/.forgejo/build.yml @@ -0,0 +1,49 @@ +name: Build + +on: + push: + tags: + - "v[0-9]+.[0-9]+.[0-9]+" + - "v[0-9]+.[0-9]+.[0-9]+*" + workflow_dispatch: + +env: + REGISTRY: ${{ vars.CONTAINER_REGISTRY }} + REGISTRY_USERNAME: ${{ vars.CONTAINER_REGISTRY_USERNAME }} + REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }} + CONTAINER_IMAGE_NAME: ${{ vars.CONTAINER_REGISTRY }}/${{ vars.CONTAINER_IMAGE_OWNER }}/${{ vars.CONTAINER_IMAGE_NAME }} + IMAGE_VERSION: build + +jobs: + build: + runs-on: ubuntu-latest + 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 + run: | + if [[ "${{ github.event_name }}" == "push" ]]; then + echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/v//g' >> $GITHUB_ENV + else + echo "IMAGE_VERSION=${{ env.IMAGE_VERSION }}-${{ github.run_number }}" >> $GITHUB_ENV + fi + - name: Login in to registry + uses: docker/login-action@v2 + with: + registry: ${{ env.REGISTRY }} + username: ${{ env.REGISTRY_USERNAME }} + password: ${{ env.REGISTRY_PASSWORD }} + - name: Build and push docker image + uses: docker/build-push-action@v3 + with: + platforms: linux/amd64 + context: . + file: ./docker/Dockerfile + tags: ${{ env.CONTAINER_IMAGE_NAME }}:latest,${{ env.CONTAINER_IMAGE_NAME }}:${{ env.IMAGE_VERSION }} + push: true From cbd1e8029d891ad6adbdc9049e03dc9281682179 Mon Sep 17 00:00:00 2001 From: forgejo Date: Tue, 9 Sep 2025 13:21:03 +0700 Subject: [PATCH 03/48] Add .forgejo/deploy.yml --- .forgejo/deploy.yml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 .forgejo/deploy.yml diff --git a/.forgejo/deploy.yml b/.forgejo/deploy.yml new file mode 100644 index 00000000..b1a3d765 --- /dev/null +++ b/.forgejo/deploy.yml @@ -0,0 +1,29 @@ +name: Build + +on: + workflow_dispatch: + inputs: + version: + description: "Version to deploy" + type: string + required: false + default: "latest" + +env: + IMAGE_VERSION: build + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - name: Remote Deploy + uses: appleboy/ssh-action@v1.2.1 + with: + host: ${{ vars.SSH_DEPLOY_HOST }} + port: ${{ vars.SSH_DEPLOY_PORT }} + username: ${{ secrets.SSH_DEPLOY_USER }} + password: ${{ secrets.SSH_DEPLOY_PASSWORD }} + script: | + cd ~/repo + ./replace-env.sh API_BACKEND "${{ inputs.version }}" + ./deploy.sh hrms-api-backend From 91a3aef5d7def96a4eef0927c5994dc6bdd2ddb6 Mon Sep 17 00:00:00 2001 From: forgejo Date: Tue, 9 Sep 2025 13:23:03 +0700 Subject: [PATCH 04/48] Add .forgejo/workflow --- .forgejo/workflow | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .forgejo/workflow diff --git a/.forgejo/workflow b/.forgejo/workflow new file mode 100644 index 00000000..e69de29b From bfe1caa984a0642a7e713a097cd4fe7db32951d7 Mon Sep 17 00:00:00 2001 From: forgejo Date: Tue, 9 Sep 2025 13:23:26 +0700 Subject: [PATCH 05/48] Delete .forgejo/workflow --- .forgejo/workflow | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .forgejo/workflow diff --git a/.forgejo/workflow b/.forgejo/workflow deleted file mode 100644 index e69de29b..00000000 From 83926c534f28ce782419f4e91697a2fa4d464030 Mon Sep 17 00:00:00 2001 From: forgejo Date: Tue, 9 Sep 2025 13:23:59 +0700 Subject: [PATCH 06/48] Delete .forgejo/build.yml --- .forgejo/build.yml | 49 ---------------------------------------------- 1 file changed, 49 deletions(-) delete mode 100644 .forgejo/build.yml diff --git a/.forgejo/build.yml b/.forgejo/build.yml deleted file mode 100644 index ba3556e0..00000000 --- a/.forgejo/build.yml +++ /dev/null @@ -1,49 +0,0 @@ -name: Build - -on: - push: - tags: - - "v[0-9]+.[0-9]+.[0-9]+" - - "v[0-9]+.[0-9]+.[0-9]+*" - workflow_dispatch: - -env: - REGISTRY: ${{ vars.CONTAINER_REGISTRY }} - REGISTRY_USERNAME: ${{ vars.CONTAINER_REGISTRY_USERNAME }} - REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }} - CONTAINER_IMAGE_NAME: ${{ vars.CONTAINER_REGISTRY }}/${{ vars.CONTAINER_IMAGE_OWNER }}/${{ vars.CONTAINER_IMAGE_NAME }} - IMAGE_VERSION: build - -jobs: - build: - runs-on: ubuntu-latest - 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 - run: | - if [[ "${{ github.event_name }}" == "push" ]]; then - echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/v//g' >> $GITHUB_ENV - else - echo "IMAGE_VERSION=${{ env.IMAGE_VERSION }}-${{ github.run_number }}" >> $GITHUB_ENV - fi - - name: Login in to registry - uses: docker/login-action@v2 - with: - registry: ${{ env.REGISTRY }} - username: ${{ env.REGISTRY_USERNAME }} - password: ${{ env.REGISTRY_PASSWORD }} - - name: Build and push docker image - uses: docker/build-push-action@v3 - with: - platforms: linux/amd64 - context: . - file: ./docker/Dockerfile - tags: ${{ env.CONTAINER_IMAGE_NAME }}:latest,${{ env.CONTAINER_IMAGE_NAME }}:${{ env.IMAGE_VERSION }} - push: true From 223c891782ea40025bdcb5c79dfe76c34df65262 Mon Sep 17 00:00:00 2001 From: forgejo Date: Tue, 9 Sep 2025 13:24:07 +0700 Subject: [PATCH 07/48] Delete .forgejo/deploy.yml --- .forgejo/deploy.yml | 29 ----------------------------- 1 file changed, 29 deletions(-) delete mode 100644 .forgejo/deploy.yml diff --git a/.forgejo/deploy.yml b/.forgejo/deploy.yml deleted file mode 100644 index b1a3d765..00000000 --- a/.forgejo/deploy.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: Build - -on: - workflow_dispatch: - inputs: - version: - description: "Version to deploy" - type: string - required: false - default: "latest" - -env: - IMAGE_VERSION: build - -jobs: - deploy: - runs-on: ubuntu-latest - steps: - - name: Remote Deploy - uses: appleboy/ssh-action@v1.2.1 - with: - host: ${{ vars.SSH_DEPLOY_HOST }} - port: ${{ vars.SSH_DEPLOY_PORT }} - username: ${{ secrets.SSH_DEPLOY_USER }} - password: ${{ secrets.SSH_DEPLOY_PASSWORD }} - script: | - cd ~/repo - ./replace-env.sh API_BACKEND "${{ inputs.version }}" - ./deploy.sh hrms-api-backend From fc26ab40645c4aaf91a81fa35132b4e1380d4b89 Mon Sep 17 00:00:00 2001 From: forgejo Date: Tue, 9 Sep 2025 13:24:33 +0700 Subject: [PATCH 08/48] Add .forgejo/workflows --- .forgejo/workflows | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .forgejo/workflows diff --git a/.forgejo/workflows b/.forgejo/workflows new file mode 100644 index 00000000..e69de29b From 0516b289fe28c48efd704f33fea91fd9472d155b Mon Sep 17 00:00:00 2001 From: forgejo Date: Tue, 9 Sep 2025 13:24:46 +0700 Subject: [PATCH 09/48] Delete .forgejo/workflows --- .forgejo/workflows | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .forgejo/workflows diff --git a/.forgejo/workflows b/.forgejo/workflows deleted file mode 100644 index e69de29b..00000000 From 57a6d9a6c6342c65aef1e712543fe9ee03d7bef0 Mon Sep 17 00:00:00 2001 From: forgejo Date: Tue, 9 Sep 2025 13:25:27 +0700 Subject: [PATCH 10/48] Add .forgejo/workflows/build.yaml --- .forgejo/workflows/build.yaml | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .forgejo/workflows/build.yaml diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml new file mode 100644 index 00000000..e69de29b From b01031e919966edfbcecc7ede537a692b531000d Mon Sep 17 00:00:00 2001 From: forgejo Date: Tue, 9 Sep 2025 13:25:42 +0700 Subject: [PATCH 11/48] Delete .forgejo/workflows/build.yaml --- .forgejo/workflows/build.yaml | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .forgejo/workflows/build.yaml diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml deleted file mode 100644 index e69de29b..00000000 From d0cad2de8b45f58202506b1a31d88023780b4883 Mon Sep 17 00:00:00 2001 From: AdisakKanthawilang Date: Tue, 9 Sep 2025 13:30:27 +0700 Subject: [PATCH 12/48] build and deploy config --- .forgejo/workflows/build.yml | 49 +++++++++++++++++++++++++++++++++++ .forgejo/workflows/deploy.yml | 29 +++++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 .forgejo/workflows/build.yml create mode 100644 .forgejo/workflows/deploy.yml diff --git a/.forgejo/workflows/build.yml b/.forgejo/workflows/build.yml new file mode 100644 index 00000000..ba3556e0 --- /dev/null +++ b/.forgejo/workflows/build.yml @@ -0,0 +1,49 @@ +name: Build + +on: + push: + tags: + - "v[0-9]+.[0-9]+.[0-9]+" + - "v[0-9]+.[0-9]+.[0-9]+*" + workflow_dispatch: + +env: + REGISTRY: ${{ vars.CONTAINER_REGISTRY }} + REGISTRY_USERNAME: ${{ vars.CONTAINER_REGISTRY_USERNAME }} + REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }} + CONTAINER_IMAGE_NAME: ${{ vars.CONTAINER_REGISTRY }}/${{ vars.CONTAINER_IMAGE_OWNER }}/${{ vars.CONTAINER_IMAGE_NAME }} + IMAGE_VERSION: build + +jobs: + build: + runs-on: ubuntu-latest + 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 + run: | + if [[ "${{ github.event_name }}" == "push" ]]; then + echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/v//g' >> $GITHUB_ENV + else + echo "IMAGE_VERSION=${{ env.IMAGE_VERSION }}-${{ github.run_number }}" >> $GITHUB_ENV + fi + - name: Login in to registry + uses: docker/login-action@v2 + with: + registry: ${{ env.REGISTRY }} + username: ${{ env.REGISTRY_USERNAME }} + password: ${{ env.REGISTRY_PASSWORD }} + - name: Build and push docker image + uses: docker/build-push-action@v3 + with: + platforms: linux/amd64 + context: . + file: ./docker/Dockerfile + tags: ${{ env.CONTAINER_IMAGE_NAME }}:latest,${{ env.CONTAINER_IMAGE_NAME }}:${{ env.IMAGE_VERSION }} + push: true diff --git a/.forgejo/workflows/deploy.yml b/.forgejo/workflows/deploy.yml new file mode 100644 index 00000000..b1a3d765 --- /dev/null +++ b/.forgejo/workflows/deploy.yml @@ -0,0 +1,29 @@ +name: Build + +on: + workflow_dispatch: + inputs: + version: + description: "Version to deploy" + type: string + required: false + default: "latest" + +env: + IMAGE_VERSION: build + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - name: Remote Deploy + uses: appleboy/ssh-action@v1.2.1 + with: + host: ${{ vars.SSH_DEPLOY_HOST }} + port: ${{ vars.SSH_DEPLOY_PORT }} + username: ${{ secrets.SSH_DEPLOY_USER }} + password: ${{ secrets.SSH_DEPLOY_PASSWORD }} + script: | + cd ~/repo + ./replace-env.sh API_BACKEND "${{ inputs.version }}" + ./deploy.sh hrms-api-backend From 7d680658e49eae072e250d86715705257f98474e Mon Sep 17 00:00:00 2001 From: forgejo Date: Tue, 9 Sep 2025 14:06:01 +0700 Subject: [PATCH 13/48] Update .forgejo/workflows/build.yml --- .forgejo/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/build.yml b/.forgejo/workflows/build.yml index ba3556e0..e2252895 100644 --- a/.forgejo/workflows/build.yml +++ b/.forgejo/workflows/build.yml @@ -44,6 +44,6 @@ jobs: with: platforms: linux/amd64 context: . - file: ./docker/Dockerfile + file: ./BMA.EHR.Discipline.Service/Dockerfile tags: ${{ env.CONTAINER_IMAGE_NAME }}:latest,${{ env.CONTAINER_IMAGE_NAME }}:${{ env.IMAGE_VERSION }} push: true From 2abb32f74b5601955430b5285ccef9a1f12d3e5e Mon Sep 17 00:00:00 2001 From: forgejo Date: Tue, 9 Sep 2025 14:23:58 +0700 Subject: [PATCH 14/48] Update .forgejo/workflows/build.yml --- .forgejo/workflows/build.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.forgejo/workflows/build.yml b/.forgejo/workflows/build.yml index e2252895..67506c65 100644 --- a/.forgejo/workflows/build.yml +++ b/.forgejo/workflows/build.yml @@ -3,15 +3,15 @@ name: Build on: push: tags: - - "v[0-9]+.[0-9]+.[0-9]+" - - "v[0-9]+.[0-9]+.[0-9]+*" + - "discipline[0-9]+.[0-9]+.[0-9]+" + - "discipline[0-9]+.[0-9]+.[0-9]+*" workflow_dispatch: env: REGISTRY: ${{ vars.CONTAINER_REGISTRY }} REGISTRY_USERNAME: ${{ vars.CONTAINER_REGISTRY_USERNAME }} REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }} - CONTAINER_IMAGE_NAME: ${{ vars.CONTAINER_REGISTRY }}/${{ vars.CONTAINER_IMAGE_OWNER }}/${{ vars.CONTAINER_IMAGE_NAME }} + CONTAINER_IMAGE_NAME: ${{ vars.CONTAINER_REGISTRY }}/${{ vars.CONTAINER_IMAGE_OWNER }} IMAGE_VERSION: build jobs: @@ -29,7 +29,7 @@ jobs: - name: Tag Version run: | if [[ "${{ github.event_name }}" == "push" ]]; then - echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/v//g' >> $GITHUB_ENV + echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/discipline//g' >> $GITHUB_ENV else echo "IMAGE_VERSION=${{ env.IMAGE_VERSION }}-${{ github.run_number }}" >> $GITHUB_ENV fi @@ -45,5 +45,5 @@ jobs: platforms: linux/amd64 context: . file: ./BMA.EHR.Discipline.Service/Dockerfile - tags: ${{ env.CONTAINER_IMAGE_NAME }}:latest,${{ env.CONTAINER_IMAGE_NAME }}:${{ env.IMAGE_VERSION }} + tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-discipline:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-discipline:${{ env.IMAGE_VERSION }} push: true From d4e066196453e7add5f06c78e6fb2e0ece4a1b8d Mon Sep 17 00:00:00 2001 From: AdisakKanthawilang Date: Tue, 9 Sep 2025 14:45:35 +0700 Subject: [PATCH 15/48] build config --- .forgejo/workflows/build-checkin.yml | 49 +++++++++++++++++++++++++ .forgejo/workflows/build-command.yml | 49 +++++++++++++++++++++++++ .forgejo/workflows/build-discipline.yml | 49 +++++++++++++++++++++++++ .forgejo/workflows/build-insignia.yml | 49 +++++++++++++++++++++++++ .forgejo/workflows/build-leave.yml | 49 +++++++++++++++++++++++++ .forgejo/workflows/build-placement.yml | 49 +++++++++++++++++++++++++ .forgejo/workflows/build-report.yml | 49 +++++++++++++++++++++++++ .forgejo/workflows/build-retirement.yml | 49 +++++++++++++++++++++++++ 8 files changed, 392 insertions(+) create mode 100644 .forgejo/workflows/build-checkin.yml create mode 100644 .forgejo/workflows/build-command.yml create mode 100644 .forgejo/workflows/build-discipline.yml create mode 100644 .forgejo/workflows/build-insignia.yml create mode 100644 .forgejo/workflows/build-leave.yml create mode 100644 .forgejo/workflows/build-placement.yml create mode 100644 .forgejo/workflows/build-report.yml create mode 100644 .forgejo/workflows/build-retirement.yml diff --git a/.forgejo/workflows/build-checkin.yml b/.forgejo/workflows/build-checkin.yml new file mode 100644 index 00000000..0ad8623d --- /dev/null +++ b/.forgejo/workflows/build-checkin.yml @@ -0,0 +1,49 @@ +name: Build + +on: + push: + tags: + - "checkin[0-9]+.[0-9]+.[0-9]+" + - "checkin[0-9]+.[0-9]+.[0-9]+*" + workflow_dispatch: + +env: + REGISTRY: ${{ vars.CONTAINER_REGISTRY }} + REGISTRY_USERNAME: ${{ vars.CONTAINER_REGISTRY_USERNAME }} + REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }} + CONTAINER_IMAGE_NAME: ${{ vars.CONTAINER_REGISTRY }}/${{ vars.CONTAINER_IMAGE_OWNER }} + IMAGE_VERSION: build + +jobs: + build: + runs-on: ubuntu-latest + 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 + run: | + if [[ "${{ github.event_name }}" == "push" ]]; then + echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/checkin//g' >> $GITHUB_ENV + else + echo "IMAGE_VERSION=${{ env.IMAGE_VERSION }}-${{ github.run_number }}" >> $GITHUB_ENV + fi + - name: Login in to registry + uses: docker/login-action@v2 + with: + registry: ${{ env.REGISTRY }} + username: ${{ env.REGISTRY_USERNAME }} + password: ${{ env.REGISTRY_PASSWORD }} + - name: Build and push docker image + uses: docker/build-push-action@v3 + with: + platforms: linux/amd64 + context: . + file: ./BMA.EHR.CheckInConsumer/Dockerfile + tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-checkin:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-checkin:${{ env.IMAGE_VERSION }} + push: true diff --git a/.forgejo/workflows/build-command.yml b/.forgejo/workflows/build-command.yml new file mode 100644 index 00000000..508e264b --- /dev/null +++ b/.forgejo/workflows/build-command.yml @@ -0,0 +1,49 @@ +name: Build + +on: + push: + tags: + - "command[0-9]+.[0-9]+.[0-9]+" + - "command[0-9]+.[0-9]+.[0-9]+*" + workflow_dispatch: + +env: + REGISTRY: ${{ vars.CONTAINER_REGISTRY }} + REGISTRY_USERNAME: ${{ vars.CONTAINER_REGISTRY_USERNAME }} + REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }} + CONTAINER_IMAGE_NAME: ${{ vars.CONTAINER_REGISTRY }}/${{ vars.CONTAINER_IMAGE_OWNER }} + IMAGE_VERSION: build + +jobs: + build: + runs-on: ubuntu-latest + 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 + run: | + if [[ "${{ github.event_name }}" == "push" ]]; then + echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/command//g' >> $GITHUB_ENV + else + echo "IMAGE_VERSION=${{ env.IMAGE_VERSION }}-${{ github.run_number }}" >> $GITHUB_ENV + fi + - name: Login in to registry + uses: docker/login-action@v2 + with: + registry: ${{ env.REGISTRY }} + username: ${{ env.REGISTRY_USERNAME }} + password: ${{ env.REGISTRY_PASSWORD }} + - name: Build and push docker image + uses: docker/build-push-action@v3 + with: + platforms: linux/amd64 + context: . + file: ./BMA.EHR.Command.Service/Dockerfile + tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-command:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-command:${{ env.IMAGE_VERSION }} + push: true diff --git a/.forgejo/workflows/build-discipline.yml b/.forgejo/workflows/build-discipline.yml new file mode 100644 index 00000000..67506c65 --- /dev/null +++ b/.forgejo/workflows/build-discipline.yml @@ -0,0 +1,49 @@ +name: Build + +on: + push: + tags: + - "discipline[0-9]+.[0-9]+.[0-9]+" + - "discipline[0-9]+.[0-9]+.[0-9]+*" + workflow_dispatch: + +env: + REGISTRY: ${{ vars.CONTAINER_REGISTRY }} + REGISTRY_USERNAME: ${{ vars.CONTAINER_REGISTRY_USERNAME }} + REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }} + CONTAINER_IMAGE_NAME: ${{ vars.CONTAINER_REGISTRY }}/${{ vars.CONTAINER_IMAGE_OWNER }} + IMAGE_VERSION: build + +jobs: + build: + runs-on: ubuntu-latest + 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 + run: | + if [[ "${{ github.event_name }}" == "push" ]]; then + echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/discipline//g' >> $GITHUB_ENV + else + echo "IMAGE_VERSION=${{ env.IMAGE_VERSION }}-${{ github.run_number }}" >> $GITHUB_ENV + fi + - name: Login in to registry + uses: docker/login-action@v2 + with: + registry: ${{ env.REGISTRY }} + username: ${{ env.REGISTRY_USERNAME }} + password: ${{ env.REGISTRY_PASSWORD }} + - name: Build and push docker image + uses: docker/build-push-action@v3 + with: + platforms: linux/amd64 + context: . + file: ./BMA.EHR.Discipline.Service/Dockerfile + tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-discipline:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-discipline:${{ env.IMAGE_VERSION }} + push: true diff --git a/.forgejo/workflows/build-insignia.yml b/.forgejo/workflows/build-insignia.yml new file mode 100644 index 00000000..b9add93c --- /dev/null +++ b/.forgejo/workflows/build-insignia.yml @@ -0,0 +1,49 @@ +name: Build + +on: + push: + tags: + - "insignia[0-9]+.[0-9]+.[0-9]+" + - "insignia[0-9]+.[0-9]+.[0-9]+*" + workflow_dispatch: + +env: + REGISTRY: ${{ vars.CONTAINER_REGISTRY }} + REGISTRY_USERNAME: ${{ vars.CONTAINER_REGISTRY_USERNAME }} + REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }} + CONTAINER_IMAGE_NAME: ${{ vars.CONTAINER_REGISTRY }}/${{ vars.CONTAINER_IMAGE_OWNER }} + IMAGE_VERSION: build + +jobs: + build: + runs-on: ubuntu-latest + 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 + run: | + if [[ "${{ github.event_name }}" == "push" ]]; then + echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/insignia//g' >> $GITHUB_ENV + else + echo "IMAGE_VERSION=${{ env.IMAGE_VERSION }}-${{ github.run_number }}" >> $GITHUB_ENV + fi + - name: Login in to registry + uses: docker/login-action@v2 + with: + registry: ${{ env.REGISTRY }} + username: ${{ env.REGISTRY_USERNAME }} + password: ${{ env.REGISTRY_PASSWORD }} + - name: Build and push docker image + uses: docker/build-push-action@v3 + with: + platforms: linux/amd64 + context: . + file: ./BMA.EHR.Insignia/Dockerfile + tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-insignia:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-insignia:${{ env.IMAGE_VERSION }} + push: true diff --git a/.forgejo/workflows/build-leave.yml b/.forgejo/workflows/build-leave.yml new file mode 100644 index 00000000..a4f2d2e5 --- /dev/null +++ b/.forgejo/workflows/build-leave.yml @@ -0,0 +1,49 @@ +name: Build + +on: + push: + tags: + - "leave[0-9]+.[0-9]+.[0-9]+" + - "leave[0-9]+.[0-9]+.[0-9]+*" + workflow_dispatch: + +env: + REGISTRY: ${{ vars.CONTAINER_REGISTRY }} + REGISTRY_USERNAME: ${{ vars.CONTAINER_REGISTRY_USERNAME }} + REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }} + CONTAINER_IMAGE_NAME: ${{ vars.CONTAINER_REGISTRY }}/${{ vars.CONTAINER_IMAGE_OWNER }} + IMAGE_VERSION: build + +jobs: + build: + runs-on: ubuntu-latest + 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 + run: | + if [[ "${{ github.event_name }}" == "push" ]]; then + echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/leave//g' >> $GITHUB_ENV + else + echo "IMAGE_VERSION=${{ env.IMAGE_VERSION }}-${{ github.run_number }}" >> $GITHUB_ENV + fi + - name: Login in to registry + uses: docker/login-action@v2 + with: + registry: ${{ env.REGISTRY }} + username: ${{ env.REGISTRY_USERNAME }} + password: ${{ env.REGISTRY_PASSWORD }} + - name: Build and push docker image + uses: docker/build-push-action@v3 + with: + platforms: linux/amd64 + context: . + file: ./BMA.EHR.Leave/Dockerfile + tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-leave:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-leave:${{ env.IMAGE_VERSION }} + push: true diff --git a/.forgejo/workflows/build-placement.yml b/.forgejo/workflows/build-placement.yml new file mode 100644 index 00000000..0312b8d9 --- /dev/null +++ b/.forgejo/workflows/build-placement.yml @@ -0,0 +1,49 @@ +name: Build + +on: + push: + tags: + - "placement[0-9]+.[0-9]+.[0-9]+" + - "placement[0-9]+.[0-9]+.[0-9]+*" + workflow_dispatch: + +env: + REGISTRY: ${{ vars.CONTAINER_REGISTRY }} + REGISTRY_USERNAME: ${{ vars.CONTAINER_REGISTRY_USERNAME }} + REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }} + CONTAINER_IMAGE_NAME: ${{ vars.CONTAINER_REGISTRY }}/${{ vars.CONTAINER_IMAGE_OWNER }} + IMAGE_VERSION: build + +jobs: + build: + runs-on: ubuntu-latest + 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 + run: | + if [[ "${{ github.event_name }}" == "push" ]]; then + echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/placement//g' >> $GITHUB_ENV + else + echo "IMAGE_VERSION=${{ env.IMAGE_VERSION }}-${{ github.run_number }}" >> $GITHUB_ENV + fi + - name: Login in to registry + uses: docker/login-action@v2 + with: + registry: ${{ env.REGISTRY }} + username: ${{ env.REGISTRY_USERNAME }} + password: ${{ env.REGISTRY_PASSWORD }} + - name: Build and push docker image + uses: docker/build-push-action@v3 + with: + platforms: linux/amd64 + context: . + file: ./BMA.EHR.Placement.Service/Dockerfile + tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-placement:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-placement:${{ env.IMAGE_VERSION }} + push: true diff --git a/.forgejo/workflows/build-report.yml b/.forgejo/workflows/build-report.yml new file mode 100644 index 00000000..64afa8de --- /dev/null +++ b/.forgejo/workflows/build-report.yml @@ -0,0 +1,49 @@ +name: Build + +on: + push: + tags: + - "report[0-9]+.[0-9]+.[0-9]+" + - "report[0-9]+.[0-9]+.[0-9]+*" + workflow_dispatch: + +env: + REGISTRY: ${{ vars.CONTAINER_REGISTRY }} + REGISTRY_USERNAME: ${{ vars.CONTAINER_REGISTRY_USERNAME }} + REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }} + CONTAINER_IMAGE_NAME: ${{ vars.CONTAINER_REGISTRY }}/${{ vars.CONTAINER_IMAGE_OWNER }} + IMAGE_VERSION: build + +jobs: + build: + runs-on: ubuntu-latest + 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 + run: | + if [[ "${{ github.event_name }}" == "push" ]]; then + echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/report//g' >> $GITHUB_ENV + else + echo "IMAGE_VERSION=${{ env.IMAGE_VERSION }}-${{ github.run_number }}" >> $GITHUB_ENV + fi + - name: Login in to registry + uses: docker/login-action@v2 + with: + registry: ${{ env.REGISTRY }} + username: ${{ env.REGISTRY_USERNAME }} + password: ${{ env.REGISTRY_PASSWORD }} + - name: Build and push docker image + uses: docker/build-push-action@v3 + with: + platforms: linux/amd64 + context: . + file: ./BMA.EHR.Report.Service/Dockerfile + tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-report:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-report:${{ env.IMAGE_VERSION }} + push: true diff --git a/.forgejo/workflows/build-retirement.yml b/.forgejo/workflows/build-retirement.yml new file mode 100644 index 00000000..4cb9cf55 --- /dev/null +++ b/.forgejo/workflows/build-retirement.yml @@ -0,0 +1,49 @@ +name: Build + +on: + push: + tags: + - "retirement[0-9]+.[0-9]+.[0-9]+" + - "retirement[0-9]+.[0-9]+.[0-9]+*" + workflow_dispatch: + +env: + REGISTRY: ${{ vars.CONTAINER_REGISTRY }} + REGISTRY_USERNAME: ${{ vars.CONTAINER_REGISTRY_USERNAME }} + REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }} + CONTAINER_IMAGE_NAME: ${{ vars.CONTAINER_REGISTRY }}/${{ vars.CONTAINER_IMAGE_OWNER }} + IMAGE_VERSION: build + +jobs: + build: + runs-on: ubuntu-latest + 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 + run: | + if [[ "${{ github.event_name }}" == "push" ]]; then + echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/retirement//g' >> $GITHUB_ENV + else + echo "IMAGE_VERSION=${{ env.IMAGE_VERSION }}-${{ github.run_number }}" >> $GITHUB_ENV + fi + - name: Login in to registry + uses: docker/login-action@v2 + with: + registry: ${{ env.REGISTRY }} + username: ${{ env.REGISTRY_USERNAME }} + password: ${{ env.REGISTRY_PASSWORD }} + - name: Build and push docker image + uses: docker/build-push-action@v3 + with: + platforms: linux/amd64 + context: . + file: ./BMA.EHR.Retirement.Service/Dockerfile + tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-retirement:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-retirement:${{ env.IMAGE_VERSION }} + push: true From 829149a091ac734e59054f178f66c603a912e3d9 Mon Sep 17 00:00:00 2001 From: AdisakKanthawilang Date: Tue, 9 Sep 2025 16:16:00 +0700 Subject: [PATCH 16/48] update build config --- .forgejo/workflows/build-checkin.yml | 18 +++++++++++++++--- .forgejo/workflows/build-command.yml | 17 ++++++++++++++--- .forgejo/workflows/build-discipline.yml | 18 +++++++++++++++--- .forgejo/workflows/build-insignia.yml | 17 ++++++++++++++--- .forgejo/workflows/build-leave.yml | 17 ++++++++++++++--- .forgejo/workflows/build-placement.yml | 18 +++++++++++++++--- .forgejo/workflows/build-report.yml | 17 ++++++++++++++--- .forgejo/workflows/build-retirement.yml | 17 ++++++++++++++--- 8 files changed, 115 insertions(+), 24 deletions(-) diff --git a/.forgejo/workflows/build-checkin.yml b/.forgejo/workflows/build-checkin.yml index 0ad8623d..0233d5cb 100644 --- a/.forgejo/workflows/build-checkin.yml +++ b/.forgejo/workflows/build-checkin.yml @@ -3,8 +3,8 @@ name: Build on: push: tags: - - "checkin[0-9]+.[0-9]+.[0-9]+" - - "checkin[0-9]+.[0-9]+.[0-9]+*" + - "checkin-dev[0-9]+.[0-9]+.[0-9]+" + - "checkin-dev[0-9]+.[0-9]+.[0-9]+*" workflow_dispatch: env: @@ -29,7 +29,7 @@ jobs: - name: Tag Version run: | if [[ "${{ github.event_name }}" == "push" ]]; then - echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/checkin//g' >> $GITHUB_ENV + echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/checkin-dev//g' >> $GITHUB_ENV else echo "IMAGE_VERSION=${{ env.IMAGE_VERSION }}-${{ github.run_number }}" >> $GITHUB_ENV fi @@ -47,3 +47,15 @@ jobs: file: ./BMA.EHR.CheckInConsumer/Dockerfile tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-checkin:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-checkin:${{ env.IMAGE_VERSION }} push: true + - name: Remote Deploy + uses: appleboy/ssh-action@v1.2.1 + with: + host: ${{ vars.SSH_DEPLOY_HOST }} + port: ${{ vars.SSH_DEPLOY_PORT }} + username: ${{ secrets.SSH_DEPLOY_USER }} + password: ${{ secrets.SSH_DEPLOY_PASSWORD }} + script: | + cd ~/repo + ./replace-env.sh API_CHECKIN "${{ env.IMAGE_VERSION }}" + ./deploy.sh hrms-api-checkin + diff --git a/.forgejo/workflows/build-command.yml b/.forgejo/workflows/build-command.yml index 508e264b..62df437a 100644 --- a/.forgejo/workflows/build-command.yml +++ b/.forgejo/workflows/build-command.yml @@ -3,8 +3,8 @@ name: Build on: push: tags: - - "command[0-9]+.[0-9]+.[0-9]+" - - "command[0-9]+.[0-9]+.[0-9]+*" + - "command-dev[0-9]+.[0-9]+.[0-9]+" + - "command-dev[0-9]+.[0-9]+.[0-9]+*" workflow_dispatch: env: @@ -29,7 +29,7 @@ jobs: - name: Tag Version run: | if [[ "${{ github.event_name }}" == "push" ]]; then - echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/command//g' >> $GITHUB_ENV + echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/command-dev//g' >> $GITHUB_ENV else echo "IMAGE_VERSION=${{ env.IMAGE_VERSION }}-${{ github.run_number }}" >> $GITHUB_ENV fi @@ -47,3 +47,14 @@ jobs: file: ./BMA.EHR.Command.Service/Dockerfile tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-command:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-command:${{ env.IMAGE_VERSION }} push: true + - name: Remote Deploy + uses: appleboy/ssh-action@v1.2.1 + with: + host: ${{ vars.SSH_DEPLOY_HOST }} + port: ${{ vars.SSH_DEPLOY_PORT }} + username: ${{ secrets.SSH_DEPLOY_USER }} + password: ${{ secrets.SSH_DEPLOY_PASSWORD }} + script: | + cd ~/repo + ./replace-env.sh API_COMMAND "${{ env.IMAGE_VERSION }}" + ./deploy.sh hrms-api-command diff --git a/.forgejo/workflows/build-discipline.yml b/.forgejo/workflows/build-discipline.yml index 67506c65..578a9025 100644 --- a/.forgejo/workflows/build-discipline.yml +++ b/.forgejo/workflows/build-discipline.yml @@ -3,8 +3,8 @@ name: Build on: push: tags: - - "discipline[0-9]+.[0-9]+.[0-9]+" - - "discipline[0-9]+.[0-9]+.[0-9]+*" + - "discipline-dev[0-9]+.[0-9]+.[0-9]+" + - "discipline-dev[0-9]+.[0-9]+.[0-9]+*" workflow_dispatch: env: @@ -29,7 +29,7 @@ jobs: - name: Tag Version run: | if [[ "${{ github.event_name }}" == "push" ]]; then - echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/discipline//g' >> $GITHUB_ENV + echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/discipline-dev//g' >> $GITHUB_ENV else echo "IMAGE_VERSION=${{ env.IMAGE_VERSION }}-${{ github.run_number }}" >> $GITHUB_ENV fi @@ -47,3 +47,15 @@ jobs: file: ./BMA.EHR.Discipline.Service/Dockerfile tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-discipline:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-discipline:${{ env.IMAGE_VERSION }} push: true + - name: Remote Deploy + uses: appleboy/ssh-action@v1.2.1 + with: + host: ${{ vars.SSH_DEPLOY_HOST }} + port: ${{ vars.SSH_DEPLOY_PORT }} + username: ${{ secrets.SSH_DEPLOY_USER }} + password: ${{ secrets.SSH_DEPLOY_PASSWORD }} + script: | + cd ~/repo + ./replace-env.sh API_DISCIPLINE "${{ env.IMAGE_VERSION }}" + ./deploy.sh hrms-api-discipline + diff --git a/.forgejo/workflows/build-insignia.yml b/.forgejo/workflows/build-insignia.yml index b9add93c..97b6310a 100644 --- a/.forgejo/workflows/build-insignia.yml +++ b/.forgejo/workflows/build-insignia.yml @@ -3,8 +3,8 @@ name: Build on: push: tags: - - "insignia[0-9]+.[0-9]+.[0-9]+" - - "insignia[0-9]+.[0-9]+.[0-9]+*" + - "insignia-dev[0-9]+.[0-9]+.[0-9]+" + - "insignia-dev[0-9]+.[0-9]+.[0-9]+*" workflow_dispatch: env: @@ -29,7 +29,7 @@ jobs: - name: Tag Version run: | if [[ "${{ github.event_name }}" == "push" ]]; then - echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/insignia//g' >> $GITHUB_ENV + echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/insignia-dev//g' >> $GITHUB_ENV else echo "IMAGE_VERSION=${{ env.IMAGE_VERSION }}-${{ github.run_number }}" >> $GITHUB_ENV fi @@ -47,3 +47,14 @@ jobs: file: ./BMA.EHR.Insignia/Dockerfile tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-insignia:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-insignia:${{ env.IMAGE_VERSION }} push: true + - name: Remote Deploy + uses: appleboy/ssh-action@v1.2.1 + with: + host: ${{ vars.SSH_DEPLOY_HOST }} + port: ${{ vars.SSH_DEPLOY_PORT }} + username: ${{ secrets.SSH_DEPLOY_USER }} + password: ${{ secrets.SSH_DEPLOY_PASSWORD }} + script: | + cd ~/repo + ./replace-env.sh API_INSIGNIA "${{ env.IMAGE_VERSION }}" + ./deploy.sh hrms-api-insignia diff --git a/.forgejo/workflows/build-leave.yml b/.forgejo/workflows/build-leave.yml index a4f2d2e5..c3d1d150 100644 --- a/.forgejo/workflows/build-leave.yml +++ b/.forgejo/workflows/build-leave.yml @@ -3,8 +3,8 @@ name: Build on: push: tags: - - "leave[0-9]+.[0-9]+.[0-9]+" - - "leave[0-9]+.[0-9]+.[0-9]+*" + - "leave-dev[0-9]+.[0-9]+.[0-9]+" + - "leave-dev[0-9]+.[0-9]+.[0-9]+*" workflow_dispatch: env: @@ -29,7 +29,7 @@ jobs: - name: Tag Version run: | if [[ "${{ github.event_name }}" == "push" ]]; then - echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/leave//g' >> $GITHUB_ENV + echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/leave-dev//g' >> $GITHUB_ENV else echo "IMAGE_VERSION=${{ env.IMAGE_VERSION }}-${{ github.run_number }}" >> $GITHUB_ENV fi @@ -47,3 +47,14 @@ jobs: file: ./BMA.EHR.Leave/Dockerfile tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-leave:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-leave:${{ env.IMAGE_VERSION }} push: true + - name: Remote Deploy + uses: appleboy/ssh-action@v1.2.1 + with: + host: ${{ vars.SSH_DEPLOY_HOST }} + port: ${{ vars.SSH_DEPLOY_PORT }} + username: ${{ secrets.SSH_DEPLOY_USER }} + password: ${{ secrets.SSH_DEPLOY_PASSWORD }} + script: | + cd ~/repo + ./replace-env.sh API_LEAVE "${{ env.IMAGE_VERSION }}" + ./deploy.sh hrms-api-leave diff --git a/.forgejo/workflows/build-placement.yml b/.forgejo/workflows/build-placement.yml index 0312b8d9..541450ca 100644 --- a/.forgejo/workflows/build-placement.yml +++ b/.forgejo/workflows/build-placement.yml @@ -3,8 +3,8 @@ name: Build on: push: tags: - - "placement[0-9]+.[0-9]+.[0-9]+" - - "placement[0-9]+.[0-9]+.[0-9]+*" + - "placement-dev[0-9]+.[0-9]+.[0-9]+" + - "placement-dev[0-9]+.[0-9]+.[0-9]+*" workflow_dispatch: env: @@ -29,7 +29,7 @@ jobs: - name: Tag Version run: | if [[ "${{ github.event_name }}" == "push" ]]; then - echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/placement//g' >> $GITHUB_ENV + echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/placement-dev//g' >> $GITHUB_ENV else echo "IMAGE_VERSION=${{ env.IMAGE_VERSION }}-${{ github.run_number }}" >> $GITHUB_ENV fi @@ -47,3 +47,15 @@ jobs: file: ./BMA.EHR.Placement.Service/Dockerfile tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-placement:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-placement:${{ env.IMAGE_VERSION }} push: true + - name: Remote Deploy + uses: appleboy/ssh-action@v1.2.1 + with: + host: ${{ vars.SSH_DEPLOY_HOST }} + port: ${{ vars.SSH_DEPLOY_PORT }} + username: ${{ secrets.SSH_DEPLOY_USER }} + password: ${{ secrets.SSH_DEPLOY_PASSWORD }} + script: | + cd ~/repo + ./replace-env.sh API_PLACEMENT "${{ env.IMAGE_VERSION }}" + ./deploy.sh hrms-api-placement + diff --git a/.forgejo/workflows/build-report.yml b/.forgejo/workflows/build-report.yml index 64afa8de..567e6aaa 100644 --- a/.forgejo/workflows/build-report.yml +++ b/.forgejo/workflows/build-report.yml @@ -3,8 +3,8 @@ name: Build on: push: tags: - - "report[0-9]+.[0-9]+.[0-9]+" - - "report[0-9]+.[0-9]+.[0-9]+*" + - "report-dev[0-9]+.[0-9]+.[0-9]+" + - "report-dev[0-9]+.[0-9]+.[0-9]+*" workflow_dispatch: env: @@ -29,7 +29,7 @@ jobs: - name: Tag Version run: | if [[ "${{ github.event_name }}" == "push" ]]; then - echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/report//g' >> $GITHUB_ENV + echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/report-dev//g' >> $GITHUB_ENV else echo "IMAGE_VERSION=${{ env.IMAGE_VERSION }}-${{ github.run_number }}" >> $GITHUB_ENV fi @@ -47,3 +47,14 @@ jobs: file: ./BMA.EHR.Report.Service/Dockerfile tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-report:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-report:${{ env.IMAGE_VERSION }} push: true + - name: Remote Deploy + uses: appleboy/ssh-action@v1.2.1 + with: + host: ${{ vars.SSH_DEPLOY_HOST }} + port: ${{ vars.SSH_DEPLOY_PORT }} + username: ${{ secrets.SSH_DEPLOY_USER }} + password: ${{ secrets.SSH_DEPLOY_PASSWORD }} + script: | + cd ~/repo + ./replace-env.sh API_REPORT "${{ env.IMAGE_VERSION }}" + ./deploy.sh hrms-api-report diff --git a/.forgejo/workflows/build-retirement.yml b/.forgejo/workflows/build-retirement.yml index 4cb9cf55..c5eb34b0 100644 --- a/.forgejo/workflows/build-retirement.yml +++ b/.forgejo/workflows/build-retirement.yml @@ -3,8 +3,8 @@ name: Build on: push: tags: - - "retirement[0-9]+.[0-9]+.[0-9]+" - - "retirement[0-9]+.[0-9]+.[0-9]+*" + - "retirement-dev[0-9]+.[0-9]+.[0-9]+" + - "retirement-dev[0-9]+.[0-9]+.[0-9]+*" workflow_dispatch: env: @@ -29,7 +29,7 @@ jobs: - name: Tag Version run: | if [[ "${{ github.event_name }}" == "push" ]]; then - echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/retirement//g' >> $GITHUB_ENV + echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/retirement-dev//g' >> $GITHUB_ENV else echo "IMAGE_VERSION=${{ env.IMAGE_VERSION }}-${{ github.run_number }}" >> $GITHUB_ENV fi @@ -47,3 +47,14 @@ jobs: file: ./BMA.EHR.Retirement.Service/Dockerfile tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-retirement:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-retirement:${{ env.IMAGE_VERSION }} push: true + - name: Remote Deploy + uses: appleboy/ssh-action@v1.2.1 + with: + host: ${{ vars.SSH_DEPLOY_HOST }} + port: ${{ vars.SSH_DEPLOY_PORT }} + username: ${{ secrets.SSH_DEPLOY_USER }} + password: ${{ secrets.SSH_DEPLOY_PASSWORD }} + script: | + cd ~/repo + ./replace-env.sh API_RETIREMENT "${{ env.IMAGE_VERSION }}" + ./deploy.sh hrms-api-retirement From ba7dae2bd80ce672e30255de2fe17d8c1a1e10b4 Mon Sep 17 00:00:00 2001 From: AdisakKanthawilang Date: Tue, 9 Sep 2025 16:31:37 +0700 Subject: [PATCH 17/48] test --- .forgejo/workflows/build-retirement.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.forgejo/workflows/build-retirement.yml b/.forgejo/workflows/build-retirement.yml index c5eb34b0..6ebf9a32 100644 --- a/.forgejo/workflows/build-retirement.yml +++ b/.forgejo/workflows/build-retirement.yml @@ -47,14 +47,14 @@ jobs: file: ./BMA.EHR.Retirement.Service/Dockerfile tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-retirement:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-retirement:${{ env.IMAGE_VERSION }} push: true - - name: Remote Deploy - uses: appleboy/ssh-action@v1.2.1 - with: - host: ${{ vars.SSH_DEPLOY_HOST }} - port: ${{ vars.SSH_DEPLOY_PORT }} - username: ${{ secrets.SSH_DEPLOY_USER }} - password: ${{ secrets.SSH_DEPLOY_PASSWORD }} - script: | - cd ~/repo - ./replace-env.sh API_RETIREMENT "${{ env.IMAGE_VERSION }}" - ./deploy.sh hrms-api-retirement + # - name: Remote Deploy + # uses: appleboy/ssh-action@v1.2.1 + # with: + # host: ${{ vars.SSH_DEPLOY_HOST }} + # port: ${{ vars.SSH_DEPLOY_PORT }} + # username: ${{ secrets.SSH_DEPLOY_USER }} + # password: ${{ secrets.SSH_DEPLOY_PASSWORD }} + # script: | + # cd ~/repo + # ./replace-env.sh API_RETIREMENT "${{ env.IMAGE_VERSION }}" + # ./deploy.sh hrms-api-retirement From 5561817fa410e5021e0242f9db0d547de7b3fee1 Mon Sep 17 00:00:00 2001 From: AdisakKanthawilang Date: Tue, 9 Sep 2025 16:38:49 +0700 Subject: [PATCH 18/48] reverse --- .forgejo/workflows/build-retirement.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.forgejo/workflows/build-retirement.yml b/.forgejo/workflows/build-retirement.yml index 6ebf9a32..c5eb34b0 100644 --- a/.forgejo/workflows/build-retirement.yml +++ b/.forgejo/workflows/build-retirement.yml @@ -47,14 +47,14 @@ jobs: file: ./BMA.EHR.Retirement.Service/Dockerfile tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-retirement:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-retirement:${{ env.IMAGE_VERSION }} push: true - # - name: Remote Deploy - # uses: appleboy/ssh-action@v1.2.1 - # with: - # host: ${{ vars.SSH_DEPLOY_HOST }} - # port: ${{ vars.SSH_DEPLOY_PORT }} - # username: ${{ secrets.SSH_DEPLOY_USER }} - # password: ${{ secrets.SSH_DEPLOY_PASSWORD }} - # script: | - # cd ~/repo - # ./replace-env.sh API_RETIREMENT "${{ env.IMAGE_VERSION }}" - # ./deploy.sh hrms-api-retirement + - name: Remote Deploy + uses: appleboy/ssh-action@v1.2.1 + with: + host: ${{ vars.SSH_DEPLOY_HOST }} + port: ${{ vars.SSH_DEPLOY_PORT }} + username: ${{ secrets.SSH_DEPLOY_USER }} + password: ${{ secrets.SSH_DEPLOY_PASSWORD }} + script: | + cd ~/repo + ./replace-env.sh API_RETIREMENT "${{ env.IMAGE_VERSION }}" + ./deploy.sh hrms-api-retirement From 3c34245d1c426018236533d276c95c4c68977658 Mon Sep 17 00:00:00 2001 From: warunee Date: Tue, 9 Sep 2025 16:50:57 +0700 Subject: [PATCH 19/48] Update .forgejo/workflows/build-retirement.yml --- .forgejo/workflows/build-retirement.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/build-retirement.yml b/.forgejo/workflows/build-retirement.yml index c5eb34b0..deae67db 100644 --- a/.forgejo/workflows/build-retirement.yml +++ b/.forgejo/workflows/build-retirement.yml @@ -45,7 +45,7 @@ jobs: platforms: linux/amd64 context: . file: ./BMA.EHR.Retirement.Service/Dockerfile - tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-retirement:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-retirement:${{ env.IMAGE_VERSION }} + tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-retirement:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-retirement:${{ env.IMAGE_VERSION }} push: true - name: Remote Deploy uses: appleboy/ssh-action@v1.2.1 From 62867d54c3761e50502390ef4a34f12fd688d6d9 Mon Sep 17 00:00:00 2001 From: AdisakKanthawilang Date: Tue, 9 Sep 2025 16:59:55 +0700 Subject: [PATCH 20/48] update build config --- .forgejo/workflows/build-checkin.yml | 2 +- .forgejo/workflows/build-command.yml | 2 +- .forgejo/workflows/build-discipline.yml | 2 +- .forgejo/workflows/build-insignia.yml | 2 +- .forgejo/workflows/build-leave.yml | 2 +- .forgejo/workflows/build-placement.yml | 2 +- .forgejo/workflows/build-report.yml | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.forgejo/workflows/build-checkin.yml b/.forgejo/workflows/build-checkin.yml index 0233d5cb..da098822 100644 --- a/.forgejo/workflows/build-checkin.yml +++ b/.forgejo/workflows/build-checkin.yml @@ -45,7 +45,7 @@ jobs: platforms: linux/amd64 context: . file: ./BMA.EHR.CheckInConsumer/Dockerfile - tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-checkin:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-checkin:${{ env.IMAGE_VERSION }} + tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-checkin:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-checkin:${{ env.IMAGE_VERSION }} push: true - name: Remote Deploy uses: appleboy/ssh-action@v1.2.1 diff --git a/.forgejo/workflows/build-command.yml b/.forgejo/workflows/build-command.yml index 62df437a..7c1cd24b 100644 --- a/.forgejo/workflows/build-command.yml +++ b/.forgejo/workflows/build-command.yml @@ -45,7 +45,7 @@ jobs: platforms: linux/amd64 context: . file: ./BMA.EHR.Command.Service/Dockerfile - tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-command:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-command:${{ env.IMAGE_VERSION }} + tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-command:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-command:${{ env.IMAGE_VERSION }} push: true - name: Remote Deploy uses: appleboy/ssh-action@v1.2.1 diff --git a/.forgejo/workflows/build-discipline.yml b/.forgejo/workflows/build-discipline.yml index 578a9025..858b69c8 100644 --- a/.forgejo/workflows/build-discipline.yml +++ b/.forgejo/workflows/build-discipline.yml @@ -45,7 +45,7 @@ jobs: platforms: linux/amd64 context: . file: ./BMA.EHR.Discipline.Service/Dockerfile - tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-discipline:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-discipline:${{ env.IMAGE_VERSION }} + tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-discipline:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-discipline:${{ env.IMAGE_VERSION }} push: true - name: Remote Deploy uses: appleboy/ssh-action@v1.2.1 diff --git a/.forgejo/workflows/build-insignia.yml b/.forgejo/workflows/build-insignia.yml index 97b6310a..f6339f56 100644 --- a/.forgejo/workflows/build-insignia.yml +++ b/.forgejo/workflows/build-insignia.yml @@ -45,7 +45,7 @@ jobs: platforms: linux/amd64 context: . file: ./BMA.EHR.Insignia/Dockerfile - tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-insignia:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-insignia:${{ env.IMAGE_VERSION }} + tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-insignia:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-insignia:${{ env.IMAGE_VERSION }} push: true - name: Remote Deploy uses: appleboy/ssh-action@v1.2.1 diff --git a/.forgejo/workflows/build-leave.yml b/.forgejo/workflows/build-leave.yml index c3d1d150..38135b32 100644 --- a/.forgejo/workflows/build-leave.yml +++ b/.forgejo/workflows/build-leave.yml @@ -45,7 +45,7 @@ jobs: platforms: linux/amd64 context: . file: ./BMA.EHR.Leave/Dockerfile - tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-leave:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-leave:${{ env.IMAGE_VERSION }} + tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-leave:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-leave:${{ env.IMAGE_VERSION }} push: true - name: Remote Deploy uses: appleboy/ssh-action@v1.2.1 diff --git a/.forgejo/workflows/build-placement.yml b/.forgejo/workflows/build-placement.yml index 541450ca..2325cedd 100644 --- a/.forgejo/workflows/build-placement.yml +++ b/.forgejo/workflows/build-placement.yml @@ -45,7 +45,7 @@ jobs: platforms: linux/amd64 context: . file: ./BMA.EHR.Placement.Service/Dockerfile - tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-placement:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-placement:${{ env.IMAGE_VERSION }} + tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-placement:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-placement:${{ env.IMAGE_VERSION }} push: true - name: Remote Deploy uses: appleboy/ssh-action@v1.2.1 diff --git a/.forgejo/workflows/build-report.yml b/.forgejo/workflows/build-report.yml index 567e6aaa..a295b99c 100644 --- a/.forgejo/workflows/build-report.yml +++ b/.forgejo/workflows/build-report.yml @@ -45,7 +45,7 @@ jobs: platforms: linux/amd64 context: . file: ./BMA.EHR.Report.Service/Dockerfile - tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-report:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-report:${{ env.IMAGE_VERSION }} + tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-report:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-report:${{ env.IMAGE_VERSION }} push: true - name: Remote Deploy uses: appleboy/ssh-action@v1.2.1 From 6bba1b19cee3b47ffdfe082bb2efbe82c2ad1848 Mon Sep 17 00:00:00 2001 From: AdisakKanthawilang Date: Tue, 9 Sep 2025 17:30:03 +0700 Subject: [PATCH 21/48] fix error --- .../Controllers/RetireReportController.cs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/BMA.EHR.Report.Service/Controllers/RetireReportController.cs b/BMA.EHR.Report.Service/Controllers/RetireReportController.cs index c5c2fa1a..daa4bac6 100644 --- a/BMA.EHR.Report.Service/Controllers/RetireReportController.cs +++ b/BMA.EHR.Report.Service/Controllers/RetireReportController.cs @@ -23,13 +23,17 @@ namespace BMA.EHR.Report.Service.Controllers private readonly IConfiguration _configuration; private readonly PermissionRepository _permission; - public RetireReportController(RetireReportRepository service, IWebHostEnvironment hostingEnvironment, IConfiguration configuration, PermissionRepository permission) + private readonly IHttpContextAccessor _httpContextAccessor; + + public RetireReportController(RetireReportRepository service, IWebHostEnvironment hostingEnvironment, IConfiguration configuration, PermissionRepository permission, IHttpContextAccessor httpContextAccessor) { _service = service; _hostingEnvironment = hostingEnvironment; _configuration = configuration; _permission = permission; + _httpContextAccessor = httpContextAccessor; } + private string? AccessToken => _httpContextAccessor?.HttpContext?.Request.Headers["Authorization"]; #region 31-ประกาศเกษียณข้าราชการ & 32-ประกาศเกษียณลูกจ้างประจำ /// @@ -44,7 +48,7 @@ namespace BMA.EHR.Report.Service.Controllers [HttpGet("{exportType}/{Id}")] public async Task> GetProfileRetirement([FromRoute] Guid Id, string exportType = "pdf") { - var retire = await _service.GetProfileRetirementdAsync(Id,token); + var retire = await _service.GetProfileRetirementdAsync(Id,AccessToken); if (retire != null) { var reportfile = string.Empty; From 51fc5c6395fb07854a06631a2ecfb24d1801061a Mon Sep 17 00:00:00 2001 From: forgejo Date: Thu, 11 Sep 2025 15:28:00 +0700 Subject: [PATCH 22/48] Update BMA.EHR.Insignia/Services/InsigniaRequestProcessService.cs --- BMA.EHR.Insignia/Services/InsigniaRequestProcessService.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/BMA.EHR.Insignia/Services/InsigniaRequestProcessService.cs b/BMA.EHR.Insignia/Services/InsigniaRequestProcessService.cs index abaa5093..ba4fdcbe 100644 --- a/BMA.EHR.Insignia/Services/InsigniaRequestProcessService.cs +++ b/BMA.EHR.Insignia/Services/InsigniaRequestProcessService.cs @@ -35,11 +35,12 @@ public class InsigniaRequestProcessService : BackgroundService public override async Task StartAsync(CancellationToken cancellationToken) { - var client = new SocketIO("https://bma-ehr.frappet.synology.me/api/v1/org-socket", + var client = new SocketIO("https://hrmsbkk.case-collection.com", new SocketIOOptions { // เพิ่ม token ใน handshake.auth - Auth = new { token = AccessToken ?? "" } + Auth = new { token = AccessToken ?? "" }, + Path = "/api/v1/org-socket" }); client.OnConnected += async (sender, e) => From c6c49ffaffb306a1c4dd299f73e3231774ebb595 Mon Sep 17 00:00:00 2001 From: forgejo Date: Thu, 11 Sep 2025 15:31:57 +0700 Subject: [PATCH 23/48] Update BMA.EHR.Insignia/Services/InsigniaRequestProcessService.cs --- BMA.EHR.Insignia/Services/InsigniaRequestProcessService.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BMA.EHR.Insignia/Services/InsigniaRequestProcessService.cs b/BMA.EHR.Insignia/Services/InsigniaRequestProcessService.cs index ba4fdcbe..de49a0c0 100644 --- a/BMA.EHR.Insignia/Services/InsigniaRequestProcessService.cs +++ b/BMA.EHR.Insignia/Services/InsigniaRequestProcessService.cs @@ -35,7 +35,7 @@ public class InsigniaRequestProcessService : BackgroundService public override async Task StartAsync(CancellationToken cancellationToken) { - var client = new SocketIO("https://hrmsbkk.case-collection.com", + var client = new SocketIO("wss://hrmsbkk.case-collection.com", new SocketIOOptions { // เพิ่ม token ใน handshake.auth From 643b6903d943eaffc890cff8dc1a9827dcfb9130 Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Tue, 16 Sep 2025 13:30:24 +0700 Subject: [PATCH 24/48] add noti --- .forgejo/workflows/build-checkin.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/.forgejo/workflows/build-checkin.yml b/.forgejo/workflows/build-checkin.yml index da098822..5597b011 100644 --- a/.forgejo/workflows/build-checkin.yml +++ b/.forgejo/workflows/build-checkin.yml @@ -13,6 +13,7 @@ env: REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }} CONTAINER_IMAGE_NAME: ${{ vars.CONTAINER_REGISTRY }}/${{ vars.CONTAINER_IMAGE_OWNER }} IMAGE_VERSION: build + DISCORD_WEBHOOK: ${{ vars.DISCORD_WEBHOOK }} jobs: build: @@ -59,3 +60,24 @@ jobs: ./replace-env.sh API_CHECKIN "${{ env.IMAGE_VERSION }}" ./deploy.sh hrms-api-checkin + - name: Discord Notification + if: always() + run: | + STATUS="${{ job.status == 'success' && '✅ Success' || '❌ Failed' }}" + COLOR="${{ job.status == 'success' && '3066993' || '15158332' }}" + TIMESTAMP=$(date -u +%Y-%m-%dT%H:%M:%SZ) + curl -H "Content-Type: application/json" \ + -X POST \ + -d "{ + \"embeds\": [{ + \"title\": \"$STATUS\", + \"description\": \"**Build & Deploy**\\n- Image: \`${{ env.CONTAINER_IMAGE_NAME }}\`\\n- Version: \`${{ env.IMAGE_VERSION }}\`\\n- By: \`${{ github.actor }}\`\", + \"color\": $COLOR, + \"footer\": { + \"text\": \"Release Notification\", + \"icon_url\": \"https://example.com/success-icon.png\" + }, + \"timestamp\": \"$TIMESTAMP\" + }] + }" \ + ${{ env.DISCORD_WEBHOOK }} From d0c5bafdbaff39221e9dbd3833e70c19d7b722da Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Tue, 16 Sep 2025 13:46:02 +0700 Subject: [PATCH 25/48] fix cicd noti --- .forgejo/workflows/build-checkin.yml | 7 +- .forgejo/workflows/build-command.yml | 115 ++++++++++++------------ .forgejo/workflows/build-discipline.yml | 29 +++++- .forgejo/workflows/build-insignia.yml | 28 +++++- .forgejo/workflows/build-leave.yml | 28 +++++- .forgejo/workflows/build-placement.yml | 27 +++++- .forgejo/workflows/build-report.yml | 28 +++++- .forgejo/workflows/build-retirement.yml | 28 +++++- 8 files changed, 217 insertions(+), 73 deletions(-) diff --git a/.forgejo/workflows/build-checkin.yml b/.forgejo/workflows/build-checkin.yml index 5597b011..249acba3 100644 --- a/.forgejo/workflows/build-checkin.yml +++ b/.forgejo/workflows/build-checkin.yml @@ -12,6 +12,7 @@ env: REGISTRY_USERNAME: ${{ vars.CONTAINER_REGISTRY_USERNAME }} REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }} CONTAINER_IMAGE_NAME: ${{ vars.CONTAINER_REGISTRY }}/${{ vars.CONTAINER_IMAGE_OWNER }} + SERVICE_NAME: hrms-api-checkin IMAGE_VERSION: build DISCORD_WEBHOOK: ${{ vars.DISCORD_WEBHOOK }} @@ -46,7 +47,7 @@ jobs: platforms: linux/amd64 context: . file: ./BMA.EHR.CheckInConsumer/Dockerfile - tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-checkin:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-checkin:${{ env.IMAGE_VERSION }} + tags: ${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-checkin:${{ env.IMAGE_VERSION }} push: true - name: Remote Deploy uses: appleboy/ssh-action@v1.2.1 @@ -58,7 +59,7 @@ jobs: script: | cd ~/repo ./replace-env.sh API_CHECKIN "${{ env.IMAGE_VERSION }}" - ./deploy.sh hrms-api-checkin + ./deploy.sh ${{ env.SERVICE_NAME }} - name: Discord Notification if: always() @@ -71,7 +72,7 @@ jobs: -d "{ \"embeds\": [{ \"title\": \"$STATUS\", - \"description\": \"**Build & Deploy**\\n- Image: \`${{ env.CONTAINER_IMAGE_NAME }}\`\\n- Version: \`${{ env.IMAGE_VERSION }}\`\\n- By: \`${{ github.actor }}\`\", + \"description\": \"**Build & Deploy**\\n- Image: \`${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}\`\\n- Version: \`${{ env.IMAGE_VERSION }}\`\\n- By: \`${{ github.actor }}\`\", \"color\": $COLOR, \"footer\": { \"text\": \"Release Notification\", diff --git a/.forgejo/workflows/build-command.yml b/.forgejo/workflows/build-command.yml index 7c1cd24b..0884c70b 100644 --- a/.forgejo/workflows/build-command.yml +++ b/.forgejo/workflows/build-command.yml @@ -1,60 +1,61 @@ -name: Build +# name: Build -on: - push: - tags: - - "command-dev[0-9]+.[0-9]+.[0-9]+" - - "command-dev[0-9]+.[0-9]+.[0-9]+*" - workflow_dispatch: +# on: +# push: +# tags: +# - "command-dev[0-9]+.[0-9]+.[0-9]+" +# - "command-dev[0-9]+.[0-9]+.[0-9]+*" +# workflow_dispatch: -env: - REGISTRY: ${{ vars.CONTAINER_REGISTRY }} - REGISTRY_USERNAME: ${{ vars.CONTAINER_REGISTRY_USERNAME }} - REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }} - CONTAINER_IMAGE_NAME: ${{ vars.CONTAINER_REGISTRY }}/${{ vars.CONTAINER_IMAGE_OWNER }} - IMAGE_VERSION: build +# env: +# REGISTRY: ${{ vars.CONTAINER_REGISTRY }} +# REGISTRY_USERNAME: ${{ vars.CONTAINER_REGISTRY_USERNAME }} +# REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }} +# CONTAINER_IMAGE_NAME: ${{ vars.CONTAINER_REGISTRY }}/${{ vars.CONTAINER_IMAGE_OWNER }} +# IMAGE_VERSION: build +# DISCORD_WEBHOOK: ${{ vars.DISCORD_WEBHOOK }} -jobs: - build: - runs-on: ubuntu-latest - 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 - run: | - if [[ "${{ github.event_name }}" == "push" ]]; then - echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/command-dev//g' >> $GITHUB_ENV - else - echo "IMAGE_VERSION=${{ env.IMAGE_VERSION }}-${{ github.run_number }}" >> $GITHUB_ENV - fi - - name: Login in to registry - uses: docker/login-action@v2 - with: - registry: ${{ env.REGISTRY }} - username: ${{ env.REGISTRY_USERNAME }} - password: ${{ env.REGISTRY_PASSWORD }} - - name: Build and push docker image - uses: docker/build-push-action@v3 - with: - platforms: linux/amd64 - context: . - file: ./BMA.EHR.Command.Service/Dockerfile - tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-command:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-command:${{ env.IMAGE_VERSION }} - push: true - - name: Remote Deploy - uses: appleboy/ssh-action@v1.2.1 - with: - host: ${{ vars.SSH_DEPLOY_HOST }} - port: ${{ vars.SSH_DEPLOY_PORT }} - username: ${{ secrets.SSH_DEPLOY_USER }} - password: ${{ secrets.SSH_DEPLOY_PASSWORD }} - script: | - cd ~/repo - ./replace-env.sh API_COMMAND "${{ env.IMAGE_VERSION }}" - ./deploy.sh hrms-api-command +# jobs: +# build: +# runs-on: ubuntu-latest +# 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 +# run: | +# if [[ "${{ github.event_name }}" == "push" ]]; then +# echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/command-dev//g' >> $GITHUB_ENV +# else +# echo "IMAGE_VERSION=${{ env.IMAGE_VERSION }}-${{ github.run_number }}" >> $GITHUB_ENV +# fi +# - name: Login in to registry +# uses: docker/login-action@v2 +# with: +# registry: ${{ env.REGISTRY }} +# username: ${{ env.REGISTRY_USERNAME }} +# password: ${{ env.REGISTRY_PASSWORD }} +# - name: Build and push docker image +# uses: docker/build-push-action@v3 +# with: +# platforms: linux/amd64 +# context: . +# file: ./BMA.EHR.Command.Service/Dockerfile +# tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-command:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-command:${{ env.IMAGE_VERSION }} +# push: true +# - name: Remote Deploy +# uses: appleboy/ssh-action@v1.2.1 +# with: +# host: ${{ vars.SSH_DEPLOY_HOST }} +# port: ${{ vars.SSH_DEPLOY_PORT }} +# username: ${{ secrets.SSH_DEPLOY_USER }} +# password: ${{ secrets.SSH_DEPLOY_PASSWORD }} +# script: | +# cd ~/repo +# ./replace-env.sh API_COMMAND "${{ env.IMAGE_VERSION }}" +# ./deploy.sh hrms-api-command diff --git a/.forgejo/workflows/build-discipline.yml b/.forgejo/workflows/build-discipline.yml index 858b69c8..07e906b1 100644 --- a/.forgejo/workflows/build-discipline.yml +++ b/.forgejo/workflows/build-discipline.yml @@ -12,7 +12,9 @@ env: REGISTRY_USERNAME: ${{ vars.CONTAINER_REGISTRY_USERNAME }} REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }} CONTAINER_IMAGE_NAME: ${{ vars.CONTAINER_REGISTRY }}/${{ vars.CONTAINER_IMAGE_OWNER }} + SERVICE_NAME: hrms-api-discipline IMAGE_VERSION: build + DISCORD_WEBHOOK: ${{ vars.DISCORD_WEBHOOK }} jobs: build: @@ -45,7 +47,7 @@ jobs: platforms: linux/amd64 context: . file: ./BMA.EHR.Discipline.Service/Dockerfile - tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-discipline:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-discipline:${{ env.IMAGE_VERSION }} + tags: ${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-discipline:${{ env.IMAGE_VERSION }} push: true - name: Remote Deploy uses: appleboy/ssh-action@v1.2.1 @@ -57,5 +59,26 @@ jobs: script: | cd ~/repo ./replace-env.sh API_DISCIPLINE "${{ env.IMAGE_VERSION }}" - ./deploy.sh hrms-api-discipline - + ./deploy.sh ${{ env.SERVICE_NAME }} + + - name: Discord Notification + if: always() + run: | + STATUS="${{ job.status == 'success' && '✅ Success' || '❌ Failed' }}" + COLOR="${{ job.status == 'success' && '3066993' || '15158332' }}" + TIMESTAMP=$(date -u +%Y-%m-%dT%H:%M:%SZ) + curl -H "Content-Type: application/json" \ + -X POST \ + -d "{ + \"embeds\": [{ + \"title\": \"$STATUS\", + \"description\": \"**Build & Deploy**\\n- Image: \`${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}\`\\n- Version: \`${{ env.IMAGE_VERSION }}\`\\n- By: \`${{ github.actor }}\`\", + \"color\": $COLOR, + \"footer\": { + \"text\": \"Release Notification\", + \"icon_url\": \"https://example.com/success-icon.png\" + }, + \"timestamp\": \"$TIMESTAMP\" + }] + }" \ + ${{ env.DISCORD_WEBHOOK }} diff --git a/.forgejo/workflows/build-insignia.yml b/.forgejo/workflows/build-insignia.yml index f6339f56..d73a4346 100644 --- a/.forgejo/workflows/build-insignia.yml +++ b/.forgejo/workflows/build-insignia.yml @@ -12,7 +12,9 @@ env: REGISTRY_USERNAME: ${{ vars.CONTAINER_REGISTRY_USERNAME }} REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }} CONTAINER_IMAGE_NAME: ${{ vars.CONTAINER_REGISTRY }}/${{ vars.CONTAINER_IMAGE_OWNER }} + SERVICE_NAME: hrms-api-insignia IMAGE_VERSION: build + DISCORD_WEBHOOK: ${{ vars.DISCORD_WEBHOOK }} jobs: build: @@ -45,7 +47,7 @@ jobs: platforms: linux/amd64 context: . file: ./BMA.EHR.Insignia/Dockerfile - tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-insignia:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-insignia:${{ env.IMAGE_VERSION }} + tags: ${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-insignia:${{ env.IMAGE_VERSION }} push: true - name: Remote Deploy uses: appleboy/ssh-action@v1.2.1 @@ -57,4 +59,26 @@ jobs: script: | cd ~/repo ./replace-env.sh API_INSIGNIA "${{ env.IMAGE_VERSION }}" - ./deploy.sh hrms-api-insignia + ./deploy.sh ${{ env.SERVICE_NAME }} + + - name: Discord Notification + if: always() + run: | + STATUS="${{ job.status == 'success' && '✅ Success' || '❌ Failed' }}" + COLOR="${{ job.status == 'success' && '3066993' || '15158332' }}" + TIMESTAMP=$(date -u +%Y-%m-%dT%H:%M:%SZ) + curl -H "Content-Type: application/json" \ + -X POST \ + -d "{ + \"embeds\": [{ + \"title\": \"$STATUS\", + \"description\": \"**Build & Deploy**\\n- Image: \`${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}\`\\n- Version: \`${{ env.IMAGE_VERSION }}\`\\n- By: \`${{ github.actor }}\`\", + \"color\": $COLOR, + \"footer\": { + \"text\": \"Release Notification\", + \"icon_url\": \"https://example.com/success-icon.png\" + }, + \"timestamp\": \"$TIMESTAMP\" + }] + }" \ + ${{ env.DISCORD_WEBHOOK }} diff --git a/.forgejo/workflows/build-leave.yml b/.forgejo/workflows/build-leave.yml index 38135b32..de8ccb16 100644 --- a/.forgejo/workflows/build-leave.yml +++ b/.forgejo/workflows/build-leave.yml @@ -12,7 +12,9 @@ env: REGISTRY_USERNAME: ${{ vars.CONTAINER_REGISTRY_USERNAME }} REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }} CONTAINER_IMAGE_NAME: ${{ vars.CONTAINER_REGISTRY }}/${{ vars.CONTAINER_IMAGE_OWNER }} + SERVICE_NAME: hrms-api-leave IMAGE_VERSION: build + DISCORD_WEBHOOK: ${{ vars.DISCORD_WEBHOOK }} jobs: build: @@ -45,7 +47,7 @@ jobs: platforms: linux/amd64 context: . file: ./BMA.EHR.Leave/Dockerfile - tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-leave:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-leave:${{ env.IMAGE_VERSION }} + tags: ${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-leave:${{ env.IMAGE_VERSION }} push: true - name: Remote Deploy uses: appleboy/ssh-action@v1.2.1 @@ -57,4 +59,26 @@ jobs: script: | cd ~/repo ./replace-env.sh API_LEAVE "${{ env.IMAGE_VERSION }}" - ./deploy.sh hrms-api-leave + ./deploy.sh ${{ env.SERVICE_NAME }} + + - name: Discord Notification + if: always() + run: | + STATUS="${{ job.status == 'success' && '✅ Success' || '❌ Failed' }}" + COLOR="${{ job.status == 'success' && '3066993' || '15158332' }}" + TIMESTAMP=$(date -u +%Y-%m-%dT%H:%M:%SZ) + curl -H "Content-Type: application/json" \ + -X POST \ + -d "{ + \"embeds\": [{ + \"title\": \"$STATUS\", + \"description\": \"**Build & Deploy**\\n- Image: \`${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}\`\\n- Version: \`${{ env.IMAGE_VERSION }}\`\\n- By: \`${{ github.actor }}\`\", + \"color\": $COLOR, + \"footer\": { + \"text\": \"Release Notification\", + \"icon_url\": \"https://example.com/success-icon.png\" + }, + \"timestamp\": \"$TIMESTAMP\" + }] + }" \ + ${{ env.DISCORD_WEBHOOK }} diff --git a/.forgejo/workflows/build-placement.yml b/.forgejo/workflows/build-placement.yml index 2325cedd..668cab59 100644 --- a/.forgejo/workflows/build-placement.yml +++ b/.forgejo/workflows/build-placement.yml @@ -12,7 +12,9 @@ env: REGISTRY_USERNAME: ${{ vars.CONTAINER_REGISTRY_USERNAME }} 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: build: @@ -45,7 +47,7 @@ jobs: platforms: linux/amd64 context: . file: ./BMA.EHR.Placement.Service/Dockerfile - tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-placement:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-placement:${{ env.IMAGE_VERSION }} + tags: ${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-placement:${{ env.IMAGE_VERSION }} push: true - name: Remote Deploy uses: appleboy/ssh-action@v1.2.1 @@ -57,5 +59,26 @@ jobs: script: | cd ~/repo ./replace-env.sh API_PLACEMENT "${{ env.IMAGE_VERSION }}" - ./deploy.sh hrms-api-placement + ./deploy.sh ${{ env.SERVICE_NAME }} + - name: Discord Notification + if: always() + run: | + STATUS="${{ job.status == 'success' && '✅ Success' || '❌ Failed' }}" + COLOR="${{ job.status == 'success' && '3066993' || '15158332' }}" + TIMESTAMP=$(date -u +%Y-%m-%dT%H:%M:%SZ) + curl -H "Content-Type: application/json" \ + -X POST \ + -d "{ + \"embeds\": [{ + \"title\": \"$STATUS\", + \"description\": \"**Build & Deploy**\\n- Image: \`${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}\`\\n- Version: \`${{ env.IMAGE_VERSION }}\`\\n- By: \`${{ github.actor }}\`\", + \"color\": $COLOR, + \"footer\": { + \"text\": \"Release Notification\", + \"icon_url\": \"https://example.com/success-icon.png\" + }, + \"timestamp\": \"$TIMESTAMP\" + }] + }" \ + ${{ env.DISCORD_WEBHOOK }} diff --git a/.forgejo/workflows/build-report.yml b/.forgejo/workflows/build-report.yml index a295b99c..2dd47426 100644 --- a/.forgejo/workflows/build-report.yml +++ b/.forgejo/workflows/build-report.yml @@ -12,7 +12,9 @@ env: REGISTRY_USERNAME: ${{ vars.CONTAINER_REGISTRY_USERNAME }} REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }} CONTAINER_IMAGE_NAME: ${{ vars.CONTAINER_REGISTRY }}/${{ vars.CONTAINER_IMAGE_OWNER }} + SERVICE_NAME: hrms-api-report IMAGE_VERSION: build + DISCORD_WEBHOOK: ${{ vars.DISCORD_WEBHOOK }} jobs: build: @@ -45,7 +47,7 @@ jobs: platforms: linux/amd64 context: . file: ./BMA.EHR.Report.Service/Dockerfile - tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-report:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-report:${{ env.IMAGE_VERSION }} + tags: ${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}:latest,${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}:${{ env.IMAGE_VERSION }} push: true - name: Remote Deploy uses: appleboy/ssh-action@v1.2.1 @@ -57,4 +59,26 @@ jobs: script: | cd ~/repo ./replace-env.sh API_REPORT "${{ env.IMAGE_VERSION }}" - ./deploy.sh hrms-api-report + ./deploy.sh ${{ env.SERVICE_NAME }} + + - name: Discord Notification + if: always() + run: | + STATUS="${{ job.status == 'success' && '✅ Success' || '❌ Failed' }}" + COLOR="${{ job.status == 'success' && '3066993' || '15158332' }}" + TIMESTAMP=$(date -u +%Y-%m-%dT%H:%M:%SZ) + curl -H "Content-Type: application/json" \ + -X POST \ + -d "{ + \"embeds\": [{ + \"title\": \"$STATUS\", + \"description\": \"**Build & Deploy**\\n- Image: \`${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}\`\\n- Version: \`${{ env.IMAGE_VERSION }}\`\\n- By: \`${{ github.actor }}\`\", + \"color\": $COLOR, + \"footer\": { + \"text\": \"Release Notification\", + \"icon_url\": \"https://example.com/success-icon.png\" + }, + \"timestamp\": \"$TIMESTAMP\" + }] + }" \ + ${{ env.DISCORD_WEBHOOK }} diff --git a/.forgejo/workflows/build-retirement.yml b/.forgejo/workflows/build-retirement.yml index deae67db..0b3e0022 100644 --- a/.forgejo/workflows/build-retirement.yml +++ b/.forgejo/workflows/build-retirement.yml @@ -12,7 +12,9 @@ env: REGISTRY_USERNAME: ${{ vars.CONTAINER_REGISTRY_USERNAME }} REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }} CONTAINER_IMAGE_NAME: ${{ vars.CONTAINER_REGISTRY }}/${{ vars.CONTAINER_IMAGE_OWNER }} + SERVICE_NAME: hrms-api-retirement IMAGE_VERSION: build + DISCORD_WEBHOOK: ${{ vars.DISCORD_WEBHOOK }} jobs: build: @@ -45,7 +47,7 @@ jobs: platforms: linux/amd64 context: . file: ./BMA.EHR.Retirement.Service/Dockerfile - tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-retirement:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-retirement:${{ env.IMAGE_VERSION }} + tags: ${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}:latest,${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}:${{ env.IMAGE_VERSION }} push: true - name: Remote Deploy uses: appleboy/ssh-action@v1.2.1 @@ -57,4 +59,26 @@ jobs: script: | cd ~/repo ./replace-env.sh API_RETIREMENT "${{ env.IMAGE_VERSION }}" - ./deploy.sh hrms-api-retirement + ./deploy.sh ${{ env.SERVICE_NAME }} + + - name: Discord Notification + if: always() + run: | + STATUS="${{ job.status == 'success' && '✅ Success' || '❌ Failed' }}" + COLOR="${{ job.status == 'success' && '3066993' || '15158332' }}" + TIMESTAMP=$(date -u +%Y-%m-%dT%H:%M:%SZ) + curl -H "Content-Type: application/json" \ + -X POST \ + -d "{ + \"embeds\": [{ + \"title\": \"$STATUS\", + \"description\": \"**Build & Deploy**\\n- Image: \`${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}\`\\n- Version: \`${{ env.IMAGE_VERSION }}\`\\n- By: \`${{ github.actor }}\`\", + \"color\": $COLOR, + \"footer\": { + \"text\": \"Release Notification\", + \"icon_url\": \"https://example.com/success-icon.png\" + }, + \"timestamp\": \"$TIMESTAMP\" + }] + }" \ + ${{ env.DISCORD_WEBHOOK }} From 87e6f88cf69d875bdc488a352fc33a69f6839d1e Mon Sep 17 00:00:00 2001 From: warunee Date: Tue, 16 Sep 2025 15:44:13 +0700 Subject: [PATCH 26/48] Update .forgejo/workflows/build-report_bk.yml --- .forgejo/workflows/build-report.yml | 84 -------------------------- .forgejo/workflows/build-report_bk.yml | 84 ++++++++++++++++++++++++++ 2 files changed, 84 insertions(+), 84 deletions(-) delete mode 100644 .forgejo/workflows/build-report.yml create mode 100644 .forgejo/workflows/build-report_bk.yml diff --git a/.forgejo/workflows/build-report.yml b/.forgejo/workflows/build-report.yml deleted file mode 100644 index 2dd47426..00000000 --- a/.forgejo/workflows/build-report.yml +++ /dev/null @@ -1,84 +0,0 @@ -name: Build - -on: - push: - tags: - - "report-dev[0-9]+.[0-9]+.[0-9]+" - - "report-dev[0-9]+.[0-9]+.[0-9]+*" - workflow_dispatch: - -env: - REGISTRY: ${{ vars.CONTAINER_REGISTRY }} - REGISTRY_USERNAME: ${{ vars.CONTAINER_REGISTRY_USERNAME }} - REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }} - CONTAINER_IMAGE_NAME: ${{ vars.CONTAINER_REGISTRY }}/${{ vars.CONTAINER_IMAGE_OWNER }} - SERVICE_NAME: hrms-api-report - IMAGE_VERSION: build - DISCORD_WEBHOOK: ${{ vars.DISCORD_WEBHOOK }} - -jobs: - build: - runs-on: ubuntu-latest - 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 - run: | - if [[ "${{ github.event_name }}" == "push" ]]; then - echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/report-dev//g' >> $GITHUB_ENV - else - echo "IMAGE_VERSION=${{ env.IMAGE_VERSION }}-${{ github.run_number }}" >> $GITHUB_ENV - fi - - name: Login in to registry - uses: docker/login-action@v2 - with: - registry: ${{ env.REGISTRY }} - username: ${{ env.REGISTRY_USERNAME }} - password: ${{ env.REGISTRY_PASSWORD }} - - name: Build and push docker image - uses: docker/build-push-action@v3 - with: - platforms: linux/amd64 - context: . - file: ./BMA.EHR.Report.Service/Dockerfile - tags: ${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}:latest,${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}:${{ env.IMAGE_VERSION }} - push: true - - name: Remote Deploy - uses: appleboy/ssh-action@v1.2.1 - with: - host: ${{ vars.SSH_DEPLOY_HOST }} - port: ${{ vars.SSH_DEPLOY_PORT }} - username: ${{ secrets.SSH_DEPLOY_USER }} - password: ${{ secrets.SSH_DEPLOY_PASSWORD }} - script: | - cd ~/repo - ./replace-env.sh API_REPORT "${{ env.IMAGE_VERSION }}" - ./deploy.sh ${{ env.SERVICE_NAME }} - - - name: Discord Notification - if: always() - run: | - STATUS="${{ job.status == 'success' && '✅ Success' || '❌ Failed' }}" - COLOR="${{ job.status == 'success' && '3066993' || '15158332' }}" - TIMESTAMP=$(date -u +%Y-%m-%dT%H:%M:%SZ) - curl -H "Content-Type: application/json" \ - -X POST \ - -d "{ - \"embeds\": [{ - \"title\": \"$STATUS\", - \"description\": \"**Build & Deploy**\\n- Image: \`${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}\`\\n- Version: \`${{ env.IMAGE_VERSION }}\`\\n- By: \`${{ github.actor }}\`\", - \"color\": $COLOR, - \"footer\": { - \"text\": \"Release Notification\", - \"icon_url\": \"https://example.com/success-icon.png\" - }, - \"timestamp\": \"$TIMESTAMP\" - }] - }" \ - ${{ env.DISCORD_WEBHOOK }} diff --git a/.forgejo/workflows/build-report_bk.yml b/.forgejo/workflows/build-report_bk.yml new file mode 100644 index 00000000..664de47b --- /dev/null +++ b/.forgejo/workflows/build-report_bk.yml @@ -0,0 +1,84 @@ +# name: Build + +# on: +# push: +# tags: +# - "report-dev[0-9]+.[0-9]+.[0-9]+" +# - "report-dev[0-9]+.[0-9]+.[0-9]+*" +# workflow_dispatch: + +# env: +# REGISTRY: ${{ vars.CONTAINER_REGISTRY }} +# REGISTRY_USERNAME: ${{ vars.CONTAINER_REGISTRY_USERNAME }} +# REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }} +# CONTAINER_IMAGE_NAME: ${{ vars.CONTAINER_REGISTRY }}/${{ vars.CONTAINER_IMAGE_OWNER }} +# SERVICE_NAME: hrms-api-report +# IMAGE_VERSION: build +# DISCORD_WEBHOOK: ${{ vars.DISCORD_WEBHOOK }} + +# jobs: +# build: +# runs-on: ubuntu-latest +# 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 +# run: | +# if [[ "${{ github.event_name }}" == "push" ]]; then +# echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/report-dev//g' >> $GITHUB_ENV +# else +# echo "IMAGE_VERSION=${{ env.IMAGE_VERSION }}-${{ github.run_number }}" >> $GITHUB_ENV +# fi +# - name: Login in to registry +# uses: docker/login-action@v2 +# with: +# registry: ${{ env.REGISTRY }} +# username: ${{ env.REGISTRY_USERNAME }} +# password: ${{ env.REGISTRY_PASSWORD }} +# - name: Build and push docker image +# uses: docker/build-push-action@v3 +# with: +# platforms: linux/amd64 +# context: . +# file: ./BMA.EHR.Report.Service/Dockerfile +# tags: ${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}:latest,${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}:${{ env.IMAGE_VERSION }} +# push: true +# - name: Remote Deploy +# uses: appleboy/ssh-action@v1.2.1 +# with: +# host: ${{ vars.SSH_DEPLOY_HOST }} +# port: ${{ vars.SSH_DEPLOY_PORT }} +# username: ${{ secrets.SSH_DEPLOY_USER }} +# password: ${{ secrets.SSH_DEPLOY_PASSWORD }} +# script: | +# cd ~/repo +# ./replace-env.sh API_REPORT "${{ env.IMAGE_VERSION }}" +# ./deploy.sh ${{ env.SERVICE_NAME }} + +# - name: Discord Notification +# if: always() +# run: | +# STATUS="${{ job.status == 'success' && '✅ Success' || '❌ Failed' }}" +# COLOR="${{ job.status == 'success' && '3066993' || '15158332' }}" +# TIMESTAMP=$(date -u +%Y-%m-%dT%H:%M:%SZ) +# curl -H "Content-Type: application/json" \ +# -X POST \ +# -d "{ +# \"embeds\": [{ +# \"title\": \"$STATUS\", +# \"description\": \"**Build & Deploy**\\n- Image: \`${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}\`\\n- Version: \`${{ env.IMAGE_VERSION }}\`\\n- By: \`${{ github.actor }}\`\", +# \"color\": $COLOR, +# \"footer\": { +# \"text\": \"Release Notification\", +# \"icon_url\": \"https://example.com/success-icon.png\" +# }, +# \"timestamp\": \"$TIMESTAMP\" +# }] +# }" \ +# ${{ env.DISCORD_WEBHOOK }} From aa1708474bbf10004356fd42da6af2541228134a Mon Sep 17 00:00:00 2001 From: warunee Date: Tue, 16 Sep 2025 15:45:10 +0700 Subject: [PATCH 27/48] Update .forgejo/workflows/build-command_backup.yml --- .../workflows/{build-command.yml => build-command_backup.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .forgejo/workflows/{build-command.yml => build-command_backup.yml} (100%) diff --git a/.forgejo/workflows/build-command.yml b/.forgejo/workflows/build-command_backup.yml similarity index 100% rename from .forgejo/workflows/build-command.yml rename to .forgejo/workflows/build-command_backup.yml From cd7ac8de17c468abdd86140a0bae8a066efa3534 Mon Sep 17 00:00:00 2001 From: warunee Date: Tue, 16 Sep 2025 15:45:23 +0700 Subject: [PATCH 28/48] Update .forgejo/workflows/build-report_backup.yml --- .../workflows/{build-report_bk.yml => build-report_backup.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .forgejo/workflows/{build-report_bk.yml => build-report_backup.yml} (100%) diff --git a/.forgejo/workflows/build-report_bk.yml b/.forgejo/workflows/build-report_backup.yml similarity index 100% rename from .forgejo/workflows/build-report_bk.yml rename to .forgejo/workflows/build-report_backup.yml From 0fe60d3212c91dd660e4a4ba208855d37b7c6f75 Mon Sep 17 00:00:00 2001 From: warunee Date: Tue, 16 Sep 2025 17:35:43 +0700 Subject: [PATCH 29/48] Update .forgejo/workflows/build.yml --- .forgejo/workflows/build.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.forgejo/workflows/build.yml b/.forgejo/workflows/build.yml index 67506c65..55f7ffbe 100644 --- a/.forgejo/workflows/build.yml +++ b/.forgejo/workflows/build.yml @@ -3,8 +3,8 @@ name: Build on: push: tags: - - "discipline[0-9]+.[0-9]+.[0-9]+" - - "discipline[0-9]+.[0-9]+.[0-9]+*" + - "leave[0-9]+.[0-9]+.[0-9]+" + - "leave[0-9]+.[0-9]+.[0-9]+*" workflow_dispatch: env: @@ -29,7 +29,7 @@ jobs: - name: Tag Version run: | if [[ "${{ github.event_name }}" == "push" ]]; then - echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/discipline//g' >> $GITHUB_ENV + echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/leave//g' >> $GITHUB_ENV else echo "IMAGE_VERSION=${{ env.IMAGE_VERSION }}-${{ github.run_number }}" >> $GITHUB_ENV fi @@ -44,6 +44,6 @@ jobs: with: platforms: linux/amd64 context: . - file: ./BMA.EHR.Discipline.Service/Dockerfile - tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-discipline:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-discipline:${{ env.IMAGE_VERSION }} + file: ./BMA.EHR.Leave.Service/Dockerfile + tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-leave:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-leave:${{ env.IMAGE_VERSION }} push: true From a892fe9ee304c4c60f31c5c11c84d9a7df322a89 Mon Sep 17 00:00:00 2001 From: warunee Date: Tue, 16 Sep 2025 17:37:26 +0700 Subject: [PATCH 30/48] Update .forgejo/workflows/build.yml --- .forgejo/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/build.yml b/.forgejo/workflows/build.yml index 55f7ffbe..a4f2d2e5 100644 --- a/.forgejo/workflows/build.yml +++ b/.forgejo/workflows/build.yml @@ -44,6 +44,6 @@ jobs: with: platforms: linux/amd64 context: . - file: ./BMA.EHR.Leave.Service/Dockerfile + file: ./BMA.EHR.Leave/Dockerfile tags: ${{ env.CONTAINER_IMAGE_NAME }}/hrms-leave:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-leave:${{ env.IMAGE_VERSION }} push: true From 7254b1ed871fb646928a3164c46ab22303111432 Mon Sep 17 00:00:00 2001 From: warunee Date: Tue, 16 Sep 2025 17:40:51 +0700 Subject: [PATCH 31/48] Update .forgejo/workflows/deploy.yml --- .forgejo/workflows/deploy.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.forgejo/workflows/deploy.yml b/.forgejo/workflows/deploy.yml index b1a3d765..7a18d4cc 100644 --- a/.forgejo/workflows/deploy.yml +++ b/.forgejo/workflows/deploy.yml @@ -25,5 +25,5 @@ jobs: password: ${{ secrets.SSH_DEPLOY_PASSWORD }} script: | cd ~/repo - ./replace-env.sh API_BACKEND "${{ inputs.version }}" - ./deploy.sh hrms-api-backend + ./replace-env.sh API_LEAVE "${{ inputs.version }}" + ./deploy.sh hrms-api-leave From 063e54c4e0330d40ea1e209fcd72ded747bcde37 Mon Sep 17 00:00:00 2001 From: warunee Date: Tue, 16 Sep 2025 17:45:04 +0700 Subject: [PATCH 32/48] Update .forgejo/workflows/build-placement.yml --- .forgejo/workflows/build-placement.yml | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/.forgejo/workflows/build-placement.yml b/.forgejo/workflows/build-placement.yml index 668cab59..0362af17 100644 --- a/.forgejo/workflows/build-placement.yml +++ b/.forgejo/workflows/build-placement.yml @@ -6,6 +6,12 @@ on: - "placement-dev[0-9]+.[0-9]+.[0-9]+" - "placement-dev[0-9]+.[0-9]+.[0-9]+*" workflow_dispatch: + inputs: + version: + description: "Version to deploy" + type: string + required: false + default: "latest" env: REGISTRY: ${{ vars.CONTAINER_REGISTRY }} @@ -30,11 +36,7 @@ jobs: ca=["/etc/ssl/certs/ca-certificates.crt"] - name: Tag Version run: | - if [[ "${{ github.event_name }}" == "push" ]]; then - echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/placement-dev//g' >> $GITHUB_ENV - else - echo "IMAGE_VERSION=${{ env.IMAGE_VERSION }}-${{ github.run_number }}" >> $GITHUB_ENV - fi + echo "IMAGE_VERSION=${{ inputs.version }}" - name: Login in to registry uses: docker/login-action@v2 with: @@ -47,7 +49,7 @@ jobs: 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:${{ env.IMAGE_VERSION }} + tags: ${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-placement:${{ inputs.version }} push: true - name: Remote Deploy uses: appleboy/ssh-action@v1.2.1 @@ -58,7 +60,7 @@ jobs: password: ${{ secrets.SSH_DEPLOY_PASSWORD }} script: | cd ~/repo - ./replace-env.sh API_PLACEMENT "${{ env.IMAGE_VERSION }}" + ./replace-env.sh API_PLACEMENT "${{ inputs.version }}" ./deploy.sh ${{ env.SERVICE_NAME }} - name: Discord Notification @@ -72,7 +74,7 @@ jobs: -d "{ \"embeds\": [{ \"title\": \"$STATUS\", - \"description\": \"**Build & Deploy**\\n- Image: \`${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}\`\\n- Version: \`${{ env.IMAGE_VERSION }}\`\\n- By: \`${{ github.actor }}\`\", + \"description\": \"**Build & Deploy**\\n- Image: \`${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}\`\\n- Version: \`${{ inputs.version }}\`\\n- By: \`${{ github.actor }}\`\", \"color\": $COLOR, \"footer\": { \"text\": \"Release Notification\", From 45f6c5626e8705dc10b62aec4124fbb734a2a4e8 Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Tue, 16 Sep 2025 17:53:11 +0700 Subject: [PATCH 33/48] 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\", From e52d6430b007f63279b7675941ef8f4d527fa086 Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Tue, 16 Sep 2025 17:57:57 +0700 Subject: [PATCH 34/48] fix --- .forgejo/workflows/build-placement.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.forgejo/workflows/build-placement.yml b/.forgejo/workflows/build-placement.yml index 76c10a76..58fea655 100644 --- a/.forgejo/workflows/build-placement.yml +++ b/.forgejo/workflows/build-placement.yml @@ -35,13 +35,13 @@ jobs: # 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 + echo "IMAGE_VERSION=$VERSION" >> $GITHUB_OUTPUT + echo "VERSION=$VERSION" >> $GITHUB_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 + echo "IMAGE_VERSION=$VERSION" >> $GITHUB_OUTPUT + echo "VERSION=$VERSION" >> $GITHUB_OUTPUT fi echo "Using version: $VERSION" From 69af557f95521bc8bac19b5ec0b00117714102d6 Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Tue, 16 Sep 2025 18:15:29 +0700 Subject: [PATCH 35/48] fix --- .forgejo/workflows/build-placement.yml | 29 +++++++++++++------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/.forgejo/workflows/build-placement.yml b/.forgejo/workflows/build-placement.yml index 58fea655..a976f364 100644 --- a/.forgejo/workflows/build-placement.yml +++ b/.forgejo/workflows/build-placement.yml @@ -27,23 +27,22 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v4 - - - name: Extract version from tag - id: version + - 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 run: | - 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" >> $GITHUB_OUTPUT - echo "VERSION=$VERSION" >> $GITHUB_OUTPUT + if [[ "${{ gitea.ref }}" == "refs/tags/"* ]]; then + VERSION=$(echo "${{ gitea.ref }}" | sed 's#refs/tags/placement-dev##') else - # Use workflow dispatch input or default to 'latest' - VERSION="${{ inputs.version || 'latest' }}" - echo "IMAGE_VERSION=$VERSION" >> $GITHUB_OUTPUT - echo "VERSION=$VERSION" >> $GITHUB_OUTPUT + VERSION="${{ inputs.version }}" fi - echo "Using version: $VERSION" + echo "VERSION=${VERSION}" >> $GITHUB_OUTPUT + echo "Using version: ${VERSION}" + shell: bash - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 @@ -65,7 +64,7 @@ jobs: push: true - name: Remote Deploy - uses: appleboy/ssh-action@v1.0.3 + uses: appleboy/ssh-action@v1.2.1 with: host: ${{ vars.SSH_DEPLOY_HOST }} port: ${{ vars.SSH_DEPLOY_PORT }} From 9a4e49eb881337466f35f2d503ed35bc15126446 Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Tue, 16 Sep 2025 18:16:35 +0700 Subject: [PATCH 36/48] Revert "fix" This reverts commit 69af557f95521bc8bac19b5ec0b00117714102d6. --- .forgejo/workflows/build-placement.yml | 29 +++++++++++++------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/.forgejo/workflows/build-placement.yml b/.forgejo/workflows/build-placement.yml index a976f364..58fea655 100644 --- a/.forgejo/workflows/build-placement.yml +++ b/.forgejo/workflows/build-placement.yml @@ -27,22 +27,23 @@ 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: | - if [[ "${{ gitea.ref }}" == "refs/tags/"* ]]; then - VERSION=$(echo "${{ gitea.ref }}" | sed 's#refs/tags/placement-dev##') + 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" >> $GITHUB_OUTPUT + echo "VERSION=$VERSION" >> $GITHUB_OUTPUT else - VERSION="${{ inputs.version }}" + # Use workflow dispatch input or default to 'latest' + VERSION="${{ inputs.version || 'latest' }}" + echo "IMAGE_VERSION=$VERSION" >> $GITHUB_OUTPUT + echo "VERSION=$VERSION" >> $GITHUB_OUTPUT fi - echo "VERSION=${VERSION}" >> $GITHUB_OUTPUT - echo "Using version: ${VERSION}" - shell: bash + echo "Using version: $VERSION" - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 @@ -64,7 +65,7 @@ jobs: 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 }} From f1c31631166ebc3ee2b92ba55e6db43c92c40f7c Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Tue, 16 Sep 2025 18:22:33 +0700 Subject: [PATCH 37/48] fix --- .forgejo/workflows/build-placement.yml | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/.forgejo/workflows/build-placement.yml b/.forgejo/workflows/build-placement.yml index 58fea655..6d501d3e 100644 --- a/.forgejo/workflows/build-placement.yml +++ b/.forgejo/workflows/build-placement.yml @@ -19,6 +19,7 @@ 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: @@ -29,20 +30,20 @@ jobs: uses: actions/checkout@v4 - name: Extract version from tag + - name: Extract version id: version + shell: bash run: | - if [ "${{ gitea.event_name }}" == "push" ] && [ -n "${{ gitea.ref_name }}" ]; then - # Extract version from tag (remove 'placement-dev' prefix) + if [ "${{ gitea.event_name }}" = "push" ] && [ -n "${{ gitea.ref_name }}" ]; then + # Extract version from tag name (remove 'placement-dev' prefix) VERSION="${{ gitea.ref_name }}" VERSION="${VERSION#placement-dev}" - echo "IMAGE_VERSION=$VERSION" >> $GITHUB_OUTPUT - echo "VERSION=$VERSION" >> $GITHUB_OUTPUT else - # Use workflow dispatch input or default to 'latest' - VERSION="${{ inputs.version || 'latest' }}" - echo "IMAGE_VERSION=$VERSION" >> $GITHUB_OUTPUT - echo "VERSION=$VERSION" >> $GITHUB_OUTPUT + # Workflow dispatch: use input or default to 'latest' + VERSION="${{ inputs.version }}" + [ -z "$VERSION" ] && VERSION="latest" fi + echo "VERSION=$VERSION" >> "$GITHUB_OUTPUT" echo "Using version: $VERSION" - name: Set up Docker Buildx From 6d42484297b40bf92537afb1faad6df8f95addd8 Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Tue, 16 Sep 2025 18:26:33 +0700 Subject: [PATCH 38/48] Revert "fix" This reverts commit f1c31631166ebc3ee2b92ba55e6db43c92c40f7c. --- .forgejo/workflows/build-placement.yml | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/.forgejo/workflows/build-placement.yml b/.forgejo/workflows/build-placement.yml index 6d501d3e..58fea655 100644 --- a/.forgejo/workflows/build-placement.yml +++ b/.forgejo/workflows/build-placement.yml @@ -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: @@ -30,20 +29,20 @@ jobs: uses: actions/checkout@v4 - name: Extract version from tag - - name: Extract version id: version - shell: bash run: | - if [ "${{ gitea.event_name }}" = "push" ] && [ -n "${{ gitea.ref_name }}" ]; then - # Extract version from tag name (remove 'placement-dev' prefix) + 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" >> $GITHUB_OUTPUT + echo "VERSION=$VERSION" >> $GITHUB_OUTPUT else - # Workflow dispatch: use input or default to 'latest' - VERSION="${{ inputs.version }}" - [ -z "$VERSION" ] && VERSION="latest" + # Use workflow dispatch input or default to 'latest' + VERSION="${{ inputs.version || 'latest' }}" + echo "IMAGE_VERSION=$VERSION" >> $GITHUB_OUTPUT + echo "VERSION=$VERSION" >> $GITHUB_OUTPUT fi - echo "VERSION=$VERSION" >> "$GITHUB_OUTPUT" echo "Using version: $VERSION" - name: Set up Docker Buildx From 33e8bf5ab7cfec918ca59da724655bd12313459a Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Tue, 16 Sep 2025 18:26:51 +0700 Subject: [PATCH 39/48] Revert "fix" This reverts commit e52d6430b007f63279b7675941ef8f4d527fa086. --- .forgejo/workflows/build-placement.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.forgejo/workflows/build-placement.yml b/.forgejo/workflows/build-placement.yml index 58fea655..76c10a76 100644 --- a/.forgejo/workflows/build-placement.yml +++ b/.forgejo/workflows/build-placement.yml @@ -35,13 +35,13 @@ jobs: # Extract version from tag (remove 'placement-dev' prefix) VERSION="${{ gitea.ref_name }}" VERSION="${VERSION#placement-dev}" - echo "IMAGE_VERSION=$VERSION" >> $GITHUB_OUTPUT - echo "VERSION=$VERSION" >> $GITHUB_OUTPUT + 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" >> $GITHUB_OUTPUT - echo "VERSION=$VERSION" >> $GITHUB_OUTPUT + echo "IMAGE_VERSION=$VERSION" >> $GITEA_OUTPUT + echo "VERSION=$VERSION" >> $GITEA_OUTPUT fi echo "Using version: $VERSION" From 0dcd76c30239f6b22d5e967f4afbe03b5186df11 Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Tue, 16 Sep 2025 18:52:04 +0700 Subject: [PATCH 40/48] fix --- .forgejo/workflows/build-placement.yml | 38 ++++++++------------------ 1 file changed, 11 insertions(+), 27 deletions(-) diff --git a/.forgejo/workflows/build-placement.yml b/.forgejo/workflows/build-placement.yml index 76c10a76..351b1e59 100644 --- a/.forgejo/workflows/build-placement.yml +++ b/.forgejo/workflows/build-placement.yml @@ -6,18 +6,13 @@ on: - "placement-dev[0-9]+.[0-9]+.[0-9]+" - "placement-dev[0-9]+.[0-9]+.[0-9]+*" workflow_dispatch: - inputs: - version: - description: "Version to deploy" - type: string - required: false - default: "latest" env: REGISTRY: ${{ vars.CONTAINER_REGISTRY }} REGISTRY_USERNAME: ${{ vars.CONTAINER_REGISTRY_USERNAME }} REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }} CONTAINER_IMAGE_NAME: ${{ vars.CONTAINER_REGISTRY }}/${{ vars.CONTAINER_IMAGE_OWNER }} + IMAGE_VERSION: latest SERVICE_NAME: hrms-api-placement DISCORD_WEBHOOK: ${{ vars.DISCORD_WEBHOOK }} @@ -28,26 +23,15 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 - - name: Extract version from tag - id: version + - name: Tag Version + shell: bash run: | - 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 + if [[ "${{ github.event_name }}" == "push" ]]; then + VERSION=$(echo "${{ github.ref_name }}" | sed 's/placement-dev//g') + echo "IMAGE_VERSION=${VERSION}" >> $GITHUB_ENV else - # Use workflow dispatch input or default to 'latest' - VERSION="${{ inputs.version || 'latest' }}" - echo "IMAGE_VERSION=$VERSION" >> $GITEA_OUTPUT - echo "VERSION=$VERSION" >> $GITEA_OUTPUT + echo "IMAGE_VERSION=${{ env.IMAGE_VERSION }}-${{ github.run_number }}" >> $GITHUB_ENV 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@v3 with: @@ -61,11 +45,11 @@ jobs: platforms: linux/amd64 context: . file: ./BMA.EHR.Placement.Service/Dockerfile - tags: ${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}:latest,${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}:${{ steps.version.outputs.VERSION }} + tags: ${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}:latest,${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}:${{ env.IMAGE_VERSION }} push: true - name: Remote Deploy - uses: appleboy/ssh-action@v1.0.3 + uses: appleboy/ssh-action@v1.2.1 with: host: ${{ vars.SSH_DEPLOY_HOST }} port: ${{ vars.SSH_DEPLOY_PORT }} @@ -73,7 +57,7 @@ jobs: password: ${{ secrets.SSH_DEPLOY_PASSWORD }} script: | cd ~/repo - ./replace-env.sh API_PLACEMENT "${{ steps.version.outputs.VERSION }}" + ./replace-env.sh API_PLACEMENT "${{ env.IMAGE_VERSION }}" ./deploy.sh ${{ env.SERVICE_NAME }} - name: Discord Notification @@ -87,7 +71,7 @@ jobs: -d "{ \"embeds\": [{ \"title\": \"$STATUS\", - \"description\": \"**Build & Deploy**\\n- Image: \`${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}\`\\n- Version: \`${{ steps.version.outputs.VERSION }}\`\\n- By: \`${{ gitea.actor }}\`\", + \"description\": \"**Build & Deploy**\\n- Image: \`${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}\`\\n- Version: \`${{ env.IMAGE_VERSION }}\`\\n- By: \`${{ gitea.actor }}\`\", \"color\": $COLOR, \"footer\": { \"text\": \"Release Notification\", From 6fb574f9dea5d9c75c2755f3d02d63a17522195c Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Tue, 16 Sep 2025 19:13:14 +0700 Subject: [PATCH 41/48] fix cicd all service --- .forgejo/workflows/build-checkin.yml | 25 ++++++++++++------------- .forgejo/workflows/build-discipline.yml | 25 ++++++++++++------------- .forgejo/workflows/build-insignia.yml | 25 ++++++++++++------------- .forgejo/workflows/build-leave.yml | 25 ++++++++++++------------- .forgejo/workflows/build-retirement.yml | 23 +++++++++++------------ 5 files changed, 59 insertions(+), 64 deletions(-) diff --git a/.forgejo/workflows/build-checkin.yml b/.forgejo/workflows/build-checkin.yml index 249acba3..3971e9df 100644 --- a/.forgejo/workflows/build-checkin.yml +++ b/.forgejo/workflows/build-checkin.yml @@ -1,4 +1,4 @@ -name: Build +name: Build & Deploy Checkin Service on: push: @@ -12,8 +12,8 @@ env: REGISTRY_USERNAME: ${{ vars.CONTAINER_REGISTRY_USERNAME }} REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }} CONTAINER_IMAGE_NAME: ${{ vars.CONTAINER_REGISTRY }}/${{ vars.CONTAINER_IMAGE_OWNER }} + IMAGE_VERSION: latest SERVICE_NAME: hrms-api-checkin - IMAGE_VERSION: build DISCORD_WEBHOOK: ${{ vars.DISCORD_WEBHOOK }} jobs: @@ -22,33 +22,32 @@ 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 + shell: bash run: | if [[ "${{ github.event_name }}" == "push" ]]; then - echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/checkin-dev//g' >> $GITHUB_ENV + VERSION=$(echo "${{ github.ref_name }}" | sed 's/checkin-dev//g') + echo "IMAGE_VERSION=${VERSION}" >> $GITHUB_ENV else echo "IMAGE_VERSION=${{ env.IMAGE_VERSION }}-${{ github.run_number }}" >> $GITHUB_ENV fi - 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.CheckInConsumer/Dockerfile - tags: ${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-checkin:${{ env.IMAGE_VERSION }} + tags: ${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}:latest,${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}:${{ env.IMAGE_VERSION }} push: true + - name: Remote Deploy uses: appleboy/ssh-action@v1.2.1 with: @@ -72,7 +71,7 @@ jobs: -d "{ \"embeds\": [{ \"title\": \"$STATUS\", - \"description\": \"**Build & Deploy**\\n- Image: \`${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}\`\\n- Version: \`${{ env.IMAGE_VERSION }}\`\\n- By: \`${{ github.actor }}\`\", + \"description\": \"**Build & Deploy**\\n- Image: \`${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}\`\\n- Version: \`${{ env.IMAGE_VERSION }}\`\\n- By: \`${{ gitea.actor }}\`\", \"color\": $COLOR, \"footer\": { \"text\": \"Release Notification\", diff --git a/.forgejo/workflows/build-discipline.yml b/.forgejo/workflows/build-discipline.yml index 07e906b1..767d775b 100644 --- a/.forgejo/workflows/build-discipline.yml +++ b/.forgejo/workflows/build-discipline.yml @@ -1,4 +1,4 @@ -name: Build +name: Build & Deploy Discipline Service on: push: @@ -12,8 +12,8 @@ env: REGISTRY_USERNAME: ${{ vars.CONTAINER_REGISTRY_USERNAME }} REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }} CONTAINER_IMAGE_NAME: ${{ vars.CONTAINER_REGISTRY }}/${{ vars.CONTAINER_IMAGE_OWNER }} + IMAGE_VERSION: latest SERVICE_NAME: hrms-api-discipline - IMAGE_VERSION: build DISCORD_WEBHOOK: ${{ vars.DISCORD_WEBHOOK }} jobs: @@ -22,33 +22,32 @@ 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 + shell: bash run: | if [[ "${{ github.event_name }}" == "push" ]]; then - echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/discipline-dev//g' >> $GITHUB_ENV + VERSION=$(echo "${{ github.ref_name }}" | sed 's/discipline-dev//g') + echo "IMAGE_VERSION=${VERSION}" >> $GITHUB_ENV else echo "IMAGE_VERSION=${{ env.IMAGE_VERSION }}-${{ github.run_number }}" >> $GITHUB_ENV fi - 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.Discipline.Service/Dockerfile - tags: ${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-discipline:${{ env.IMAGE_VERSION }} + tags: ${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}:latest,${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}:${{ env.IMAGE_VERSION }} push: true + - name: Remote Deploy uses: appleboy/ssh-action@v1.2.1 with: @@ -72,7 +71,7 @@ jobs: -d "{ \"embeds\": [{ \"title\": \"$STATUS\", - \"description\": \"**Build & Deploy**\\n- Image: \`${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}\`\\n- Version: \`${{ env.IMAGE_VERSION }}\`\\n- By: \`${{ github.actor }}\`\", + \"description\": \"**Build & Deploy**\\n- Image: \`${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}\`\\n- Version: \`${{ env.IMAGE_VERSION }}\`\\n- By: \`${{ gitea.actor }}\`\", \"color\": $COLOR, \"footer\": { \"text\": \"Release Notification\", diff --git a/.forgejo/workflows/build-insignia.yml b/.forgejo/workflows/build-insignia.yml index d73a4346..7ddcbdbd 100644 --- a/.forgejo/workflows/build-insignia.yml +++ b/.forgejo/workflows/build-insignia.yml @@ -1,4 +1,4 @@ -name: Build +name: Build & Deploy Insignia Service on: push: @@ -12,8 +12,8 @@ env: REGISTRY_USERNAME: ${{ vars.CONTAINER_REGISTRY_USERNAME }} REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }} CONTAINER_IMAGE_NAME: ${{ vars.CONTAINER_REGISTRY }}/${{ vars.CONTAINER_IMAGE_OWNER }} + IMAGE_VERSION: latest SERVICE_NAME: hrms-api-insignia - IMAGE_VERSION: build DISCORD_WEBHOOK: ${{ vars.DISCORD_WEBHOOK }} jobs: @@ -22,33 +22,32 @@ 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 + shell: bash run: | if [[ "${{ github.event_name }}" == "push" ]]; then - echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/insignia-dev//g' >> $GITHUB_ENV + VERSION=$(echo "${{ github.ref_name }}" | sed 's/insignia-dev//g') + echo "IMAGE_VERSION=${VERSION}" >> $GITHUB_ENV else echo "IMAGE_VERSION=${{ env.IMAGE_VERSION }}-${{ github.run_number }}" >> $GITHUB_ENV fi - 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.Insignia/Dockerfile - tags: ${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-insignia:${{ env.IMAGE_VERSION }} + tags: ${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}:latest,${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}:${{ env.IMAGE_VERSION }} push: true + - name: Remote Deploy uses: appleboy/ssh-action@v1.2.1 with: @@ -72,7 +71,7 @@ jobs: -d "{ \"embeds\": [{ \"title\": \"$STATUS\", - \"description\": \"**Build & Deploy**\\n- Image: \`${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}\`\\n- Version: \`${{ env.IMAGE_VERSION }}\`\\n- By: \`${{ github.actor }}\`\", + \"description\": \"**Build & Deploy**\\n- Image: \`${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}\`\\n- Version: \`${{ env.IMAGE_VERSION }}\`\\n- By: \`${{ gitea.actor }}\`\", \"color\": $COLOR, \"footer\": { \"text\": \"Release Notification\", diff --git a/.forgejo/workflows/build-leave.yml b/.forgejo/workflows/build-leave.yml index de8ccb16..b1c9c168 100644 --- a/.forgejo/workflows/build-leave.yml +++ b/.forgejo/workflows/build-leave.yml @@ -1,4 +1,4 @@ -name: Build +name: Build & Deploy Leave Service on: push: @@ -12,8 +12,8 @@ env: REGISTRY_USERNAME: ${{ vars.CONTAINER_REGISTRY_USERNAME }} REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }} CONTAINER_IMAGE_NAME: ${{ vars.CONTAINER_REGISTRY }}/${{ vars.CONTAINER_IMAGE_OWNER }} + IMAGE_VERSION: latest SERVICE_NAME: hrms-api-leave - IMAGE_VERSION: build DISCORD_WEBHOOK: ${{ vars.DISCORD_WEBHOOK }} jobs: @@ -22,33 +22,32 @@ 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 + shell: bash run: | if [[ "${{ github.event_name }}" == "push" ]]; then - echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/leave-dev//g' >> $GITHUB_ENV + VERSION=$(echo "${{ github.ref_name }}" | sed 's/leave-dev//g') + echo "IMAGE_VERSION=${VERSION}" >> $GITHUB_ENV else echo "IMAGE_VERSION=${{ env.IMAGE_VERSION }}-${{ github.run_number }}" >> $GITHUB_ENV fi - 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.Leave/Dockerfile - tags: ${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}:latest,${{ env.CONTAINER_IMAGE_NAME }}/hrms-api-leave:${{ env.IMAGE_VERSION }} + tags: ${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}:latest,${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}:${{ env.IMAGE_VERSION }} push: true + - name: Remote Deploy uses: appleboy/ssh-action@v1.2.1 with: @@ -72,7 +71,7 @@ jobs: -d "{ \"embeds\": [{ \"title\": \"$STATUS\", - \"description\": \"**Build & Deploy**\\n- Image: \`${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}\`\\n- Version: \`${{ env.IMAGE_VERSION }}\`\\n- By: \`${{ github.actor }}\`\", + \"description\": \"**Build & Deploy**\\n- Image: \`${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}\`\\n- Version: \`${{ env.IMAGE_VERSION }}\`\\n- By: \`${{ gitea.actor }}\`\", \"color\": $COLOR, \"footer\": { \"text\": \"Release Notification\", diff --git a/.forgejo/workflows/build-retirement.yml b/.forgejo/workflows/build-retirement.yml index 0b3e0022..257f68f2 100644 --- a/.forgejo/workflows/build-retirement.yml +++ b/.forgejo/workflows/build-retirement.yml @@ -1,4 +1,4 @@ -name: Build +name: Build & Deploy Retirement Service on: push: @@ -12,8 +12,8 @@ env: REGISTRY_USERNAME: ${{ vars.CONTAINER_REGISTRY_USERNAME }} REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }} CONTAINER_IMAGE_NAME: ${{ vars.CONTAINER_REGISTRY }}/${{ vars.CONTAINER_IMAGE_OWNER }} + IMAGE_VERSION: latest SERVICE_NAME: hrms-api-retirement - IMAGE_VERSION: build DISCORD_WEBHOOK: ${{ vars.DISCORD_WEBHOOK }} jobs: @@ -22,33 +22,32 @@ 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 + shell: bash run: | if [[ "${{ github.event_name }}" == "push" ]]; then - echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/retirement-dev//g' >> $GITHUB_ENV + VERSION=$(echo "${{ github.ref_name }}" | sed 's/retirement-dev//g') + echo "IMAGE_VERSION=${VERSION}" >> $GITHUB_ENV else echo "IMAGE_VERSION=${{ env.IMAGE_VERSION }}-${{ github.run_number }}" >> $GITHUB_ENV fi - 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.Retirement.Service/Dockerfile tags: ${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}:latest,${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}:${{ env.IMAGE_VERSION }} push: true + - name: Remote Deploy uses: appleboy/ssh-action@v1.2.1 with: @@ -72,7 +71,7 @@ jobs: -d "{ \"embeds\": [{ \"title\": \"$STATUS\", - \"description\": \"**Build & Deploy**\\n- Image: \`${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}\`\\n- Version: \`${{ env.IMAGE_VERSION }}\`\\n- By: \`${{ github.actor }}\`\", + \"description\": \"**Build & Deploy**\\n- Image: \`${{ env.CONTAINER_IMAGE_NAME }}/${{ env.SERVICE_NAME }}\`\\n- Version: \`${{ env.IMAGE_VERSION }}\`\\n- By: \`${{ gitea.actor }}\`\", \"color\": $COLOR, \"footer\": { \"text\": \"Release Notification\", From 804a4cf85fb9c6b32ee0e436fc9db71dd92ae0fe Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Tue, 23 Dec 2025 20:21:25 +0700 Subject: [PATCH 42/48] add: build leave --- .onedev/build-leave.yml | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 .onedev/build-leave.yml diff --git a/.onedev/build-leave.yml b/.onedev/build-leave.yml new file mode 100644 index 00000000..c89f0c51 --- /dev/null +++ b/.onedev/build-leave.yml @@ -0,0 +1,31 @@ +version: 37 +jobs: + - name: CI for Leave PROD + steps: + - !CheckoutStep + name: checkout code + cloneCredential: !DefaultCredential {} + withLfs: false + withSubmodules: false + condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL + + - !SetBuildVersionStep + name: set build version + buildVersion: "@tag@" + condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL + + - !BuildImageStep + name: build docker image + dockerfile: ./BMA.EHR.Leave/Dockerfile + output: !RegistryOutput + tags: "hrms-git.bangkok.go.th/bma-hrms/hrms-api-leave:@build_version@ hrms-git.bangkok.go.th/bma-hrms/hrms-api-leave:latest" + condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL + + triggers: + - !TagCreateTrigger + tags: leave-prod-* + branches: main + retryCondition: never + maxRetries: 3 + retryDelay: 30 + timeout: 14400 From 8bb31b4e73708195a5d40602502d336ccf7481d7 Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Tue, 23 Dec 2025 20:30:37 +0700 Subject: [PATCH 43/48] updated deploy --- .onedev/build-leave.yml | 117 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 112 insertions(+), 5 deletions(-) diff --git a/.onedev/build-leave.yml b/.onedev/build-leave.yml index c89f0c51..21b0b4a6 100644 --- a/.onedev/build-leave.yml +++ b/.onedev/build-leave.yml @@ -1,5 +1,73 @@ -version: 37 +version: 38 jobs: + - name: CI for Leave UAT + steps: + - !CheckoutStep + name: checkout code + cloneCredential: !DefaultCredential {} + withLfs: false + withSubmodules: false + condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL + - !GenerateChecksumStep + name: generate project checksum + files: "**/*.csproj" + targetFile: checksum + condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL + - !SetupCacheStep + name: set up nuget cache + key: nuget_packages_@file:checksum@ + loadKeys: + - nuget_packages + paths: + - /root/.nuget/packages + uploadStrategy: UPLOAD_IF_NOT_HIT + condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL + - !CommandStep + name: test and analyze + runInContainer: true + image: mcr.microsoft.com/dotnet/sdk + interpreter: !DefaultInterpreter + commands: | + set -e + dotnet tool install -g roslynator.dotnet.cli + dotnet test -l trx --collect:"XPlat Code Coverage" + #/root/.dotnet/tools/roslynator analyze -o roslynator-analysis.xml + useTTY: true + condition: NEVER + - !PublishTRXReportStep + name: publish unit test report + reportName: Unit Test + filePatterns: "**/*.trx" + condition: NEVER + - !PublishCoberturaReportStep + name: publish code coverage report + reportName: Code Coverage + filePatterns: "**/coverage.cobertura.xml" + condition: NEVER + - !PublishRoslynatorReportStep + name: publish code problem report + reportName: Code Problems + filePatterns: roslynator-analysis.xml + failThreshold: HIGH + condition: NEVER + - !SetBuildVersionStep + name: set build version + buildVersion: "@tag@" + condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL + - !BuildImageStep + name: build docker image + dockerfile: ./BMA.EHR.Leave/Dockerfile + output: !RegistryOutput + tags: "@server@/bma-hrms/hrms-api-leave:@build_version@ @server@/bma-hrms/hrms-api-leave:latest" + condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL + triggers: + - !TagCreateTrigger + tags: leave-uat-* + branches: main + retryCondition: never + maxRetries: 3 + retryDelay: 30 + timeout: 14400 - name: CI for Leave PROD steps: - !CheckoutStep @@ -8,19 +76,58 @@ jobs: withLfs: false withSubmodules: false condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL - + - !GenerateChecksumStep + name: generate project checksum + files: "**/*.csproj" + targetFile: checksum + condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL + - !SetupCacheStep + name: set up nuget cache + key: nuget_packages_@file:checksum@ + loadKeys: + - nuget_packages + paths: + - /root/.nuget/packages + uploadStrategy: UPLOAD_IF_NOT_HIT + condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL + - !CommandStep + name: test and analyze + runInContainer: true + image: mcr.microsoft.com/dotnet/sdk + interpreter: !DefaultInterpreter + commands: | + set -e + dotnet tool install -g roslynator.dotnet.cli + dotnet test -l trx --collect:"XPlat Code Coverage" + #/root/.dotnet/tools/roslynator analyze -o roslynator-analysis.xml + useTTY: true + condition: NEVER + - !PublishTRXReportStep + name: publish unit test report + reportName: Unit Test + filePatterns: "**/*.trx" + condition: NEVER + - !PublishCoberturaReportStep + name: publish code coverage report + reportName: Code Coverage + filePatterns: "**/coverage.cobertura.xml" + condition: NEVER + - !PublishRoslynatorReportStep + name: publish code problem report + reportName: Code Problems + filePatterns: roslynator-analysis.xml + failThreshold: HIGH + condition: NEVER - !SetBuildVersionStep name: set build version buildVersion: "@tag@" condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL - - !BuildImageStep name: build docker image dockerfile: ./BMA.EHR.Leave/Dockerfile output: !RegistryOutput - tags: "hrms-git.bangkok.go.th/bma-hrms/hrms-api-leave:@build_version@ hrms-git.bangkok.go.th/bma-hrms/hrms-api-leave:latest" + tags: "@server@/bma-hrms/hrms-api-leave:@build_version@ @server@/bma-hrms/hrms-api-leave:latest" condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL - triggers: - !TagCreateTrigger tags: leave-prod-* From bde1aa21c94ff9d3901fc204242e05922bae88b5 Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Tue, 23 Dec 2025 21:09:15 +0700 Subject: [PATCH 44/48] test build leave --- .onedev/build-leave.yml => .onedev-build-leave.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename .onedev/build-leave.yml => .onedev-build-leave.yml (98%) diff --git a/.onedev/build-leave.yml b/.onedev-build-leave.yml similarity index 98% rename from .onedev/build-leave.yml rename to .onedev-build-leave.yml index 21b0b4a6..6b94263e 100644 --- a/.onedev/build-leave.yml +++ b/.onedev-build-leave.yml @@ -1,6 +1,6 @@ version: 38 jobs: - - name: CI for Leave UAT + - name: CI for UAT steps: - !CheckoutStep name: checkout code @@ -68,7 +68,7 @@ jobs: maxRetries: 3 retryDelay: 30 timeout: 14400 - - name: CI for Leave PROD + - name: CI for PROD steps: - !CheckoutStep name: checkout code From 2b1d6852c9a6ffbec4cf9fdfa2dcb2bfe613f323 Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Tue, 23 Dec 2025 21:18:04 +0700 Subject: [PATCH 45/48] add build placement --- .onedev-build-placement.yml | 138 ++++++++++++++++++++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 .onedev-build-placement.yml diff --git a/.onedev-build-placement.yml b/.onedev-build-placement.yml new file mode 100644 index 00000000..dbadf72a --- /dev/null +++ b/.onedev-build-placement.yml @@ -0,0 +1,138 @@ +version: 38 +jobs: + - name: CI for UAT Placement + steps: + - !CheckoutStep + name: checkout code + cloneCredential: !DefaultCredential {} + withLfs: false + withSubmodules: false + condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL + - !GenerateChecksumStep + name: generate project checksum + files: "**/*.csproj" + targetFile: checksum + condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL + - !SetupCacheStep + name: set up nuget cache + key: nuget_packages_@file:checksum@ + loadKeys: + - nuget_packages + paths: + - /root/.nuget/packages + uploadStrategy: UPLOAD_IF_NOT_HIT + condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL + - !CommandStep + name: test and analyze + runInContainer: true + image: mcr.microsoft.com/dotnet/sdk + interpreter: !DefaultInterpreter + commands: | + set -e + dotnet tool install -g roslynator.dotnet.cli + dotnet test -l trx --collect:"XPlat Code Coverage" + #/root/.dotnet/tools/roslynator analyze -o roslynator-analysis.xml + useTTY: true + condition: NEVER + - !PublishTRXReportStep + name: publish unit test report + reportName: Unit Test + filePatterns: "**/*.trx" + condition: NEVER + - !PublishCoberturaReportStep + name: publish code coverage report + reportName: Code Coverage + filePatterns: "**/coverage.cobertura.xml" + condition: NEVER + - !PublishRoslynatorReportStep + name: publish code problem report + reportName: Code Problems + filePatterns: roslynator-analysis.xml + failThreshold: HIGH + condition: NEVER + - !SetBuildVersionStep + name: set build version + buildVersion: "@tag@" + condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL + - !BuildImageStep + name: build docker image + dockerfile: ./BMA.EHR.Placement.Service/Dockerfile + output: !RegistryOutput + tags: "@server@/bma-hrms/hrms-api-placement:@build_version@ @server@/bma-hrms/hrms-api-placement:latest" + condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL + triggers: + - !TagCreateTrigger + tags: placement-uat-* + branches: main + retryCondition: never + maxRetries: 3 + retryDelay: 30 + timeout: 14400 + - name: CI for PROD Placement + steps: + - !CheckoutStep + name: checkout code + cloneCredential: !DefaultCredential {} + withLfs: false + withSubmodules: false + condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL + - !GenerateChecksumStep + name: generate project checksum + files: "**/*.csproj" + targetFile: checksum + condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL + - !SetupCacheStep + name: set up nuget cache + key: nuget_packages_@file:checksum@ + loadKeys: + - nuget_packages + paths: + - /root/.nuget/packages + uploadStrategy: UPLOAD_IF_NOT_HIT + condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL + - !CommandStep + name: test and analyze + runInContainer: true + image: mcr.microsoft.com/dotnet/sdk + interpreter: !DefaultInterpreter + commands: | + set -e + dotnet tool install -g roslynator.dotnet.cli + dotnet test -l trx --collect:"XPlat Code Coverage" + #/root/.dotnet/tools/roslynator analyze -o roslynator-analysis.xml + useTTY: true + condition: NEVER + - !PublishTRXReportStep + name: publish unit test report + reportName: Unit Test + filePatterns: "**/*.trx" + condition: NEVER + - !PublishCoberturaReportStep + name: publish code coverage report + reportName: Code Coverage + filePatterns: "**/coverage.cobertura.xml" + condition: NEVER + - !PublishRoslynatorReportStep + name: publish code problem report + reportName: Code Problems + filePatterns: roslynator-analysis.xml + failThreshold: HIGH + condition: NEVER + - !SetBuildVersionStep + name: set build version + buildVersion: "@tag@" + condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL + - !BuildImageStep + name: build docker image + dockerfile: ./BMA.EHR.Placement.Service/Dockerfile + output: !RegistryOutput + tags: "@server@/bma-hrms/hrms-api-placement:@build_version@ @server@/bma-hrms/hrms-api-placement:latest" + condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL + triggers: + - !TagCreateTrigger + tags: placement-prod-* + branches: main + retryCondition: never + maxRetries: 3 + retryDelay: 30 + timeout: 14400 From d10c86e0cbe2e0d9949d52b64d7d06aae79fbedd Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Tue, 23 Dec 2025 21:50:04 +0700 Subject: [PATCH 46/48] add: build docker hub --- .../workflows/dockerhub-release-leave.yaml | 90 ++++++++++++ .onedev-build-leave.yml | 138 ------------------ .onedev-build-placement.yml | 138 ------------------ 3 files changed, 90 insertions(+), 276 deletions(-) create mode 100644 .github/workflows/dockerhub-release-leave.yaml delete mode 100644 .onedev-build-leave.yml delete mode 100644 .onedev-build-placement.yml diff --git a/.github/workflows/dockerhub-release-leave.yaml b/.github/workflows/dockerhub-release-leave.yaml new file mode 100644 index 00000000..e78ce73d --- /dev/null +++ b/.github/workflows/dockerhub-release-leave.yaml @@ -0,0 +1,90 @@ +name: DockerHub Release - Leave Service +run-name: DockerHub Release - Leave Service by ${{ github.actor }} +on: + push: + tags: + - "leave-[0-9]+.[0-9]+.[0-9]+" + branches: + - main + - develop + workflow_dispatch: + inputs: + IMAGE_VER: + description: 'Image version (e.g., latest, v1.0.0)' + required: false + default: 'latest' + +env: + DOCKERHUB_REGISTRY: docker.io + IMAGE_NAME: hrms-api-leave + +jobs: + release-to-dockerhub: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set output tags + id: vars + run: echo "tag=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT + + - name: Generate version + id: gen_ver + run: | + if [[ $GITHUB_REF == 'refs/tags/'* ]]; then + IMAGE_VER=${{ steps.vars.outputs.tag }} + elif [[ $GITHUB_REF == 'refs/heads/'* ]]; then + BRANCH_NAME=${GITHUB_REF#refs/heads/} + IMAGE_VER="${BRANCH_NAME}-latest" + else + IMAGE_VER=${{ github.event.inputs.IMAGE_VER }} + fi + if [[ $IMAGE_VER == '' ]]; then + IMAGE_VER='test-vBeta' + fi + echo "image_ver=${IMAGE_VER}" >> $GITHUB_OUTPUT + echo "Generated version: ${IMAGE_VER}" + + - name: Display version + run: | + echo "Git Ref: $GITHUB_REF" + echo "Image Version: ${{ steps.gen_ver.outputs.image_ver }}" + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + registry: ${{env.DOCKERHUB_REGISTRY}} + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Extract metadata for Docker + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }} + tags: | + type=ref,event=tag + type=ref,event=branch + type=raw,value=${{ steps.gen_ver.outputs.image_ver }} + type=raw,value=latest,enable={{is_default_branch}} + + - name: Build and push Docker image + uses: docker/build-push-action@v5 + with: + context: . + file: BMA.EHR.Leave/Dockerfile + platforms: linux/amd64 + push: true + tags: | + ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:${{ steps.gen_ver.outputs.image_ver }} + ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:latest + labels: ${{ steps.meta.outputs.labels }} + cache-from: type=gha + cache-to: type=gha,mode=max + + - name: Image digest + run: echo "Image pushed with digest ${{ steps.build.outputs.digest }}" diff --git a/.onedev-build-leave.yml b/.onedev-build-leave.yml deleted file mode 100644 index 6b94263e..00000000 --- a/.onedev-build-leave.yml +++ /dev/null @@ -1,138 +0,0 @@ -version: 38 -jobs: - - name: CI for UAT - steps: - - !CheckoutStep - name: checkout code - cloneCredential: !DefaultCredential {} - withLfs: false - withSubmodules: false - condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL - - !GenerateChecksumStep - name: generate project checksum - files: "**/*.csproj" - targetFile: checksum - condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL - - !SetupCacheStep - name: set up nuget cache - key: nuget_packages_@file:checksum@ - loadKeys: - - nuget_packages - paths: - - /root/.nuget/packages - uploadStrategy: UPLOAD_IF_NOT_HIT - condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL - - !CommandStep - name: test and analyze - runInContainer: true - image: mcr.microsoft.com/dotnet/sdk - interpreter: !DefaultInterpreter - commands: | - set -e - dotnet tool install -g roslynator.dotnet.cli - dotnet test -l trx --collect:"XPlat Code Coverage" - #/root/.dotnet/tools/roslynator analyze -o roslynator-analysis.xml - useTTY: true - condition: NEVER - - !PublishTRXReportStep - name: publish unit test report - reportName: Unit Test - filePatterns: "**/*.trx" - condition: NEVER - - !PublishCoberturaReportStep - name: publish code coverage report - reportName: Code Coverage - filePatterns: "**/coverage.cobertura.xml" - condition: NEVER - - !PublishRoslynatorReportStep - name: publish code problem report - reportName: Code Problems - filePatterns: roslynator-analysis.xml - failThreshold: HIGH - condition: NEVER - - !SetBuildVersionStep - name: set build version - buildVersion: "@tag@" - condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL - - !BuildImageStep - name: build docker image - dockerfile: ./BMA.EHR.Leave/Dockerfile - output: !RegistryOutput - tags: "@server@/bma-hrms/hrms-api-leave:@build_version@ @server@/bma-hrms/hrms-api-leave:latest" - condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL - triggers: - - !TagCreateTrigger - tags: leave-uat-* - branches: main - retryCondition: never - maxRetries: 3 - retryDelay: 30 - timeout: 14400 - - name: CI for PROD - steps: - - !CheckoutStep - name: checkout code - cloneCredential: !DefaultCredential {} - withLfs: false - withSubmodules: false - condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL - - !GenerateChecksumStep - name: generate project checksum - files: "**/*.csproj" - targetFile: checksum - condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL - - !SetupCacheStep - name: set up nuget cache - key: nuget_packages_@file:checksum@ - loadKeys: - - nuget_packages - paths: - - /root/.nuget/packages - uploadStrategy: UPLOAD_IF_NOT_HIT - condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL - - !CommandStep - name: test and analyze - runInContainer: true - image: mcr.microsoft.com/dotnet/sdk - interpreter: !DefaultInterpreter - commands: | - set -e - dotnet tool install -g roslynator.dotnet.cli - dotnet test -l trx --collect:"XPlat Code Coverage" - #/root/.dotnet/tools/roslynator analyze -o roslynator-analysis.xml - useTTY: true - condition: NEVER - - !PublishTRXReportStep - name: publish unit test report - reportName: Unit Test - filePatterns: "**/*.trx" - condition: NEVER - - !PublishCoberturaReportStep - name: publish code coverage report - reportName: Code Coverage - filePatterns: "**/coverage.cobertura.xml" - condition: NEVER - - !PublishRoslynatorReportStep - name: publish code problem report - reportName: Code Problems - filePatterns: roslynator-analysis.xml - failThreshold: HIGH - condition: NEVER - - !SetBuildVersionStep - name: set build version - buildVersion: "@tag@" - condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL - - !BuildImageStep - name: build docker image - dockerfile: ./BMA.EHR.Leave/Dockerfile - output: !RegistryOutput - tags: "@server@/bma-hrms/hrms-api-leave:@build_version@ @server@/bma-hrms/hrms-api-leave:latest" - condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL - triggers: - - !TagCreateTrigger - tags: leave-prod-* - branches: main - retryCondition: never - maxRetries: 3 - retryDelay: 30 - timeout: 14400 diff --git a/.onedev-build-placement.yml b/.onedev-build-placement.yml deleted file mode 100644 index dbadf72a..00000000 --- a/.onedev-build-placement.yml +++ /dev/null @@ -1,138 +0,0 @@ -version: 38 -jobs: - - name: CI for UAT Placement - steps: - - !CheckoutStep - name: checkout code - cloneCredential: !DefaultCredential {} - withLfs: false - withSubmodules: false - condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL - - !GenerateChecksumStep - name: generate project checksum - files: "**/*.csproj" - targetFile: checksum - condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL - - !SetupCacheStep - name: set up nuget cache - key: nuget_packages_@file:checksum@ - loadKeys: - - nuget_packages - paths: - - /root/.nuget/packages - uploadStrategy: UPLOAD_IF_NOT_HIT - condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL - - !CommandStep - name: test and analyze - runInContainer: true - image: mcr.microsoft.com/dotnet/sdk - interpreter: !DefaultInterpreter - commands: | - set -e - dotnet tool install -g roslynator.dotnet.cli - dotnet test -l trx --collect:"XPlat Code Coverage" - #/root/.dotnet/tools/roslynator analyze -o roslynator-analysis.xml - useTTY: true - condition: NEVER - - !PublishTRXReportStep - name: publish unit test report - reportName: Unit Test - filePatterns: "**/*.trx" - condition: NEVER - - !PublishCoberturaReportStep - name: publish code coverage report - reportName: Code Coverage - filePatterns: "**/coverage.cobertura.xml" - condition: NEVER - - !PublishRoslynatorReportStep - name: publish code problem report - reportName: Code Problems - filePatterns: roslynator-analysis.xml - failThreshold: HIGH - condition: NEVER - - !SetBuildVersionStep - name: set build version - buildVersion: "@tag@" - condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL - - !BuildImageStep - name: build docker image - dockerfile: ./BMA.EHR.Placement.Service/Dockerfile - output: !RegistryOutput - tags: "@server@/bma-hrms/hrms-api-placement:@build_version@ @server@/bma-hrms/hrms-api-placement:latest" - condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL - triggers: - - !TagCreateTrigger - tags: placement-uat-* - branches: main - retryCondition: never - maxRetries: 3 - retryDelay: 30 - timeout: 14400 - - name: CI for PROD Placement - steps: - - !CheckoutStep - name: checkout code - cloneCredential: !DefaultCredential {} - withLfs: false - withSubmodules: false - condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL - - !GenerateChecksumStep - name: generate project checksum - files: "**/*.csproj" - targetFile: checksum - condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL - - !SetupCacheStep - name: set up nuget cache - key: nuget_packages_@file:checksum@ - loadKeys: - - nuget_packages - paths: - - /root/.nuget/packages - uploadStrategy: UPLOAD_IF_NOT_HIT - condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL - - !CommandStep - name: test and analyze - runInContainer: true - image: mcr.microsoft.com/dotnet/sdk - interpreter: !DefaultInterpreter - commands: | - set -e - dotnet tool install -g roslynator.dotnet.cli - dotnet test -l trx --collect:"XPlat Code Coverage" - #/root/.dotnet/tools/roslynator analyze -o roslynator-analysis.xml - useTTY: true - condition: NEVER - - !PublishTRXReportStep - name: publish unit test report - reportName: Unit Test - filePatterns: "**/*.trx" - condition: NEVER - - !PublishCoberturaReportStep - name: publish code coverage report - reportName: Code Coverage - filePatterns: "**/coverage.cobertura.xml" - condition: NEVER - - !PublishRoslynatorReportStep - name: publish code problem report - reportName: Code Problems - filePatterns: roslynator-analysis.xml - failThreshold: HIGH - condition: NEVER - - !SetBuildVersionStep - name: set build version - buildVersion: "@tag@" - condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL - - !BuildImageStep - name: build docker image - dockerfile: ./BMA.EHR.Placement.Service/Dockerfile - output: !RegistryOutput - tags: "@server@/bma-hrms/hrms-api-placement:@build_version@ @server@/bma-hrms/hrms-api-placement:latest" - condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL - triggers: - - !TagCreateTrigger - tags: placement-prod-* - branches: main - retryCondition: never - maxRetries: 3 - retryDelay: 30 - timeout: 14400 From c87e467a6ef3bc24e1f5efd3662d9e1ad17dcab1 Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Tue, 23 Dec 2025 23:32:02 +0700 Subject: [PATCH 47/48] change build to docker hub --- .../workflows/dockerhub-release-checkin.yaml | 72 +++++++ .../workflows/dockerhub-release-command.yaml | 72 +++++++ .../dockerhub-release-discipline.yaml | 72 +++++++ .../workflows/dockerhub-release-insignia.yaml | 72 +++++++ .../workflows/dockerhub-release-leave.yaml | 10 +- .../dockerhub-release-placement.yaml | 72 +++++++ .../workflows/dockerhub-release-report.yaml | 72 +++++++ .../dockerhub-release-retirement.yaml | 72 +++++++ .github/workflows/release_Retirement.yaml | 6 +- .../workflows/release_checkin_consumer.yaml | 6 +- .github/workflows/release_command.yaml | 6 +- .github/workflows/release_discipline.yaml | 6 +- .github/workflows/release_insignia.yaml | 6 +- .github/workflows/release_leave.yaml | 6 +- .github/workflows/release_placement.yaml | 6 +- .github/workflows/release_report.yaml | 196 +++++++++--------- 16 files changed, 628 insertions(+), 124 deletions(-) create mode 100644 .github/workflows/dockerhub-release-checkin.yaml create mode 100644 .github/workflows/dockerhub-release-command.yaml create mode 100644 .github/workflows/dockerhub-release-discipline.yaml create mode 100644 .github/workflows/dockerhub-release-insignia.yaml create mode 100644 .github/workflows/dockerhub-release-placement.yaml create mode 100644 .github/workflows/dockerhub-release-report.yaml create mode 100644 .github/workflows/dockerhub-release-retirement.yaml diff --git a/.github/workflows/dockerhub-release-checkin.yaml b/.github/workflows/dockerhub-release-checkin.yaml new file mode 100644 index 00000000..9e7c4e23 --- /dev/null +++ b/.github/workflows/dockerhub-release-checkin.yaml @@ -0,0 +1,72 @@ +name: DockerHub Release - CheckIn Consumer +run-name: DockerHub Release - CheckIn Consumer by ${{ github.actor }} +on: + push: + tags: + - "checkin-[0-9]+.[0-9]+.[0-9]+" + workflow_dispatch: + inputs: + IMAGE_VER: + description: "Image version (e.g., latest, v1.0.0)" + required: false + default: "latest" + +env: + DOCKERHUB_REGISTRY: docker.io + IMAGE_NAME: hrms-api-checkin + +jobs: + release-to-dockerhub: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set output tags + id: vars + run: echo "tag=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT + + - name: Generate version + id: gen_ver + run: | + if [[ $GITHUB_REF == 'refs/tags/'* ]]; then + IMAGE_VER=${{ steps.vars.outputs.tag }} + else + IMAGE_VER=${{ github.event.inputs.IMAGE_VER }} + fi + if [[ $IMAGE_VER == '' ]]; then + IMAGE_VER='test-vBeta' + fi + echo "image_ver=${IMAGE_VER}" >> $GITHUB_OUTPUT + echo "Generated version: ${IMAGE_VER}" + + - name: Display version + run: | + echo "Git Ref: $GITHUB_REF" + echo "Image Version: ${{ steps.gen_ver.outputs.image_ver }}" + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + registry: ${{env.DOCKERHUB_REGISTRY}} + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build and push Docker image + uses: docker/build-push-action@v5 + with: + context: . + file: BMA.EHR.CheckInConsumer/Dockerfile + platforms: linux/amd64 + push: true + tags: | + ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:${{ steps.gen_ver.outputs.image_ver }} + ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:latest + labels: | + org.opencontainers.image.title=BMA EHR CheckIn Consumer + org.opencontainers.image.description=HRMS CheckIn Consumer Service + cache-from: type=gha + cache-to: type=gha,mode=max diff --git a/.github/workflows/dockerhub-release-command.yaml b/.github/workflows/dockerhub-release-command.yaml new file mode 100644 index 00000000..33d6b330 --- /dev/null +++ b/.github/workflows/dockerhub-release-command.yaml @@ -0,0 +1,72 @@ +name: DockerHub Release - Command Service +run-name: DockerHub Release - Command Service by ${{ github.actor }} +on: + push: + tags: + - "command-[0-9]+.[0-9]+.[0-9]+" + workflow_dispatch: + inputs: + IMAGE_VER: + description: "Image version (e.g., latest, v1.0.0)" + required: false + default: "latest" + +env: + DOCKERHUB_REGISTRY: docker.io + IMAGE_NAME: hrms-api-command + +jobs: + release-to-dockerhub: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set output tags + id: vars + run: echo "tag=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT + + - name: Generate version + id: gen_ver + run: | + if [[ $GITHUB_REF == 'refs/tags/'* ]]; then + IMAGE_VER=${{ steps.vars.outputs.tag }} + else + IMAGE_VER=${{ github.event.inputs.IMAGE_VER }} + fi + if [[ $IMAGE_VER == '' ]]; then + IMAGE_VER='test-vBeta' + fi + echo "image_ver=${IMAGE_VER}" >> $GITHUB_OUTPUT + echo "Generated version: ${IMAGE_VER}" + + - name: Display version + run: | + echo "Git Ref: $GITHUB_REF" + echo "Image Version: ${{ steps.gen_ver.outputs.image_ver }}" + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + registry: ${{env.DOCKERHUB_REGISTRY}} + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build and push Docker image + uses: docker/build-push-action@v5 + with: + context: . + file: BMA.EHR.Command.Service/Dockerfile + platforms: linux/amd64 + push: true + tags: | + ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:${{ steps.gen_ver.outputs.image_ver }} + ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:latest + labels: | + org.opencontainers.image.title=BMA EHR Command Service + org.opencontainers.image.description=HRMS Command API Service + cache-from: type=gha + cache-to: type=gha,mode=max diff --git a/.github/workflows/dockerhub-release-discipline.yaml b/.github/workflows/dockerhub-release-discipline.yaml new file mode 100644 index 00000000..96096a54 --- /dev/null +++ b/.github/workflows/dockerhub-release-discipline.yaml @@ -0,0 +1,72 @@ +name: DockerHub Release - Discipline Service +run-name: DockerHub Release - Discipline Service by ${{ github.actor }} +on: + push: + tags: + - "discipline-[0-9]+.[0-9]+.[0-9]+" + workflow_dispatch: + inputs: + IMAGE_VER: + description: "Image version (e.g., latest, v1.0.0)" + required: false + default: "latest" + +env: + DOCKERHUB_REGISTRY: docker.io + IMAGE_NAME: hrms-api-discipline + +jobs: + release-to-dockerhub: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set output tags + id: vars + run: echo "tag=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT + + - name: Generate version + id: gen_ver + run: | + if [[ $GITHUB_REF == 'refs/tags/'* ]]; then + IMAGE_VER=${{ steps.vars.outputs.tag }} + else + IMAGE_VER=${{ github.event.inputs.IMAGE_VER }} + fi + if [[ $IMAGE_VER == '' ]]; then + IMAGE_VER='test-vBeta' + fi + echo "image_ver=${IMAGE_VER}" >> $GITHUB_OUTPUT + echo "Generated version: ${IMAGE_VER}" + + - name: Display version + run: | + echo "Git Ref: $GITHUB_REF" + echo "Image Version: ${{ steps.gen_ver.outputs.image_ver }}" + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + registry: ${{env.DOCKERHUB_REGISTRY}} + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build and push Docker image + uses: docker/build-push-action@v5 + with: + context: . + file: BMA.EHR.Discipline.Service/Dockerfile + platforms: linux/amd64 + push: true + tags: | + ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:${{ steps.gen_ver.outputs.image_ver }} + ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:latest + labels: | + org.opencontainers.image.title=BMA EHR Discipline Service + org.opencontainers.image.description=HRMS Discipline API Service + cache-from: type=gha + cache-to: type=gha,mode=max diff --git a/.github/workflows/dockerhub-release-insignia.yaml b/.github/workflows/dockerhub-release-insignia.yaml new file mode 100644 index 00000000..81dae954 --- /dev/null +++ b/.github/workflows/dockerhub-release-insignia.yaml @@ -0,0 +1,72 @@ +name: DockerHub Release - Insignia Service +run-name: DockerHub Release - Insignia Service by ${{ github.actor }} +on: + push: + tags: + - "insignia-[0-9]+.[0-9]+.[0-9]+" + workflow_dispatch: + inputs: + IMAGE_VER: + description: "Image version (e.g., latest, v1.0.0)" + required: false + default: "latest" + +env: + DOCKERHUB_REGISTRY: docker.io + IMAGE_NAME: hrms-api-insignia + +jobs: + release-to-dockerhub: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set output tags + id: vars + run: echo "tag=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT + + - name: Generate version + id: gen_ver + run: | + if [[ $GITHUB_REF == 'refs/tags/'* ]]; then + IMAGE_VER=${{ steps.vars.outputs.tag }} + else + IMAGE_VER=${{ github.event.inputs.IMAGE_VER }} + fi + if [[ $IMAGE_VER == '' ]]; then + IMAGE_VER='test-vBeta' + fi + echo "image_ver=${IMAGE_VER}" >> $GITHUB_OUTPUT + echo "Generated version: ${IMAGE_VER}" + + - name: Display version + run: | + echo "Git Ref: $GITHUB_REF" + echo "Image Version: ${{ steps.gen_ver.outputs.image_ver }}" + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + registry: ${{env.DOCKERHUB_REGISTRY}} + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build and push Docker image + uses: docker/build-push-action@v5 + with: + context: . + file: BMA.EHR.Insignia/Dockerfile + platforms: linux/amd64 + push: true + tags: | + ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:${{ steps.gen_ver.outputs.image_ver }} + ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:latest + labels: | + org.opencontainers.image.title=BMA EHR Insignia Service + org.opencontainers.image.description=HRMS Insignia API Service + cache-from: type=gha + cache-to: type=gha,mode=max diff --git a/.github/workflows/dockerhub-release-leave.yaml b/.github/workflows/dockerhub-release-leave.yaml index e78ce73d..b5a3afe2 100644 --- a/.github/workflows/dockerhub-release-leave.yaml +++ b/.github/workflows/dockerhub-release-leave.yaml @@ -4,15 +4,15 @@ on: push: tags: - "leave-[0-9]+.[0-9]+.[0-9]+" - branches: - - main - - develop + # branches: + # - main + # - develop workflow_dispatch: inputs: IMAGE_VER: - description: 'Image version (e.g., latest, v1.0.0)' + description: "Image version (e.g., latest, v1.0.0)" required: false - default: 'latest' + default: "latest" env: DOCKERHUB_REGISTRY: docker.io diff --git a/.github/workflows/dockerhub-release-placement.yaml b/.github/workflows/dockerhub-release-placement.yaml new file mode 100644 index 00000000..74fa4471 --- /dev/null +++ b/.github/workflows/dockerhub-release-placement.yaml @@ -0,0 +1,72 @@ +name: DockerHub Release - Placement Service +run-name: DockerHub Release - Placement Service by ${{ github.actor }} +on: + push: + tags: + - "placement-[0-9]+.[0-9]+.[0-9]+" + workflow_dispatch: + inputs: + IMAGE_VER: + description: "Image version (e.g., latest, v1.0.0)" + required: false + default: "latest" + +env: + DOCKERHUB_REGISTRY: docker.io + IMAGE_NAME: hrms-api-placement + +jobs: + release-to-dockerhub: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set output tags + id: vars + run: echo "tag=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT + + - name: Generate version + id: gen_ver + run: | + if [[ $GITHUB_REF == 'refs/tags/'* ]]; then + IMAGE_VER=${{ steps.vars.outputs.tag }} + else + IMAGE_VER=${{ github.event.inputs.IMAGE_VER }} + fi + if [[ $IMAGE_VER == '' ]]; then + IMAGE_VER='test-vBeta' + fi + echo "image_ver=${IMAGE_VER}" >> $GITHUB_OUTPUT + echo "Generated version: ${IMAGE_VER}" + + - name: Display version + run: | + echo "Git Ref: $GITHUB_REF" + echo "Image Version: ${{ steps.gen_ver.outputs.image_ver }}" + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + registry: ${{env.DOCKERHUB_REGISTRY}} + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build and push Docker image + uses: docker/build-push-action@v5 + with: + context: . + file: BMA.EHR.Placement.Service/Dockerfile + platforms: linux/amd64 + push: true + tags: | + ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:${{ steps.gen_ver.outputs.image_ver }} + ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:latest + labels: | + org.opencontainers.image.title=BMA EHR Placement Service + org.opencontainers.image.description=HRMS Placement API Service + cache-from: type=gha + cache-to: type=gha,mode=max diff --git a/.github/workflows/dockerhub-release-report.yaml b/.github/workflows/dockerhub-release-report.yaml new file mode 100644 index 00000000..132b218b --- /dev/null +++ b/.github/workflows/dockerhub-release-report.yaml @@ -0,0 +1,72 @@ +name: DockerHub Release - Report Service +run-name: DockerHub Release - Report Service by ${{ github.actor }} +on: + push: + tags: + - "report-[0-9]+.[0-9]+.[0-9]+" + workflow_dispatch: + inputs: + IMAGE_VER: + description: "Image version (e.g., latest, v1.0.0)" + required: false + default: "latest" + +env: + DOCKERHUB_REGISTRY: docker.io + IMAGE_NAME: hrms-api-report + +jobs: + release-to-dockerhub: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set output tags + id: vars + run: echo "tag=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT + + - name: Generate version + id: gen_ver + run: | + if [[ $GITHUB_REF == 'refs/tags/'* ]]; then + IMAGE_VER=${{ steps.vars.outputs.tag }} + else + IMAGE_VER=${{ github.event.inputs.IMAGE_VER }} + fi + if [[ $IMAGE_VER == '' ]]; then + IMAGE_VER='test-vBeta' + fi + echo "image_ver=${IMAGE_VER}" >> $GITHUB_OUTPUT + echo "Generated version: ${IMAGE_VER}" + + - name: Display version + run: | + echo "Git Ref: $GITHUB_REF" + echo "Image Version: ${{ steps.gen_ver.outputs.image_ver }}" + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + registry: ${{env.DOCKERHUB_REGISTRY}} + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build and push Docker image + uses: docker/build-push-action@v5 + with: + context: . + file: BMA.EHR.Report.Service/Dockerfile + platforms: linux/amd64 + push: true + tags: | + ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:${{ steps.gen_ver.outputs.image_ver }} + ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:latest + labels: | + org.opencontainers.image.title=BMA EHR Report Service + org.opencontainers.image.description=HRMS Report API Service + cache-from: type=gha + cache-to: type=gha,mode=max diff --git a/.github/workflows/dockerhub-release-retirement.yaml b/.github/workflows/dockerhub-release-retirement.yaml new file mode 100644 index 00000000..38e107e6 --- /dev/null +++ b/.github/workflows/dockerhub-release-retirement.yaml @@ -0,0 +1,72 @@ +name: DockerHub Release - Retirement Service +run-name: DockerHub Release - Retirement Service by ${{ github.actor }} +on: + push: + tags: + - "retirement-[0-9]+.[0-9]+.[0-9]+" + workflow_dispatch: + inputs: + IMAGE_VER: + description: "Image version (e.g., latest, v1.0.0)" + required: false + default: "latest" + +env: + DOCKERHUB_REGISTRY: docker.io + IMAGE_NAME: hrms-api-retirement + +jobs: + release-to-dockerhub: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set output tags + id: vars + run: echo "tag=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT + + - name: Generate version + id: gen_ver + run: | + if [[ $GITHUB_REF == 'refs/tags/'* ]]; then + IMAGE_VER=${{ steps.vars.outputs.tag }} + else + IMAGE_VER=${{ github.event.inputs.IMAGE_VER }} + fi + if [[ $IMAGE_VER == '' ]]; then + IMAGE_VER='test-vBeta' + fi + echo "image_ver=${IMAGE_VER}" >> $GITHUB_OUTPUT + echo "Generated version: ${IMAGE_VER}" + + - name: Display version + run: | + echo "Git Ref: $GITHUB_REF" + echo "Image Version: ${{ steps.gen_ver.outputs.image_ver }}" + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + registry: ${{env.DOCKERHUB_REGISTRY}} + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build and push Docker image + uses: docker/build-push-action@v5 + with: + context: . + file: BMA.EHR.Retirement.Service/Dockerfile + platforms: linux/amd64 + push: true + tags: | + ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:${{ steps.gen_ver.outputs.image_ver }} + ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:latest + labels: | + org.opencontainers.image.title=BMA EHR Retirement Service + org.opencontainers.image.description=HRMS Retirement API Service + cache-from: type=gha + cache-to: type=gha,mode=max diff --git a/.github/workflows/release_Retirement.yaml b/.github/workflows/release_Retirement.yaml index 6cdceae0..3fd5bedf 100644 --- a/.github/workflows/release_Retirement.yaml +++ b/.github/workflows/release_Retirement.yaml @@ -1,9 +1,9 @@ name: release-dev run-name: release-dev ${{ github.actor }} on: - push: - tags: - - "retirement-[0-9]+.[0-9]+.[0-9]+" + # push: + # tags: + # - "retirement-[0-9]+.[0-9]+.[0-9]+" workflow_dispatch: env: REGISTRY: docker.frappet.com diff --git a/.github/workflows/release_checkin_consumer.yaml b/.github/workflows/release_checkin_consumer.yaml index 31b015e6..f9081264 100644 --- a/.github/workflows/release_checkin_consumer.yaml +++ b/.github/workflows/release_checkin_consumer.yaml @@ -1,9 +1,9 @@ name: release-dev run-name: release-dev ${{ github.actor }} on: - push: - tags: - - "consumer-[0-9]+.[0-9]+.[0-9]+" + # push: + # tags: + # - "consumer-[0-9]+.[0-9]+.[0-9]+" workflow_dispatch: env: REGISTRY: docker.frappet.com diff --git a/.github/workflows/release_command.yaml b/.github/workflows/release_command.yaml index 462ed688..dba3012e 100644 --- a/.github/workflows/release_command.yaml +++ b/.github/workflows/release_command.yaml @@ -1,9 +1,9 @@ name: release-dev run-name: release-dev ${{ github.actor }} on: - push: - tags: - - "command-[0-9]+.[0-9]+.[0-9]+" + # push: + # tags: + # - "command-[0-9]+.[0-9]+.[0-9]+" workflow_dispatch: env: REGISTRY: docker.frappet.com diff --git a/.github/workflows/release_discipline.yaml b/.github/workflows/release_discipline.yaml index 0e8737f4..f4cb42da 100644 --- a/.github/workflows/release_discipline.yaml +++ b/.github/workflows/release_discipline.yaml @@ -1,9 +1,9 @@ name: release-dev run-name: release-dev ${{ github.actor }} on: - push: - tags: - - "discipline-[0-9]+.[0-9]+.[0-9]+" + # push: + # tags: + # - "discipline-[0-9]+.[0-9]+.[0-9]+" workflow_dispatch: env: REGISTRY: docker.frappet.com diff --git a/.github/workflows/release_insignia.yaml b/.github/workflows/release_insignia.yaml index 124d1e9c..af497b37 100644 --- a/.github/workflows/release_insignia.yaml +++ b/.github/workflows/release_insignia.yaml @@ -1,9 +1,9 @@ name: release-dev run-name: release-dev ${{ github.actor }} on: - push: - tags: - - "insignia-[0-9]+.[0-9]+.[0-9]+" + # push: + # tags: + # - "insignia-[0-9]+.[0-9]+.[0-9]+" workflow_dispatch: env: REGISTRY: docker.frappet.com diff --git a/.github/workflows/release_leave.yaml b/.github/workflows/release_leave.yaml index 4b361f5f..9b5e0014 100644 --- a/.github/workflows/release_leave.yaml +++ b/.github/workflows/release_leave.yaml @@ -1,9 +1,9 @@ name: release-dev run-name: release-dev ${{ github.actor }} on: - push: - tags: - - "leave-[0-9]+.[0-9]+.[0-9]+" + # push: + # tags: + # - "leave-[0-9]+.[0-9]+.[0-9]+" workflow_dispatch: env: REGISTRY: docker.frappet.com diff --git a/.github/workflows/release_placement.yaml b/.github/workflows/release_placement.yaml index d9c2f266..377cbaf4 100644 --- a/.github/workflows/release_placement.yaml +++ b/.github/workflows/release_placement.yaml @@ -1,9 +1,9 @@ name: release-dev run-name: release-dev ${{ github.actor }} on: - push: - tags: - - "placement-[0-9]+.[0-9]+.[0-9]+" + # push: + # tags: + # - "placement-[0-9]+.[0-9]+.[0-9]+" workflow_dispatch: env: REGISTRY: docker.frappet.com diff --git a/.github/workflows/release_report.yaml b/.github/workflows/release_report.yaml index 9ba5a7c4..e529729b 100644 --- a/.github/workflows/release_report.yaml +++ b/.github/workflows/release_report.yaml @@ -1,107 +1,107 @@ name: release-dev run-name: release-dev ${{ github.actor }} on: - push: - tags: - - "reportv2-[0-9]+.[0-9]+.[0-9]+" + # push: + # tags: + # - "reportv2-[0-9]+.[0-9]+.[0-9]+" workflow_dispatch: env: - REGISTRY: docker.frappet.com - IMAGE_NAME: ehr/bma-ehr-report-v2-service - DEPLOY_HOST: frappet.com - DEPLOY_PORT: 10102 - # COMPOSE_PATH: /home/frappet/docker/bma-ehr - COMPOSE_PATH: /home/frappet/docker/bma/bma-ehr-report-v2 - TOKEN_LINE: uxuK5hDzS2DsoC5piJBrWRLiz8GgY7iMZZldOWsDDF0 + REGISTRY: docker.frappet.com + IMAGE_NAME: ehr/bma-ehr-report-v2-service + DEPLOY_HOST: frappet.com + DEPLOY_PORT: 10102 + # COMPOSE_PATH: /home/frappet/docker/bma-ehr + COMPOSE_PATH: /home/frappet/docker/bma/bma-ehr-report-v2 + TOKEN_LINE: uxuK5hDzS2DsoC5piJBrWRLiz8GgY7iMZZldOWsDDF0 jobs: - # act workflow_dispatch -W .github/workflows/release_report.yaml --input IMAGE_VER=latest -s DOCKER_USER=admin -s DOCKER_PASS=FPTadmin2357 -s SSH_PASSWORD=FPTadmin2357 - release-dev: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - name: Set output tags - id: vars - run: echo "tag=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT - - name: Gen Version - id: gen_ver - run: | - if [[ $GITHUB_REF == 'refs/tags/'* ]]; then - IMAGE_VER=${{ steps.vars.outputs.tag }} - else - IMAGE_VER=${{ github.event.inputs.IMAGE_VER }} - fi - if [[ $IMAGE_VER == '' ]]; then - IMAGE_VER='test-vBeta' - fi - echo '::set-output name=image_ver::'$IMAGE_VER - - name: Check Version - run: | - echo $GITHUB_REF - echo ${{ steps.gen_ver.outputs.image_ver }} - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 - - name: Login in to registry - uses: docker/login-action@v2 - with: - registry: ${{env.REGISTRY}} - username: ${{secrets.DOCKER_USER}} - password: ${{secrets.DOCKER_PASS}} - - name: Build and load local docker image - uses: docker/build-push-action@v3 - with: - context: . - platforms: linux/amd64 - file: BMA.EHR.Report.Service/Dockerfile - push: true - tags: ${{env.REGISTRY}}/${{env.IMAGE_NAME}}:${{ steps.gen_ver.outputs.image_ver }},${{env.REGISTRY}}/${{env.IMAGE_NAME}}:latest + # act workflow_dispatch -W .github/workflows/release_report.yaml --input IMAGE_VER=latest -s DOCKER_USER=admin -s DOCKER_PASS=FPTadmin2357 -s SSH_PASSWORD=FPTadmin2357 + release-dev: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set output tags + id: vars + run: echo "tag=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT + - name: Gen Version + id: gen_ver + run: | + if [[ $GITHUB_REF == 'refs/tags/'* ]]; then + IMAGE_VER=${{ steps.vars.outputs.tag }} + else + IMAGE_VER=${{ github.event.inputs.IMAGE_VER }} + fi + if [[ $IMAGE_VER == '' ]]; then + IMAGE_VER='test-vBeta' + fi + echo '::set-output name=image_ver::'$IMAGE_VER + - name: Check Version + run: | + echo $GITHUB_REF + echo ${{ steps.gen_ver.outputs.image_ver }} + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + - name: Login in to registry + uses: docker/login-action@v2 + with: + registry: ${{env.REGISTRY}} + username: ${{secrets.DOCKER_USER}} + password: ${{secrets.DOCKER_PASS}} + - name: Build and load local docker image + uses: docker/build-push-action@v3 + with: + context: . + platforms: linux/amd64 + file: BMA.EHR.Report.Service/Dockerfile + push: true + tags: ${{env.REGISTRY}}/${{env.IMAGE_NAME}}:${{ steps.gen_ver.outputs.image_ver }},${{env.REGISTRY}}/${{env.IMAGE_NAME}}:latest - - name: Reload docker compose - uses: appleboy/ssh-action@v0.1.8 - with: - host: ${{env.DEPLOY_HOST}} - username: frappet - password: ${{ secrets.SSH_PASSWORD }} - port: ${{env.DEPLOY_PORT}} - script: | - cd "${{env.COMPOSE_PATH}}" - docker compose pull - docker compose up -d - echo "${{ steps.gen_ver.outputs.image_ver }}"> success - - name: Notify Discord Success - if: success() - run: | - curl -H "Content-Type: application/json" \ - -X POST \ - -d '{ - "embeds": [{ - "title": "✅ Deployment Success!", - "description": "**Details:**\n- Image: `${{env.IMAGE_NAME}}`\n- Version: `${{ steps.gen_ver.outputs.image_ver }}`\n- Deployed by: `${{github.actor}}`", - "color": 3066993, - "footer": { - "text": "Release Notification", - "icon_url": "https://example.com/success-icon.png" - }, - "timestamp": "'$(date -u +%Y-%m-%dT%H:%M:%SZ)'" - }] - }' \ - ${{ secrets.DISCORD_WEBHOOK }} + - name: Reload docker compose + uses: appleboy/ssh-action@v0.1.8 + with: + host: ${{env.DEPLOY_HOST}} + username: frappet + password: ${{ secrets.SSH_PASSWORD }} + port: ${{env.DEPLOY_PORT}} + script: | + cd "${{env.COMPOSE_PATH}}" + docker compose pull + docker compose up -d + echo "${{ steps.gen_ver.outputs.image_ver }}"> success + - name: Notify Discord Success + if: success() + run: | + curl -H "Content-Type: application/json" \ + -X POST \ + -d '{ + "embeds": [{ + "title": "✅ Deployment Success!", + "description": "**Details:**\n- Image: `${{env.IMAGE_NAME}}`\n- Version: `${{ steps.gen_ver.outputs.image_ver }}`\n- Deployed by: `${{github.actor}}`", + "color": 3066993, + "footer": { + "text": "Release Notification", + "icon_url": "https://example.com/success-icon.png" + }, + "timestamp": "'$(date -u +%Y-%m-%dT%H:%M:%SZ)'" + }] + }' \ + ${{ secrets.DISCORD_WEBHOOK }} - - name: Notify Discord Failure - if: failure() - run: | - curl -H "Content-Type: application/json" \ - -X POST \ - -d '{ - "embeds": [{ - "title": "❌ Deployment Failed!", - "description": "**Details:**\n- Image: `${{env.IMAGE_NAME}}`\n- Version: `${{ steps.gen_ver.outputs.image_ver }}`\n- Attempted by: `${{github.actor}}`", - "color": 15158332, - "footer": { - "text": "Release Notification", - "icon_url": "https://example.com/failure-icon.png" - }, - "timestamp": "'$(date -u +%Y-%m-%dT%H:%M:%SZ)'" - }] - }' \ - ${{ secrets.DISCORD_WEBHOOK }} + - name: Notify Discord Failure + if: failure() + run: | + curl -H "Content-Type: application/json" \ + -X POST \ + -d '{ + "embeds": [{ + "title": "❌ Deployment Failed!", + "description": "**Details:**\n- Image: `${{env.IMAGE_NAME}}`\n- Version: `${{ steps.gen_ver.outputs.image_ver }}`\n- Attempted by: `${{github.actor}}`", + "color": 15158332, + "footer": { + "text": "Release Notification", + "icon_url": "https://example.com/failure-icon.png" + }, + "timestamp": "'$(date -u +%Y-%m-%dT%H:%M:%SZ)'" + }] + }' \ + ${{ secrets.DISCORD_WEBHOOK }} From cb074e3e25b7e706caed45b1d8fbe1621bf78c08 Mon Sep 17 00:00:00 2001 From: kittapath <> Date: Fri, 2 Jan 2026 21:46:39 +0700 Subject: [PATCH 48/48] find org v2 --- BMA.EHR.Application/Repositories/UserProfileRepository.cs | 5 +++-- BMA.EHR.Leave/Controllers/LeaveReportController.cs | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/BMA.EHR.Application/Repositories/UserProfileRepository.cs b/BMA.EHR.Application/Repositories/UserProfileRepository.cs index 150aeded..7ffdc024 100644 --- a/BMA.EHR.Application/Repositories/UserProfileRepository.cs +++ b/BMA.EHR.Application/Repositories/UserProfileRepository.cs @@ -574,6 +574,7 @@ namespace BMA.EHR.Application.Repositories // endDate = endDate date = endDate }; + Console.WriteLine(body); var profiles = new List(); @@ -585,7 +586,7 @@ namespace BMA.EHR.Application.Repositories return raw.Result; } - return null; + return new List(); } catch { @@ -983,7 +984,7 @@ namespace BMA.EHR.Application.Repositories { try { - var apiPath = $"{_configuration["API"]}/org/find/all"; + var apiPath = $"{_configuration["API"]}/org/find/allv2"; var apiKey = _configuration["API_KEY"]; var body = new { diff --git a/BMA.EHR.Leave/Controllers/LeaveReportController.cs b/BMA.EHR.Leave/Controllers/LeaveReportController.cs index 3f9b9cf1..b5f620c0 100644 --- a/BMA.EHR.Leave/Controllers/LeaveReportController.cs +++ b/BMA.EHR.Leave/Controllers/LeaveReportController.cs @@ -2241,7 +2241,7 @@ namespace BMA.EHR.Leave.Service.Controllers var enddate = req.EndDate.Date == req.StartDate.Date ? "" : $" - {req.EndDate.Date.ToThaiShortDate()}"; var org = _userProfileRepository.GetOc(Guid.Parse(req.nodeId), req.node, AccessToken); - var organizationName = $"{(!string.IsNullOrEmpty(org.Child4) ? org.Child4 + "/" : "")}{(!string.IsNullOrEmpty(org.Child3) ? org.Child3 + "/" : "")}{(!string.IsNullOrEmpty(org.Child2) ? org.Child2 + "/" : "")}{(!string.IsNullOrEmpty(org.Child1) ? org.Child1 + "/" : "")}{org.Root ?? ""}"; + var organizationName = org == null ? "" : $"{(!string.IsNullOrEmpty(org.Child4) ? org.Child4 + "/" : "")}{(!string.IsNullOrEmpty(org.Child3) ? org.Child3 + "/" : "")}{(!string.IsNullOrEmpty(org.Child2) ? org.Child2 + "/" : "")}{(!string.IsNullOrEmpty(org.Child1) ? org.Child1 + "/" : "")}{org.Root ?? ""}"; var dateTimeStamp = $"ประจำ ณ วัน{req.StartDate.Date.GetThaiDayOfWeek()} ที่ {req.StartDate.Date.ToThaiShortDate()}{enddate}"; var templatePath = Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", "TimeStampRecords.xlsx");