summary refs log tree commit diff
diff options
context:
space:
mode:
authorFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-07-30 17:37:22 +0200
committerFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-07-30 17:37:22 +0200
commite9d387f3b529e1c4d923dff807fc529d26d09402 (patch)
treed4e1642c953395b83052646c33c587222e95cac2
parent:construction: message acknowledge (diff)
parentMerge pull request #179 from fosscord/l10n_master (diff)
downloadserver-e9d387f3b529e1c4d923dff807fc529d26d09402.tar.xz
Merge branch 'master' of https://github.com/fosscord/fosscord-api
-rw-r--r--.github/workflows/docker-publish.yml47
-rw-r--r--Dockerfile7
-rw-r--r--locales/hi/common.json2
-rw-r--r--package.json2
-rw-r--r--tsconfig-docker.json68
5 files changed, 122 insertions, 4 deletions
diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml
new file mode 100644
index 00000000..46d9d04d
--- /dev/null
+++ b/.github/workflows/docker-publish.yml
@@ -0,0 +1,47 @@
+name: docker-publish
+
+on:
+  push:
+    branches:
+      - 'master'
+
+jobs:
+  docker:
+    runs-on: ubuntu-latest
+    steps:
+      -
+        name: Checkout
+        uses: actions/checkout@v2
+      -
+        name: Set up Docker Buildx
+        uses: docker/setup-buildx-action@v1
+      -
+        name: Cache Docker layers
+        uses: actions/cache@v2
+        with:
+          path: /tmp/.buildx-cache
+          key: ${{ runner.os }}-buildx-${{ github.sha }}
+          restore-keys: |
+            ${{ runner.os }}-buildx-
+      -
+        name: Login to DockerHub
+        uses: docker/login-action@v1
+        with:
+          username: ${{ secrets.DOCKERHUB_USERNAME }}
+          password: ${{ secrets.DOCKERHUB_TOKEN }}
+      -
+        name: Build and push
+        uses: docker/build-push-action@v2
+        with:
+          context: .
+          push: true
+          tags: ${{ secrets.DOCKERHUB_TAGS }}
+          cache-from: type=local,src=/tmp/.buildx-cache
+          cache-to: type=local,dest=/tmp/.buildx-cache-new
+      -
+        # Hackfix to cleanup cache; replace after buildx 0.6 and BuildKit 0.9 are released
+        # https://github.com/docker/build-push-action/pull/406#issuecomment-879184394
+        name: Move cache fix
+        run: |
+          rm -rf /tmp/.buildx-cache
+          mv /tmp/.buildx-cache-new /tmp/.buildx-cache
diff --git a/Dockerfile b/Dockerfile
index 39b4dd56..b1b00a7a 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -3,9 +3,10 @@ FROM node:lts-alpine
 RUN apk add --no-cache make gcc g++ python cairo-dev jpeg-dev pango-dev giflib-dev
 WORKDIR /usr/src/fosscord-api
 COPY package.json .
-RUN npm rebuild bcrypt --build-from-source && npm rebuild canvas --build-from-source
+COPY package-lock.json .
+RUN npm rebuild bcrypt --build-from-source && npm install canvas --build-from-source
 RUN npm install
 COPY . .
 EXPOSE 3001
-RUN npm run build
-CMD ["node", "dist/start.js"]
\ No newline at end of file
+RUN npm run build-docker
+CMD ["node", "dist/start.js"]
diff --git a/locales/hi/common.json b/locales/hi/common.json
index f650d675..beb4b222 100644
--- a/locales/hi/common.json
+++ b/locales/hi/common.json
@@ -11,7 +11,7 @@
     "BASE_TYPE_ARRAY": "यह फ़ील्ड एक ऐरे होनी चाहिए",
     "UNKOWN_FIELD": "अज्ञात कुंजी: [[key]]",
     "BASE_TYPE_CONSTANT": "यह क्षेत्र {{value}} होना चाहिए",
-    "EMAIL_TYPE_INVALID_EMAIL": "खराब ईमेल अड्रेस",
+    "EMAIL_TYPE_INVALID_EMAIL": "खराब ईमेल एड्रेस",
     "DATE_TYPE_PARSE": "{{date}} की पदव्‍याख्‍या नहीं हो पाई है। ISO8601 होना चाहिए",
     "BASE_TYPE_BAD_LENGTH": "लंबाई {{length}} के बीच में होनी चाहिए"
   }
diff --git a/package.json b/package.json
index 354ad460..524a5477 100644
--- a/package.json
+++ b/package.json
@@ -9,6 +9,7 @@
 		"test:watch": "jest --watch",
 		"start": "npm run build && node dist/start",
 		"build": "tsc -b .",
