From 5ed02466bce7b055f54d8578c04e1392056ffe80 Mon Sep 17 00:00:00 2001 From: cheetah Date: Sat, 5 Apr 2025 13:30:53 +0200 Subject: [PATCH] added CI/CD --- .forgejo/workflows/build.yaml | 25 +++++++++++++++++++++++++ Dockerfile | 17 +++++++++++++++++ compose.yaml | 20 ++++++++++++++++++++ config.default.json | 8 ++++++++ config.json | 4 ---- index.js | 11 ++++++++++- 6 files changed, 80 insertions(+), 5 deletions(-) create mode 100644 .forgejo/workflows/build.yaml create mode 100644 Dockerfile create mode 100644 compose.yaml create mode 100644 config.default.json diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml new file mode 100644 index 0000000..0c6b4f2 --- /dev/null +++ b/.forgejo/workflows/build.yaml @@ -0,0 +1,25 @@ +name: build +on: + push: + pull_request: + workflow_dispatch: +jobs: + build: + runs-on: ubuntu-22.04 + steps: + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + registry: git.cheetah.cat + username: ${{ github.actor }} + password: ${{ secrets.PAT_TOKEN }} + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Build and push + uses: docker/build-push-action@v6 + with: + platforms: linux/amd64 + push: true + tags: git.cheetah.cat/smartpager/${{ github.event.repository.name }}:latest \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..0a3477a --- /dev/null +++ b/Dockerfile @@ -0,0 +1,17 @@ +ARG NODE_VERSION=23.0.0 + +FROM node:${NODE_VERSION}-alpine + +ENV NODE_ENV production + +WORKDIR /usr/src/app + +COPY package.json . + +RUN npm install + +COPY . . +USER node +EXPOSE 3060 + +CMD node index.js \ No newline at end of file diff --git a/compose.yaml b/compose.yaml new file mode 100644 index 0000000..3fe70d9 --- /dev/null +++ b/compose.yaml @@ -0,0 +1,20 @@ +services: + dispatcher: + image: git.cheetah.cat/smartpager/dispatcher:latest + environment: + NODE_ENV: production + volumes: + - ../dispatcher/config.json:/usr/src/app/config.json + ports: + - 3000:3000 + - 3001:3001 + msg_telegram: + build: + context: . + environment: + NODE_ENV: production + DISPATCHER: "dispatcher:3000" + volumes: + - ./config.json:/usr/src/app/config.json + ports: + - 3060:3060 diff --git a/config.default.json b/config.default.json new file mode 100644 index 0000000..e8a4ec8 --- /dev/null +++ b/config.default.json @@ -0,0 +1,8 @@ +{ + "bottoken": "", + "pager": { + "url": "http://127.0.0.1:3000/api/message/advanced" + }, + "deliveryModes": [ + ] +} \ No newline at end of file diff --git a/config.json b/config.json index f6f05d0..e8a4ec8 100644 --- a/config.json +++ b/config.json @@ -4,9 +4,5 @@ "url": "http://127.0.0.1:3000/api/message/advanced" }, "deliveryModes": [ - { - "name": "Normal", - "preset": "" - } ] } \ No newline at end of file diff --git a/index.js b/index.js index 50f7317..59694b3 100644 --- a/index.js +++ b/index.js @@ -1,4 +1,13 @@ -const config = require('./config.json') +const actualConfig = require('./config.json') +const defaultConfig = require('./config.default.json') +const config = defaultConfig +Object.assign(config, actualConfig) +let dispatcherHost = "127.0.0.1:3000" +if (!!process.env.DISPATCHER) { + console.log("docker mode") + dispatcherHost = process.env.DISPATCHER + config.pager.url = `http://${ dispatcherHost }/api/message/advanced` +} const { Telegraf, Markup } = require('telegraf') const io = require("socket.io-client")