From c220047a09e5d8242cb4323c2a659cc7ab7c3874 Mon Sep 17 00:00:00 2001 From: cheetah Date: Sat, 5 Apr 2025 05:21:29 +0200 Subject: [PATCH] ci/cd --- .forgejo/workflows/build.yaml | 25 +++++++++++++++++++++++++ Dockerfile | 17 +++++++++++++++++ compose.yaml | 20 ++++++++++++++++++++ config.default.json | 8 ++++++++ config.json | 19 +------------------ index.js | 23 +++++++++++++++++------ package.json | 8 ++++---- 7 files changed, 92 insertions(+), 28 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..045bc25 --- /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 3050 + +CMD node index.js \ No newline at end of file diff --git a/compose.yaml b/compose.yaml new file mode 100644 index 0000000..9cc3df1 --- /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_dwd: + build: + context: . + environment: + NODE_ENV: production + DISPATCHER: "dispatcher:3000" + volumes: + - ./config.json:/usr/src/app/config.json + ports: + - 3050:3050 diff --git a/config.default.json b/config.default.json new file mode 100644 index 0000000..7534619 --- /dev/null +++ b/config.default.json @@ -0,0 +1,8 @@ +{ + "pager": { + "url": "http:///api/message/advanced" + }, + "germanUmlautSupport": true, + "regions": [ + ] +} \ No newline at end of file diff --git a/config.json b/config.json index 84e5cfa..7534619 100644 --- a/config.json +++ b/config.json @@ -1,25 +1,8 @@ { "pager": { - "url": "http://127.0.0.1:3000/api/message/advanced" + "url": "http:///api/message/advanced" }, "germanUmlautSupport": true, "regions": [ - { - "name": "Magdeburg", - "active": true, - "dwdID": "mdx", - "preset": "184d015919c", - "levels": { - "wind_storm": 1, - "thunderstorm": 1, - "rain1": 2, - "rain2": 2, - "snow": 1, - "ice": 666, - "frost": 1, - "fog": 1, - "other": 0 - } - } ] } \ No newline at end of file diff --git a/index.js b/index.js index 6bd04c9..e180ab9 100644 --- a/index.js +++ b/index.js @@ -1,17 +1,28 @@ const fs = require('fs') -const config = require('./config.json') -const io = require("socket.io-client") +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 io = require("socket.io-client") const axios = require('axios') -const socket = io(new URL(config.pager.url).origin) +// const socket = io(new URL(config.pager.url).origin) const { read } = require('feed-reader') const stateMachine = {} -socket.on('msgmgr:event', async (eventType, eventData) => { - console.log(eventType, eventData) -}) +// socket.on('msgmgr:event', async (eventType, eventData) => { +// console.log(eventType, eventData) +// }) const umlautMapGermany = { '\u00dc': ']', '\u00c4': '[', diff --git a/package.json b/package.json index 2f9ab8e..1a5a117 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "msg-email", + "name": "msg-dwd", "version": "1.0.0", "description": "", "main": "index.js", @@ -8,14 +8,14 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/smartpager-network/msg-email.git" + "url": "git+https://git.cheetah.cat/smartpager/msg-dwd.git" }, "author": "catSIXe", "license": "ISC", "bugs": { - "url": "https://github.com/smartpager-network/msg-email/issues" + "url": "https://git.cheetah.cat/smartpager/msg-dwd/issues" }, - "homepage": "https://github.com/smartpager-network/msg-email#readme", + "homepage": "https://git.cheetah.cat/smartpager/msg-dwd#readme", "dependencies": { "@mdi/font": "^7.0.96", "axios": "^0.21.1",