diff --git a/.github/workflows/build-npm.yaml b/.github/workflows/build-npm.yaml index 823e44090..b00b43c3c 100644 --- a/.github/workflows/build-npm.yaml +++ b/.github/workflows/build-npm.yaml @@ -48,3 +48,38 @@ jobs: NPM_TOKEN: ${{ secrets.NPM_TOKEN }} run: | npm publish + + - name: Publish tools + working-directory: packages/tools + env: + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + run: | + npm publish + + - name: Publish sqltree + working-directory: packages/sqltree + env: + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + run: | + npm publish + + - name: Publish api + working-directory: packages/api + env: + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + run: | + npm publish + + - name: Publish web + working-directory: packages/web + env: + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + run: | + npm publish + + - name: Publish dbgate + working-directory: packages/dbgate + env: + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + run: | + npm publish diff --git a/packages/api/.npmrc b/packages/api/.npmrc new file mode 100644 index 000000000..ae643592e --- /dev/null +++ b/packages/api/.npmrc @@ -0,0 +1 @@ +//registry.npmjs.org/:_authToken=${NPM_TOKEN} diff --git a/packages/api/src/main.js b/packages/api/src/main.js index 890293004..0ddf3fe4a 100644 --- a/packages/api/src/main.js +++ b/packages/api/src/main.js @@ -8,6 +8,7 @@ const io = require('socket.io'); const fs = require('fs'); const findFreePort = require('find-free-port'); const childProcessChecker = require('./utility/childProcessChecker'); +const path = require('path'); const useController = require('./utility/useController'); const socket = require('./utility/socket'); @@ -96,6 +97,14 @@ function start(argument = null) { process.send({ msgtype: 'listening', port }); }); }); + } else if (argument == 'startNodeWeb') { + app.use(express.static(path.join(__dirname, '../../dbgate-web/build'))); + findFreePort(5000, function (err, port) { + server.listen(port, () => { + console.log(`DbGate API listening on port ${port}`); + process.send({ msgtype: 'listening', port }); + }); + }); } else { server.listen(3000); } diff --git a/packages/dbgate/bin/dbgate.js b/packages/dbgate/bin/dbgate.js new file mode 100644 index 000000000..3e9a13a22 --- /dev/null +++ b/packages/dbgate/bin/dbgate.js @@ -0,0 +1,5 @@ +#!/usr/bin/env node + +const dbgateApi = require('dbgate-api'); + +dbgateApi.mainModule.start('startNodeWeb'); diff --git a/packages/dbgate/package.json b/packages/dbgate/package.json index 00b08615f..baabee14d 100644 --- a/packages/dbgate/package.json +++ b/packages/dbgate/package.json @@ -9,6 +9,9 @@ "funding": "https://www.paypal.com/paypalme/JanProchazkaCz/30eur", "author": "Jan Prochazka", "license": "MIT", + "bin": { + "dbgate": "./bin/dbgate.js" + }, "keywords": [ "sql", "dbgate", diff --git a/packages/sqltree/.npmrc b/packages/sqltree/.npmrc new file mode 100644 index 000000000..ae643592e --- /dev/null +++ b/packages/sqltree/.npmrc @@ -0,0 +1 @@ +//registry.npmjs.org/:_authToken=${NPM_TOKEN} diff --git a/packages/tools/.npmrc b/packages/tools/.npmrc new file mode 100644 index 000000000..ae643592e --- /dev/null +++ b/packages/tools/.npmrc @@ -0,0 +1 @@ +//registry.npmjs.org/:_authToken=${NPM_TOKEN} diff --git a/packages/web/.npmrc b/packages/web/.npmrc new file mode 100644 index 000000000..ae643592e --- /dev/null +++ b/packages/web/.npmrc @@ -0,0 +1 @@ +//registry.npmjs.org/:_authToken=${NPM_TOKEN} diff --git a/packages/web/package.json b/packages/web/package.json index 976de8078..0fb2e1d90 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -1,7 +1,6 @@ { "name": "dbgate-web", "version": "1.0.0", - "private": true, "dependencies": { "@ant-design/colors": "^5.0.0", "@mdi/font": "^5.8.55", @@ -38,10 +37,14 @@ "styled-components": "^4.4.1", "uuid": "^3.4.0" }, + "files": [ + "build" + ], "scripts": { "start": "cross-env BROWSER=none PORT=5000 react-scripts start", "build:docker": "cross-env CI=false REACT_APP_API_URL=ORIGIN react-scripts build", "build:app": "cross-env PUBLIC_URL=. CI=false react-scripts build", + "build": "cross-env CI=false REACT_APP_API_URL=ORIGIN react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject", "ts": "tsc"