From ae0603f88bf8bc3c6f84e06e607bdf46414924d8 Mon Sep 17 00:00:00 2001 From: arisnguyenit97 Date: Sun, 21 Jan 2024 12:33:17 +0700 Subject: [PATCH] :recycle: refactor: updated CI notify #4 --- .github/workflows/ci_notify.yml | 111 ++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 .github/workflows/ci_notify.yml diff --git a/.github/workflows/ci_notify.yml b/.github/workflows/ci_notify.yml new file mode 100644 index 0000000..bba77fc --- /dev/null +++ b/.github/workflows/ci_notify.yml @@ -0,0 +1,111 @@ +name: Notify + +on: + push: + branches: ["master"] + tags: + - "v*" + pull_request: + branches: ["master"] + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout Repository + uses: actions/checkout@v3 + + notify: + runs-on: ubuntu-latest + needs: build + steps: + - name: Check Secrets + id: check + run: | + if [[ -z "${{ secrets.TELEGRAM_CHAT_ID }}" || -z "${{ secrets.TELEGRAM_BOT_TOKEN }}" ]]; then + echo "::set-output name=skip::true" + else + echo "::set-output name=skip::false" + fi + - name: Send Telegram Notification + if: steps.check.outputs.skip == 'false' + uses: appleboy/telegram-action@master + with: + to: ${{ secrets.TELEGRAM_CHAT_ID }} + token: ${{ secrets.TELEGRAM_BOT_TOKEN }} + format: markdown + message: | + 🚀 CI Commit + 🔯 `${{ github.actor }}` created commit: + - message: `${{ github.event.commits[0].message }}` + - hash: `${{ github.sha }}` + - repository: `${{ github.repository }}` + - head: `${{ github.event.head_commit.message }}` + 🍀 See changes: `https://github.com/${{ github.repository }}/commit/${{github.sha}}` + + deploy: + runs-on: ubuntu-latest + if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') + needs: build + steps: + - name: Checkout repository + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Check if tag exists + id: check_tag + run: | + if [ -n "$GITHUB_REF" ]; then + TAG=${GITHUB_REF#refs/tags/} + # echo "::set-output name=tag::$TAG" + echo "TAG=${TAG}" >> $GITHUB_ENV + else + # echo "::set-output name=tag::" + echo "TAG=" >> $GITHUB_ENV + fi + shell: bash + + - name: Check Secrets + id: check + run: | + if [[ -z "${{ secrets.TELEGRAM_CHAT_ID }}" || -z "${{ secrets.TELEGRAM_BOT_TOKEN }}" ]]; then + echo "::set-output name=skip::true" + else + echo "::set-output name=skip::false" + fi + + - name: Generate Changelog + id: changelog + run: | + # Generate your changelog here and set it as an output variable + CHANGELOG=$(git log --pretty=format:"%h - %s" -n 10) + echo "::set-output name=changelog::$CHANGELOG" + + - name: Create GitHub Release + id: create_release + uses: softprops/action-gh-release@v1 + with: + tag_name: ${{ env.TAG }} + body: | + :gem: released new version ${{ env.TAG }} + draft: false + prerelease: false + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Send Telegram Notification + if: steps.check.outputs.skip == 'false' + uses: appleboy/telegram-action@master + with: + to: ${{ secrets.TELEGRAM_CHAT_ID }} + token: ${{ secrets.TELEGRAM_BOT_TOKEN }} + format: markdown + message: | + 🚀 New tag created: **${{ env.TAG }}** + 🔯 `${{ github.actor }}` created tag: + - repository: `${{ github.repository }}` + - head: `${{ github.event.head_commit.message }}` + 🍀 See changes: `https://github.com/${{ github.repository }}/releases/tag/${{ env.TAG }}` + 📜 Changelog: + `${{ steps.changelog.outputs.changelog }}`