Skip to content

Commit

Permalink
Added: monitor service with event bus for notifications
Browse files Browse the repository at this point in the history
  • Loading branch information
capcom6 committed Dec 26, 2023
1 parent 9841d29 commit 26ccc5f
Show file tree
Hide file tree
Showing 35 changed files with 441 additions and 223 deletions.
85 changes: 85 additions & 0 deletions .github/workflows/docker-publish-bot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
name: Build Telegram Bot

on:
push:
pull_request:

jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read

steps:
- name: Checkout repository
uses: actions/checkout@v3

- name: Docker meta
id: meta
uses: docker/metadata-action@v3
with:
images: capcom6/service-monitor-bot
tags: |
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
- name: Log into Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}

- name: Build and push Docker image
uses: docker/build-push-action@v3
with:
file: build/package/Dockerfile
build-args: APP=bot
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
# cache-from: type=gha
# cache-to: type=gha,mode=max

# deploy:
# runs-on: ubuntu-latest
# # run only in v* tags
# if: startsWith(github.ref, 'refs/tags/v')
# needs:
# - build

# env:
# AWS_ACCESS_KEY_ID: ${{secrets.AWS_ACCESS_KEY_ID}}
# AWS_SECRET_ACCESS_KEY: ${{secrets.AWS_SECRET_ACCESS_KEY}}

# steps:
# - name: Checkout code
# uses: actions/checkout@v3

# - name: Install Terraform
# uses: hashicorp/setup-terraform@v2
# with:
# terraform_version: 1.4.6

# - name: Initialize Terraform
# working-directory: deployments/docker-swarm-terraform
# run: terraform init

# - name: Deploy Docker service to Swarm
# working-directory: deployments/docker-swarm-terraform
# env:
# CPU_LIMIT: ${{ vars.CPU_LIMIT }}
# MEMORY_LIMIT: ${{ vars.MEMORY_LIMIT }}
# run: |
# eval "$(ssh-agent -s)"
# ssh-add <(echo "${{ secrets.SSH_PRIVATE_KEY }}")
# terraform apply -auto-approve -input=false \
# -var 'swarm-manager-host=${{ secrets.SWARM_MANAGER_HOST }}' \
# -var 'app-name=${{ vars.APP_NAME }}' \
# -var "app-version=${GITHUB_REF#refs/tags/v}" \
# -var 'app-config-b64=${{ secrets.APP_CONFIG_B64 }}' \
# -var 'app-env-json-b64=${{ secrets.APP_ENV_JSON_B64 }}' \
# -var "cpu-limit=${CPU_LIMIT:-1000000000}" \
# -var "memory-limit=${MEMORY_LIMIT:-128000000}"
85 changes: 85 additions & 0 deletions .github/workflows/docker-publish-monitor.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
name: Build Monitor Core

on:
push:
pull_request:

jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read

steps:
- name: Checkout repository
uses: actions/checkout@v3

- name: Docker meta
id: meta
uses: docker/metadata-action@v3
with:
images: capcom6/service-monitor-core
tags: |
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
- name: Log into Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}

- name: Build and push Docker image
uses: docker/build-push-action@v3
with:
file: build/package/Dockerfile
build-args: APP=monitor
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
# cache-from: type=gha
# cache-to: type=gha,mode=max

# deploy:
# runs-on: ubuntu-latest
# # run only in v* tags
# if: startsWith(github.ref, 'refs/tags/v')
# needs:
# - build

# env:
# AWS_ACCESS_KEY_ID: ${{secrets.AWS_ACCESS_KEY_ID}}
# AWS_SECRET_ACCESS_KEY: ${{secrets.AWS_SECRET_ACCESS_KEY}}

# steps:
# - name: Checkout code
# uses: actions/checkout@v3

# - name: Install Terraform
# uses: hashicorp/setup-terraform@v2
# with:
# terraform_version: 1.4.6

# - name: Initialize Terraform
# working-directory: deployments/docker-swarm-terraform
# run: terraform init

# - name: Deploy Docker service to Swarm
# working-directory: deployments/docker-swarm-terraform
# env:
# CPU_LIMIT: ${{ vars.CPU_LIMIT }}
# MEMORY_LIMIT: ${{ vars.MEMORY_LIMIT }}
# run: |
# eval "$(ssh-agent -s)"
# ssh-add <(echo "${{ secrets.SSH_PRIVATE_KEY }}")
# terraform apply -auto-approve -input=false \
# -var 'swarm-manager-host=${{ secrets.SWARM_MANAGER_HOST }}' \
# -var 'app-name=${{ vars.APP_NAME }}' \
# -var "app-version=${GITHUB_REF#refs/tags/v}" \
# -var 'app-config-b64=${{ secrets.APP_CONFIG_B64 }}' \
# -var 'app-env-json-b64=${{ secrets.APP_ENV_JSON_B64 }}' \
# -var "cpu-limit=${CPU_LIMIT:-1000000000}" \
# -var "memory-limit=${MEMORY_LIMIT:-128000000}"
85 changes: 0 additions & 85 deletions .github/workflows/docker-publish.yml

This file was deleted.

11 changes: 9 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,12 @@ endif
run:
go run ./cmd/$(project_name)/main.go

monitor:
CONFIG_PATH=./configs/monitor.yml go run ./cmd/monitor/main.go

bot:
go run ./cmd/bot/main.go

init-dev:
go mod download \
&& go install github.com/cosmtrek/air@latest
Expand Down Expand Up @@ -37,12 +43,13 @@ view-docs:
php -S 127.0.0.1:8080 -t ./api

docker-build:
docker build -f build/package/Dockerfile -t $(image_name) --build-arg APP=$(project_name) .
docker build -f build/package/Dockerfile -t capcom6/service-monior-core --build-arg APP=monitor .
docker build -f build/package/Dockerfile -t capcom6/service-monior-bot --build-arg APP=bot .

docker:
docker-compose -f deployments/docker-compose/docker-compose.yml up --build

docker-dev:
docker-compose -f deployments/docker-compose/docker-compose.dev.yml up --build

.PHONY: init air db-upgrade db-upgrade-raw test api-docs view-docs
.PHONY: run monitor bot init-dev init air db-upgrade db-upgrade-raw test api-docs view-docs docker docker-dev
9 changes: 9 additions & 0 deletions cmd/bot/main.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package main

import (
"github.com/capcom6/service-monitor-tgbot/internal/botx"
)

func main() {
botx.Run()
}
9 changes: 9 additions & 0 deletions cmd/monitor/main.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package main

import (
"github.com/capcom6/service-monitor-tgbot/internal/monitorx"
)

func main() {
monitorx.Run()
}
23 changes: 0 additions & 23 deletions cmd/service-monitor-tgbot/main.go

This file was deleted.

Loading

0 comments on commit 26ccc5f

Please sign in to comment.