+		"build-docker": "tsc -p tsconfig-docker.json",
 		"dev": "tsnd --respawn src/start.ts",
 		"bundle:macos": "npx caxa -i . -m 'This may take a while to run the first time, please wait...' --output 'fosscord-api.app' -- '{{caxa}}/node_modules/.bin/node' '{{caxa}}/dist/start.js' && tar -czf 'fosscord-api-macos.app.tgz' 'fosscord-api.app'",
 		"bundle:linux": "npx caxa -i . -m 'This may take a while to run the first time, please wait...' --output 'fosscord' -- '{{caxa}}/node_modules/.bin/node' '{{caxa}}/dist/start.js' && tar -czf 'fosscord-api-linux.tgz' 'fosscord'",
@@ -40,6 +41,7 @@
 		"assert": "^1.5.0",
 		"atomically": "^1.7.0",
 		"bcrypt": "^5.0.1",
+		"canvas": "^2.8.0",
 		"body-parser": "^1.19.0",
 		"cheerio": "^1.0.0-rc.9",
 		"dot-prop": "^6.0.1",
diff --git a/tsconfig-docker.json b/tsconfig-docker.json
new file mode 100644
index 00000000..5d1f0a3c
--- /dev/null
+++ b/tsconfig-docker.json
@@ -0,0 +1,68 @@
+{
+	"include": ["src/**/*.ts"],
+	"compilerOptions": {
+		/* Visit https://aka.ms/tsconfig.json to read more about this file */
+
+		/* Basic Options */
+		// "incremental": true,                   /* Enable incremental compilation */
+		"target": "ESNext" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */,
+		"module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */,
+		"lib": ["ES2020"] /* Specify library files to be included in the compilation. */,
+		"allowJs": true /* Allow javascript files to be compiled. */,
+		"checkJs": true /* Report errors in .js files. */,
+		// "jsx": "preserve",                     /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */
+		"declaration": false /* Generates corresponding '.d.ts' file. */,
+		"declarationMap": false /* Generates a sourcemap for each corresponding '.d.ts' file. */,
+		"sourceMap": true /* Generates corresponding '.map' file. */,
+		// "outFile": "./",                       /* Concatenate and emit output to single file. */
+		"outDir": "./dist/" /* Redirect output structure to the directory. */,
+		"rootDir": "./src/" /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */,
+		// "composite": true,                     /* Enable project compilation */
+		// "tsBuildInfoFile": "./",               /* Specify file to store incremental compilation information */
+		// "removeComments": true,                /* Do not emit comments to output. */
+		// "noEmit": true,                        /* Do not emit outputs. */
+		// "importHelpers": true,                 /* Import emit helpers from 'tslib'. */
+		// "downlevelIteration": true,            /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */
+		// "isolatedModules": true,               /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */
+
+		/* Strict Type-Checking Options */
+		"strict": true /* Enable all strict type-checking options. */,
+		"noImplicitAny": true /* Raise error on expressions and declarations with an implied 'any' type. */,
+		"strictNullChecks": true /* Enable strict null checks. */,
+		// "strictFunctionTypes": true,           /* Enable strict checking of function types. */
+		// "strictBindCallApply": true,           /* Enable strict 'bind', 'call', and 'apply' methods on functions. */
+		"strictPropertyInitialization": false /* Enable strict checking of property initialization in classes. */,
+		// "noImplicitThis": true,                /* Raise error on 'this' expressions with an implied 'any' type. */
+		"alwaysStrict": true /* Parse in strict mode and emit "use strict" for each source file. */,
+
+		/* Additional Checks */
+		// "noUnusedLocals": true,                /* Report errors on unused locals. */
+		// "noUnusedParameters": true,            /* Report errors on unused parameters. */
+		// "noImplicitReturns": true,             /* Report error when not all code paths in function return a value. */
+		// "noFallthroughCasesInSwitch": true,    /* Report errors for fallthrough cases in switch statement. */
+
+		/* Module Resolution Options */
+		// "moduleResolution": "node",            /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */
+		// "rootDirs": [],                        /* List of root folders whose combined content represents the structure of the project at runtime. */
+		// "typeRoots": [],                       /* List of folders to include type definitions from. */
+		"types": ["node"] /* Type declaration files to be included in compilation. */,
+		// "allowSyntheticDefaultImports": true,  /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */
+		"esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */,
+		// "preserveSymlinks": true,              /* Do not resolve the real path of symlinks. */
+		// "allowUmdGlobalAccess": true,          /* Allow accessing UMD globals from modules. */
+
+		/* Source Map Options */
+		// "sourceRoot": "",                      /* Specify the location where debugger should locate TypeScript files instead of source locations. */
+		// "mapRoot": "",                         /* Specify the location where debugger should locate map files instead of generated locations. */
+		// "inlineSourceMap": true,               /* Emit a single file with source maps instead of having a separate file. */
+		// "inlineSources": true,                 /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */
+
+		/* Experimental Options */
+		// "experimentalDecorators": true,        /* Enables experimental support for ES7 decorators. */
+		// "emitDecoratorMetadata": true,         /* Enables experimental support for emitting type metadata for decorators. */
+
+		/* Advanced Options */
+		"skipLibCheck": true /* Skip type checking of declaration files. */,
+		"forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */
+	}
+}