ADAPT to local git
This commit is contained in:
parent
ceb402a65d
commit
0d735735ba
@ -1,19 +0,0 @@
|
|||||||
name: Gitea Actions Demo
|
|
||||||
run-name: ${{ gitea.actor }} is testing out Gitea Actions 🚀
|
|
||||||
on: [push]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
Explore-Gitea-Actions:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- run: echo "🎉 The job was automatically and automagically triggered by a ${{ gitea.event_name }} event."
|
|
||||||
- run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by Gitea!"
|
|
||||||
- run: echo "🔎 The name of your branch is ${{ gitea.ref }} and your repository is ${{ gitea.repository }}."
|
|
||||||
- name: Check out repository code
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
- run: echo "💡 The ${{ gitea.repository }} repository has been cloned to the runner."
|
|
||||||
- run: echo "🖥️ The workflow is now ready to test your code on the runner."
|
|
||||||
- name: List files in the repository
|
|
||||||
run: |
|
|
||||||
ls ${{ gitea.workspace }}
|
|
||||||
- run: echo "🍏 This job's status is ${{ job.status }}."
|
|
||||||
106
.github/workflows/image_creation.yml
vendored
Normal file
106
.github/workflows/image_creation.yml
vendored
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
name: ${{ github.actor }} executed Build Push Prod
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- 'v[0-9]+\.[0-9]+\.[0-9]+'
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
env:
|
||||||
|
TOKEN: ${{ secrets.TOKEN }}
|
||||||
|
USERNAME: ${{ vars.USERNAME }}
|
||||||
|
TAG_VERSION: ${{ github.ref_name }}
|
||||||
|
steps:
|
||||||
|
- name: echo repo dir
|
||||||
|
id: repo-url
|
||||||
|
run: |
|
||||||
|
echo "repourl=$(echo ${{ github.server_url }} | sed -e 's;https://;;')" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Setup Quemu
|
||||||
|
uses: docker/setup-qemu-action@v3
|
||||||
|
|
||||||
|
- name: Set Up BuildX
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
|
||||||
|
- name: Login to Docker
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
with:
|
||||||
|
registry: https://git.maximotejeda.com
|
||||||
|
username: ${{ vars.USERNAME }}
|
||||||
|
password: ${{ secrets.PWD }}
|
||||||
|
|
||||||
|
- name: calculate short sha
|
||||||
|
id: calculate-sha
|
||||||
|
run: |
|
||||||
|
echo "shortsha=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: Build and push
|
||||||
|
uses: docker/build-push-action@v6
|
||||||
|
with:
|
||||||
|
context: .
|
||||||
|
platforms: linux/amd64,linux/arm64
|
||||||
|
push: true
|
||||||
|
tags: "${{ steps.repo-url.outputs.repourl }}/${{ github.repository }}:${{ github.ref_name }}"
|
||||||
|
build-args: |
|
||||||
|
version=${{ github.ref_name }}
|
||||||
|
SHORTSHA=${{ steps.calculate-sha.outputs.shortsha }}
|
||||||
|
|
||||||
|
deploy:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: build
|
||||||
|
env:
|
||||||
|
TOKEN: ${{ secrets.TOKEN }}
|
||||||
|
BOT_TOKEN: ${{ secrets.BOT_TOKEN }}
|
||||||
|
TAG: ${{ github.ref_name }}
|
||||||
|
PASSWORD: ${{ secrets.PWD }}
|
||||||
|
USERNAME: ${{ vars.USERNAME }}
|
||||||
|
TAG_VERSION: ${{ github.ref_name }}
|
||||||
|
NATS_SERVICE_URL: "${{ vars.NATS_SERVICE_URL }}"
|
||||||
|
DOLLAR_SERVICE_URL: "${{ vars.DOLLAR_SERVICE_URL }}"
|
||||||
|
TGBUSER_SERVICE_URL: "${{ TGBUSER_SERVICE_URL }}"
|
||||||
|
ENV: "${{ vars.ENV }}"
|
||||||
|
steps:
|
||||||
|
- name: echo repo dir
|
||||||
|
id: repo-url
|
||||||
|
run: |
|
||||||
|
echo "repourl=$(echo ${{ github.server_url }} | sed -e 's;https://;;')" >> $GITHUB_OUTPUT
|
||||||
|
echo "repoName=$(echo ${{ github.repository }} | sed -e 's;${{ github.actor }}/;;')" >> $GITHUB_OUTPUT
|
||||||
|
echo "${{ github.repository }} | sed -e 's;${{ github.actor }}/;;')"
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: install envsubst
|
||||||
|
run: |
|
||||||
|
apt update
|
||||||
|
apt install -y gettext-base
|
||||||
|
apt clean
|
||||||
|
|
||||||
|
- name: create deployment files
|
||||||
|
env:
|
||||||
|
IMAGE: "${{ steps.repo-url.outputs.repourl }}/${{ github.repository }}:${{ github.ref_name }}"
|
||||||
|
REPONAME: "${{ steps.repo-url.outputs.repoName }}"
|
||||||
|
run: |
|
||||||
|
envsubst < k8s/deployment.yml.template > k8s/deployment.yml
|
||||||
|
- name: Download kubectl
|
||||||
|
run: curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
|
||||||
|
|
||||||
|
- name: install kubectl
|
||||||
|
run: sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
|
||||||
|
|
||||||
|
- name: insert kube config
|
||||||
|
run: |
|
||||||
|
mkdir ~/.kube
|
||||||
|
export IMAGE="$( echo ${{ github.server_url }} | sed -e 's;https://;;')/${{ github.repository }}:${{ github.ref_name }}"
|
||||||
|
echo "${{ secrets.KUBECONFIG }}" > ~/.kube/config
|
||||||
|
- name: check pod
|
||||||
|
run: kubectl apply -f k8s/deployment.yml
|
||||||
|
|
||||||
|
- name: scale down deployment
|
||||||
|
continue-on-error: true
|
||||||
|
run: kubectl scale deployment ${{ steps.repo-url.outputs.repoName }} --replicas=0
|
||||||
|
|
||||||
|
- name: scale up deployment
|
||||||
|
run: kubectl scale deployment ${{ steps.repo-url.outputs.repoName }} --replicas=1
|
||||||
65
.github/workflows/test_project.yml
vendored
Normal file
65
.github/workflows/test_project.yml
vendored
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
name: "dev test"
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
- dev
|
||||||
|
- 'feature/**'
|
||||||
|
paths:
|
||||||
|
- '**.go'
|
||||||
|
- '**.yml'
|
||||||
|
- '**.yaml'
|
||||||
|
jobs:
|
||||||
|
test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
env:
|
||||||
|
TOKEN: ${{ secrets.TOKEN }}
|
||||||
|
USERNAME: ${{ vars.USERNAME }}
|
||||||
|
TAG_VERSION: ${{ github.ref_name }}
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Setup Go
|
||||||
|
uses: actions/setup-go@v5
|
||||||
|
with:
|
||||||
|
go-version-file: 'go.mod'
|
||||||
|
- name: test with go
|
||||||
|
run: go test -v ./...
|
||||||
|
|
||||||
|
vulnCheck:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: test
|
||||||
|
env:
|
||||||
|
TOKEN: ${{ secrets.TOKEN }}
|
||||||
|
USERNAME: ${{ vars.USERNAME }}
|
||||||
|
TAG_VERSION: ${{ github.ref_name }}
|
||||||
|
steps:
|
||||||
|
- name: checkout Code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: go vuln check
|
||||||
|
uses: golang/govulncheck-action@v1
|
||||||
|
with:
|
||||||
|
go-version-file: 'go.mod'
|
||||||
|
go-package: ./...
|
||||||
|
|
||||||
|
Ci-Lint:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: vulnCheck
|
||||||
|
env:
|
||||||
|
TOKEN: ${{ secrets.TOKEN }}
|
||||||
|
USERNAME: ${{ vars.USERNAME }}
|
||||||
|
TAG_VERSION: ${{ github.ref_name }}
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Setup Go
|
||||||
|
uses: actions/setup-go@v5
|
||||||
|
with:
|
||||||
|
go-version-file: 'go.mod'
|
||||||
|
- name: CI lint Check
|
||||||
|
uses: golangci/golangci-lint-action@v6
|
||||||
|
with:
|
||||||
|
only-new-issues: true
|
||||||
32
Dockerfile
32
Dockerfile
@ -1,17 +1,19 @@
|
|||||||
#FROM golang:latest as builder
|
|
||||||
#WORKDIR /app
|
|
||||||
#COPY . .
|
|
||||||
#RUN go mod download && go mod tidy
|
|
||||||
|
|
||||||
#RUN go build -o ./bin/us-dop-bot ./cmd/bot
|
FROM golang:alpine AS builder
|
||||||
|
ARG TARGETARCH
|
||||||
FROM debian:unstable-slim
|
ARG version=not-set
|
||||||
ARG BINAME=us-dop-bot-linux-arm64-0.0.0_1
|
ARG SHORTSHA=not-set
|
||||||
RUN apt-get update
|
|
||||||
RUN apt-get install -y ca-certificates
|
|
||||||
|
|
||||||
COPY ./bin/${BINAME} /app/us-dop-bot
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
RUN echo "bin name ${BINAME}"
|
COPY . .
|
||||||
# RUN mv /app/${BINAME} /app/us-dop-bot
|
# https://stackoverflow.com/questions/70369368/check-architecture-in-dockerfile-to-get-amd-arm
|
||||||
CMD ["/app/us-dop-bot"]
|
RUN go build -o bin/us-dop-bot \
|
||||||
|
-ldflags "-X main.Shortsha=${SHORTSHA} \
|
||||||
|
-X main.Version=${version} \
|
||||||
|
-X main.Aarch=${TARGETARCH}" ./cmd
|
||||||
|
|
||||||
|
FROM alpine AS runner
|
||||||
|
COPY --from=builder /app/bin/us-dop-bot /usr/bin/
|
||||||
|
WORKDIR /app
|
||||||
|
RUN apk --no-cache add --no-check-certificate ca-certificates \
|
||||||
|
&& update-ca-certificates
|
||||||
|
ENTRYPOINT /usr/bin/us-dop-bot
|
||||||
|
|||||||
@ -9,12 +9,12 @@ import (
|
|||||||
"syscall"
|
"syscall"
|
||||||
|
|
||||||
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
|
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
|
||||||
"github.com/maximotejeda/us_dop_bot/config"
|
"git.maximotejeda.com/maximo/us-dop-bot/config"
|
||||||
"github.com/maximotejeda/us_dop_bot/internal/adapters/dolar"
|
"git.maximotejeda.com/maximo/us-dop-bot/internal/adapters/dolar"
|
||||||
"github.com/maximotejeda/us_dop_bot/internal/adapters/user"
|
"git.maximotejeda.com/maximo/us-dop-bot/internal/adapters/user"
|
||||||
"github.com/maximotejeda/us_dop_bot/internal/application/api"
|
"git.maximotejeda.com/maximo/us-dop-bot/internal/application/api"
|
||||||
"github.com/maximotejeda/us_dop_bot/internal/application/broadcaster"
|
"git.maximotejeda.com/maximo/us-dop-bot/internal/application/broadcaster"
|
||||||
"github.com/maximotejeda/us_dop_bot/internal/ports"
|
"git.maximotejeda.com/maximo/us-dop-bot/internal/ports"
|
||||||
"golang.org/x/sync/semaphore"
|
"golang.org/x/sync/semaphore"
|
||||||
|
|
||||||
"github.com/nats-io/nats.go"
|
"github.com/nats-io/nats.go"
|
||||||
|
|||||||
@ -6,15 +6,11 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func GetToken() string {
|
func GetToken() string {
|
||||||
return getEnvVariable("TOKEN")
|
return getEnvVariable("BOT_TOKEN")
|
||||||
}
|
|
||||||
|
|
||||||
func GetDBUSERURI() string {
|
|
||||||
return getEnvVariable("DBURIUSER")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetNatsURI() string {
|
func GetNatsURI() string {
|
||||||
return getEnvVariable("NATSURI")
|
return getEnvVariable("NATS_SERVICE_URL")
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetDollarServiceURL() string {
|
func GetDollarServiceURL() string {
|
||||||
|
|||||||
32
go.mod
32
go.mod
@ -1,24 +1,26 @@
|
|||||||
module github.com/maximotejeda/us_dop_bot
|
module git.maximotejeda.com/maximo/us-dop-bot
|
||||||
|
|
||||||
go 1.22.0
|
go 1.23
|
||||||
|
|
||||||
|
toolchain go1.23.2
|
||||||
|
|
||||||
require (
|
require (
|
||||||
|
git.maximotejeda.com/maximo/dolar v0.0.1
|
||||||
|
git.maximotejeda.com/maximo/tgb-user v0.0.4
|
||||||
github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1
|
github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1
|
||||||
github.com/maximotejeda/msvc-proto/golang/dolar v0.0.0-8
|
github.com/nats-io/nats.go v1.37.0
|
||||||
github.com/maximotejeda/msvc-proto/golang/tgbuser v0.0.0-11
|
golang.org/x/sync v0.10.0
|
||||||
github.com/nats-io/nats.go v1.34.1
|
golang.org/x/text v0.21.0
|
||||||
golang.org/x/sync v0.6.0
|
google.golang.org/grpc v1.68.1
|
||||||
golang.org/x/text v0.14.0
|
|
||||||
google.golang.org/grpc v1.63.2
|
|
||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/klauspost/compress v1.17.2 // indirect
|
github.com/klauspost/compress v1.17.11 // indirect
|
||||||
github.com/nats-io/nkeys v0.4.7 // indirect
|
github.com/nats-io/nkeys v0.4.8 // indirect
|
||||||
github.com/nats-io/nuid v1.0.1 // indirect
|
github.com/nats-io/nuid v1.0.1 // indirect
|
||||||
golang.org/x/crypto v0.22.0 // indirect
|
golang.org/x/crypto v0.30.0 // indirect
|
||||||
golang.org/x/net v0.24.0 // indirect
|
golang.org/x/net v0.32.0 // indirect
|
||||||
golang.org/x/sys v0.19.0 // indirect
|
golang.org/x/sys v0.28.0 // indirect
|
||||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240415180920-8c6c420018be // indirect
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20241202173237-19429a94021a // indirect
|
||||||
google.golang.org/protobuf v1.33.0 // indirect
|
google.golang.org/protobuf v1.35.2 // indirect
|
||||||
)
|
)
|
||||||
|
|||||||
38
go.sum
38
go.sum
@ -1,32 +1,54 @@
|
|||||||
|
git.maximotejeda.com/maximo/dolar v0.0.1 h1:pRO0qHRHzKlTsZtXRM4QT8VjPsS2AwOduOKIISWbXTU=
|
||||||
|
git.maximotejeda.com/maximo/dolar v0.0.1/go.mod h1:I3q+2GDNEwMSfSLg/7g5lkI+EWPR/90JvMO94KoFKBs=
|
||||||
|
git.maximotejeda.com/maximo/tgb-user v0.0.4 h1:TJQl+J2OEAstHUqlzDdYQ960QLgp+5Q/kGenEdki2kA=
|
||||||
|
git.maximotejeda.com/maximo/tgb-user v0.0.4/go.mod h1:7KpTUAnwap6cp5pHRKgJygxrN3rftAdTkpCG2zJIpYI=
|
||||||
github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1 h1:wG8n/XJQ07TmjbITcGiUaOtXxdrINDz1b0J1w0SzqDc=
|
github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1 h1:wG8n/XJQ07TmjbITcGiUaOtXxdrINDz1b0J1w0SzqDc=
|
||||||
github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1/go.mod h1:A2S0CWkNylc2phvKXWBBdD3K0iGnDBGbzRpISP2zBl8=
|
github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1/go.mod h1:A2S0CWkNylc2phvKXWBBdD3K0iGnDBGbzRpISP2zBl8=
|
||||||
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
|
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
|
||||||
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
||||||
github.com/klauspost/compress v1.17.2 h1:RlWWUY/Dr4fL8qk9YG7DTZ7PDgME2V4csBXA8L/ixi4=
|
github.com/klauspost/compress v1.17.2 h1:RlWWUY/Dr4fL8qk9YG7DTZ7PDgME2V4csBXA8L/ixi4=
|
||||||
github.com/klauspost/compress v1.17.2/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
|
github.com/klauspost/compress v1.17.2/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
|
||||||
github.com/maximotejeda/msvc-proto/golang/dolar v0.0.0-8 h1:ldphxrQiAhmctWBMCaNShDphZfHmOeKuoSWwCxV62Ho=
|
github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc=
|
||||||
github.com/maximotejeda/msvc-proto/golang/dolar v0.0.0-8/go.mod h1:bAs0mlC1Vyn/BkHONL2Ik8ox9px9s9bhbJWgUQFMMWo=
|
github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0=
|
||||||
github.com/maximotejeda/msvc-proto/golang/tgbuser v0.0.0-11 h1:4ePlM4kOlvqygH5o6K039DRJSRBEsJ9HbswrbaiA8+U=
|
|
||||||
github.com/maximotejeda/msvc-proto/golang/tgbuser v0.0.0-11/go.mod h1:UeWAtY6XdFuWJwdJPAK++BLE50F6KPotvX7F5DYgCls=
|
|
||||||
github.com/nats-io/nats.go v1.34.1 h1:syWey5xaNHZgicYBemv0nohUPPmaLteiBEUT6Q5+F/4=
|
github.com/nats-io/nats.go v1.34.1 h1:syWey5xaNHZgicYBemv0nohUPPmaLteiBEUT6Q5+F/4=
|
||||||
github.com/nats-io/nats.go v1.34.1/go.mod h1:Ubdu4Nh9exXdSz0RVWRFBbRfrbSxOYd26oF0wkWclB8=
|
github.com/nats-io/nats.go v1.34.1/go.mod h1:Ubdu4Nh9exXdSz0RVWRFBbRfrbSxOYd26oF0wkWclB8=
|
||||||
|
github.com/nats-io/nats.go v1.37.0 h1:07rauXbVnnJvv1gfIyghFEo6lUcYRY0WXc3x7x0vUxE=
|
||||||
|
github.com/nats-io/nats.go v1.37.0/go.mod h1:Ubdu4Nh9exXdSz0RVWRFBbRfrbSxOYd26oF0wkWclB8=
|
||||||
github.com/nats-io/nkeys v0.4.7 h1:RwNJbbIdYCoClSDNY7QVKZlyb/wfT6ugvFCiKy6vDvI=
|
github.com/nats-io/nkeys v0.4.7 h1:RwNJbbIdYCoClSDNY7QVKZlyb/wfT6ugvFCiKy6vDvI=
|
||||||
github.com/nats-io/nkeys v0.4.7/go.mod h1:kqXRgRDPlGy7nGaEDMuYzmiJCIAAWDK0IMBtDmGD0nc=
|
github.com/nats-io/nkeys v0.4.7/go.mod h1:kqXRgRDPlGy7nGaEDMuYzmiJCIAAWDK0IMBtDmGD0nc=
|
||||||
|
github.com/nats-io/nkeys v0.4.8 h1:+wee30071y3vCZAYRsnrmIPaOe47A/SkK/UBDPdIV70=
|
||||||
|
github.com/nats-io/nkeys v0.4.8/go.mod h1:kqXRgRDPlGy7nGaEDMuYzmiJCIAAWDK0IMBtDmGD0nc=
|
||||||
github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw=
|
github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw=
|
||||||
github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c=
|
github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c=
|
||||||
golang.org/x/crypto v0.22.0 h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30=
|
golang.org/x/crypto v0.22.0 h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30=
|
||||||
golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M=
|
golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M=
|
||||||
|
golang.org/x/crypto v0.30.0 h1:RwoQn3GkWiMkzlX562cLB7OxWvjH1L8xutO2WoJcRoY=
|
||||||
|
golang.org/x/crypto v0.30.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
|
||||||
golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w=
|
golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w=
|
||||||
golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8=
|
golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8=
|
||||||
|
golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI=
|
||||||
|
golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs=
|
||||||
golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ=
|
golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ=
|
||||||
golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||||
|
golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
|
||||||
|
golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||||
golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o=
|
golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o=
|
||||||
golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||||
|
golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
|
||||||
|
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||||
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
|
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
|
||||||
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
|
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
|
||||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240415180920-8c6c420018be h1:LG9vZxsWGOmUKieR8wPAUR3u3MpnYFQZROPIMaXh7/A=
|
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
|
||||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240415180920-8c6c420018be/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY=
|
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
|
||||||
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20240429193739-8cf5692501f6 h1:DujSIu+2tC9Ht0aPNA7jgj23Iq8Ewi5sgkQ++wdvonE=
|
||||||
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20240429193739-8cf5692501f6/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY=
|
||||||
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20241202173237-19429a94021a h1:hgh8P4EuoxpsuKMXX/To36nOFD7vixReXgn8lPGnt+o=
|
||||||
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20241202173237-19429a94021a/go.mod h1:5uTbfoYQed2U9p3KIj2/Zzm02PYhndfdmML0qC3q3FU=
|
||||||
google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM=
|
google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM=
|
||||||
google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA=
|
google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA=
|
||||||
google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=
|
google.golang.org/grpc v1.68.1 h1:oI5oTa11+ng8r8XMMN7jAOmWfPZWbYpCFaMUTACxkM0=
|
||||||
google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
|
google.golang.org/grpc v1.68.1/go.mod h1:+q1XYFJjShcqn0QZHvCyeR4CXPA+llXIeUIfIe00waw=
|
||||||
|
google.golang.org/protobuf v1.34.0 h1:Qo/qEd2RZPCf2nKuorzksSknv0d3ERwp1vFG38gSmH4=
|
||||||
|
google.golang.org/protobuf v1.34.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
|
||||||
|
google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io=
|
||||||
|
google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
|
||||||
|
|||||||
@ -3,8 +3,8 @@ package dolar
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
|
||||||
"github.com/maximotejeda/msvc-proto/golang/dolar"
|
"git.maximotejeda.com/maximo/dolar/proto/golang/dolar"
|
||||||
"github.com/maximotejeda/us_dop_bot/internal/application/domain"
|
"git.maximotejeda.com/maximo/us-dop-bot/internal/application/domain"
|
||||||
"google.golang.org/grpc"
|
"google.golang.org/grpc"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@ -5,8 +5,8 @@ import (
|
|||||||
"log/slog"
|
"log/slog"
|
||||||
|
|
||||||
tgb "github.com/go-telegram-bot-api/telegram-bot-api/v5"
|
tgb "github.com/go-telegram-bot-api/telegram-bot-api/v5"
|
||||||
"github.com/maximotejeda/msvc-proto/golang/tgbuser"
|
"git.maximotejeda.com/maximo/tgb-user/proto/golang/tgbuser"
|
||||||
"github.com/maximotejeda/us_dop_bot/internal/application/domain"
|
"git.maximotejeda.com/maximo/us-dop-bot/internal/application/domain"
|
||||||
"google.golang.org/grpc"
|
"google.golang.org/grpc"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@ -6,10 +6,10 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
|
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
|
||||||
"github.com/maximotejeda/us_dop_bot/internal/application/command"
|
"git.maximotejeda.com/maximo/us-dop-bot/internal/application/command"
|
||||||
"github.com/maximotejeda/us_dop_bot/internal/application/message"
|
"git.maximotejeda.com/maximo/us-dop-bot/internal/application/message"
|
||||||
"github.com/maximotejeda/us_dop_bot/internal/application/query"
|
"git.maximotejeda.com/maximo/us-dop-bot/internal/application/query"
|
||||||
"github.com/maximotejeda/us_dop_bot/internal/ports"
|
"git.maximotejeda.com/maximo/us-dop-bot/internal/ports"
|
||||||
)
|
)
|
||||||
|
|
||||||
type api struct {
|
type api struct {
|
||||||
|
|||||||
@ -9,9 +9,9 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
|
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
|
||||||
"github.com/maximotejeda/us_dop_bot/internal/application/domain"
|
"git.maximotejeda.com/maximo/us-dop-bot/internal/application/domain"
|
||||||
"github.com/maximotejeda/us_dop_bot/internal/application/helpers"
|
"git.maximotejeda.com/maximo/us-dop-bot/internal/application/helpers"
|
||||||
"github.com/maximotejeda/us_dop_bot/internal/ports"
|
"git.maximotejeda.com/maximo/us-dop-bot/internal/ports"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Broadcaster struct {
|
type Broadcaster struct {
|
||||||
|
|||||||
@ -7,8 +7,8 @@ import (
|
|||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
|
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
|
||||||
"github.com/maximotejeda/us_dop_bot/internal/application/helpers"
|
"git.maximotejeda.com/maximo/us-dop-bot/internal/application/helpers"
|
||||||
"github.com/maximotejeda/us_dop_bot/internal/ports"
|
"git.maximotejeda.com/maximo/us-dop-bot/internal/ports"
|
||||||
)
|
)
|
||||||
|
|
||||||
var commandPool *sync.Pool
|
var commandPool *sync.Pool
|
||||||
|
|||||||
@ -9,9 +9,9 @@ import (
|
|||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
|
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
|
||||||
"github.com/maximotejeda/us_dop_bot/internal/application/domain"
|
"git.maximotejeda.com/maximo/us-dop-bot/internal/application/domain"
|
||||||
"github.com/maximotejeda/us_dop_bot/internal/application/static"
|
"git.maximotejeda.com/maximo/us-dop-bot/internal/application/static"
|
||||||
"github.com/maximotejeda/us_dop_bot/internal/ports"
|
"git.maximotejeda.com/maximo/us-dop-bot/internal/ports"
|
||||||
)
|
)
|
||||||
|
|
||||||
var ChatPool *sync.Pool
|
var ChatPool *sync.Pool
|
||||||
|
|||||||
@ -9,9 +9,9 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
|
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
|
||||||
"github.com/maximotejeda/us_dop_bot/internal/application/domain"
|
"git.maximotejeda.com/maximo/us-dop-bot/internal/application/domain"
|
||||||
"github.com/maximotejeda/us_dop_bot/internal/application/helpers"
|
"git.maximotejeda.com/maximo/us-dop-bot/internal/application/helpers"
|
||||||
"github.com/maximotejeda/us_dop_bot/internal/ports"
|
"git.maximotejeda.com/maximo/us-dop-bot/internal/ports"
|
||||||
)
|
)
|
||||||
|
|
||||||
var chatPool *sync.Pool
|
var chatPool *sync.Pool
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
package ports
|
package ports
|
||||||
|
|
||||||
import "github.com/maximotejeda/us_dop_bot/internal/application/domain"
|
import "git.maximotejeda.com/maximo/us-dop-bot/internal/application/domain"
|
||||||
|
|
||||||
type DolarService interface {
|
type DolarService interface {
|
||||||
GetLatest(name string) (*domain.History, error)
|
GetLatest(name string) (*domain.History, error)
|
||||||
|
|||||||
@ -2,7 +2,7 @@ package ports
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
|
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
|
||||||
"github.com/maximotejeda/us_dop_bot/internal/application/domain"
|
"git.maximotejeda.com/maximo/us-dop-bot/internal/application/domain"
|
||||||
)
|
)
|
||||||
|
|
||||||
type UserService interface {
|
type UserService interface {
|
||||||
|
|||||||
@ -1,33 +1,31 @@
|
|||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
name: us-dop-bot
|
name: $REPONAME
|
||||||
labels:
|
labels:
|
||||||
app: us-dop-bot
|
app: $REPONAME
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app: us-dop-bot
|
app: $REPONAME
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
app: us-dop-bot
|
app: $REPONAME
|
||||||
name: us-dop-bot
|
name: $REPONAME
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: us-dop-bot
|
- name: $REPONAME
|
||||||
image: localhost:32000/us-dop-bot:latest
|
image: $IMAGE
|
||||||
env:
|
env:
|
||||||
- name: DBURI
|
- name: NATS_SERVICE_URL
|
||||||
value: $DBURI
|
value: "$NATS_SERVICE_URL"
|
||||||
- name: NATSURI
|
- name: BOT_TOKEN
|
||||||
value: "nats://nats-svc:4222"
|
value: "$BOT_TOKEN"
|
||||||
- name: TOKEN
|
|
||||||
value: "$PRODTOKEN"
|
|
||||||
- name: DOLLAR_SERVICE_URL
|
- name: DOLLAR_SERVICE_URL
|
||||||
value: "dolar-grpc-svc:80"
|
value: "$DOLLAR_SERVICE_URL"
|
||||||
- name: TGBUSER_SERVICE_URL
|
- name: TGBUSER_SERVICE_URL
|
||||||
value: "tgbuser-grpc-svc:80"
|
value: "$TGBUSER_SERVICE_URL"
|
||||||
- name: ENV
|
- name: ENV
|
||||||
value: "production"
|
value: "$ENV"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user