From 3ab864127c2eae953338457ef91c9446b738568a Mon Sep 17 00:00:00 2001 From: kittapath Date: Sat, 7 Dec 2024 09:34:14 +0700 Subject: [PATCH] test build discord --- .github/workflows/build-local.yaml | 46 --------------------- .github/workflows/release.yaml | 64 ++++++++++++++++++++++++------ 2 files changed, 51 insertions(+), 59 deletions(-) delete mode 100644 .github/workflows/build-local.yaml diff --git a/.github/workflows/build-local.yaml b/.github/workflows/build-local.yaml deleted file mode 100644 index 3a06de7..0000000 --- a/.github/workflows/build-local.yaml +++ /dev/null @@ -1,46 +0,0 @@ -# use for local build with act -name: build-local -run-name: build-local ${{ github.actor }} -on: - workflow_dispatch: -env: - REGISTRY: docker.frappet.com - IMAGE_NAME: demo/bma-ehr-metadata-service -jobs: - # act workflow_dispatch -W .github/workflows/build-local.yaml --input IMAGE_VER=test-v6.1 - build-local: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - # skip Set up QEMU because it fail on act and container - - name: Gen Version - id: gen_ver - run: | - if [[ $GITHUB_REF == 'refs/tags/'* ]]; then - IMAGE_VER='${GITHUB_REF/refs\/tags\//}' - 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: Test 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 - load: true - tags: ${{env.REGISTRY}}/${{env.IMAGE_NAME}}:${{ steps.gen_ver.outputs.image_ver }},${{env.REGISTRY}}/${{env.IMAGE_NAME}}:latest diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 688baac..f1669a5 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -1,27 +1,27 @@ -name: release-dev -run-name: release-dev ${{ github.actor }} +name: release +run-name: release ${{ github.actor }} on: - # push: - # tags: - # - 'v[0-9]+.[0-9]+.[0-9]+' - # tags-ignore: - # - '2.*' - # Allow run workflow manually from Action tab + push: + tags: + - "version-[0-9]+.[0-9]+.[0-9]+" workflow_dispatch: env: REGISTRY: docker.frappet.com IMAGE_NAME: ehr/bma-ehr-recruit-service DEPLOY_HOST: frappet.com - DEPLOY_PORT: 10102 COMPOSE_PATH: /home/frappet/docker/bma/bma-ehr-recruit jobs: # act workflow_dispatch -W .github/workflows/release.yaml --input IMAGE_VER=latest -s DOCKER_USER=admin -s DOCKER_PASS=FPTadmin2357 -s SSH_PASSWORD=FPTadmin2357 - release-dev: + release: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 # skip Set up QEMU because it fail on act and container + # Gen Version try to get version from tag or inut + - name: Set output tags + id: vars + run: echo "tag=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT - name: Gen Version id: gen_ver run: | @@ -34,10 +34,11 @@ jobs: IMAGE_VER='test-vBeta' fi echo '::set-output name=image_ver::'$IMAGE_VER - - name: Test Version + - 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 @@ -46,7 +47,7 @@ jobs: registry: ${{env.REGISTRY}} username: ${{secrets.DOCKER_USER}} password: ${{secrets.DOCKER_PASS}} - - name: Build and load local docker image + - name: Build and push docker image uses: docker/build-push-action@v3 with: context: . @@ -60,9 +61,46 @@ jobs: host: ${{env.DEPLOY_HOST}} username: frappet password: ${{ secrets.SSH_PASSWORD }} - port: ${{env.DEPLOY_PORT}} + port: 10102 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 }}