Merge pull request #796 from Pax1601/main

Main
This commit is contained in:
Pax1601 2024-01-03 09:23:02 +01:00 committed by GitHub
commit 1ba16f82e7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 76 additions and 0 deletions

44
.github/workflows/build.yml vendored Normal file
View File

@ -0,0 +1,44 @@
name: Build
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
client:
name: Client (${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
matrix:
node-version:
- 20.x
os:
- ubuntu-20.04
- windows-2019
include:
- os: ubuntu-20.04
script: build-release-linux
- os: windows-2019
script: build-release
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Install dependencies
working-directory: client
run: npm ci
- name: Build
working-directory: client
run: npm run ${{ matrix.script }}

18
client/Dockerfile Normal file
View File

@ -0,0 +1,18 @@
FROM node:20-alpine AS appbuild
WORKDIR /usr/src/app
COPY package.json ./
COPY package-lock.json ./
RUN npm install
COPY . .
RUN npm run build-release-linux
FROM node:20-alpine
WORKDIR /usr/src/app
COPY package.json ./
COPY package-lock.json ./
RUN npm install --omit=dev
COPY . .
COPY --from=appbuild /usr/src/app/public ./public
EXPOSE 3000
CMD npm start

4
client/copy.sh Executable file
View File

@ -0,0 +1,4 @@
cp ./node_modules/leaflet/dist/leaflet.css ./public/stylesheets/leaflet/leaflet.css
cp ./node_modules/leaflet-gesture-handling/dist/leaflet-gesture-handling.css ./public/stylesheets/leaflet/leaflet-gesture-handling.css
cp ./node_modules/leaflet.nauticscale/dist/leaflet.nauticscale.js ./public/javascripts/leaflet.nauticscale.js
cp ./node_modules/leaflet-path-drag/dist/L.Path.Drag.js ./public/javascripts/L.Path.Drag.js

View File

@ -7,6 +7,7 @@
"scripts": {
"build": "browserify .\\src\\index.ts --debug -o .\\public\\javascripts\\bundle.js -t [ babelify --global true --presets [ @babel/preset-env ] --extensions '.js'] -p [ tsify --noImplicitAny ] && copy.bat",
"build-release": "browserify .\\src\\index.ts -o .\\public\\javascripts\\bundle.js -t [ babelify --global true --presets [ @babel/preset-env ] --extensions '.js'] -p [ tsify --noImplicitAny ] && copy.bat",
"build-release-linux": "browserify ./src/index.ts -o ./public/javascripts/bundle.js -t [ babelify --global true --presets [ @babel/preset-env ] --extensions '.js'] -p [ tsify --noImplicitAny ] && ./copy.sh",
"emit-declarations": "tsc --project tsconfig.json --declaration --emitDeclarationOnly --outfile ./@types/olympus/index.d.ts",
"copy": "copy.bat",
"start": "node ./bin/www",

9
docker-compose.yml Normal file
View File

@ -0,0 +1,9 @@
version: '3'
services:
client:
build: client
ports:
- 3000:3000
volumes:
- ./olympus.json:/usr/src/olympus.json