Fixed GitHub Actions and addressed CodeQL issues
This commit is contained in:
parent
3cd05cd48c
commit
6361b83c05
|
@ -3,7 +3,6 @@ on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- typescript
|
- typescript
|
||||||
- docker
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
analyze:
|
analyze:
|
||||||
|
@ -16,9 +15,12 @@ jobs:
|
||||||
fetch-depth: 2
|
fetch-depth: 2
|
||||||
|
|
||||||
- name: Setup Node.JS
|
- name: Setup Node.JS
|
||||||
uses: actions/setup-node@v2-beta
|
uses: actions/setup-node@v2
|
||||||
with:
|
with:
|
||||||
node-version: "12"
|
node-version: "14"
|
||||||
|
# https://github.com/npm/cli/issues/558#issuecomment-580018468
|
||||||
|
# Error: "npm ERR! fsevents not accessible from jest-haste-map"
|
||||||
|
# (supposed to just be a warning b/c optional dependency, but CI environment causes it to fail)
|
||||||
- run: npm ci
|
- run: npm ci
|
||||||
|
|
||||||
- name: Build codebase
|
- name: Build codebase
|
||||||
|
|
67
Dockerfile
67
Dockerfile
|
@ -1,4 +1,69 @@
|
||||||
FROM node:current-alpine
|
###############
|
||||||
|
# Solution #1 #
|
||||||
|
###############
|
||||||
|
# https://github.com/geekduck/docker-node-canvas
|
||||||
|
# Took 20m 55s
|
||||||
|
|
||||||
|
#FROM node:12
|
||||||
|
#
|
||||||
|
#RUN apt-get update \
|
||||||
|
# && apt-get install -qq build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev
|
||||||
|
#
|
||||||
|
#RUN mkdir -p /opt/node/js \
|
||||||
|
# && cd /opt/node \
|
||||||
|
# && npm i canvas
|
||||||
|
#
|
||||||
|
#WORKDIR /opt/node/js
|
||||||
|
#
|
||||||
|
#ENTRYPOINT ["node"]
|
||||||
|
|
||||||
|
###############
|
||||||
|
# Solution #2 #
|
||||||
|
###############
|
||||||
|
# https://github.com/Automattic/node-canvas/issues/729#issuecomment-352991456
|
||||||
|
# Took 22m 50s
|
||||||
|
|
||||||
|
#FROM ubuntu:xenial
|
||||||
|
#
|
||||||
|
#RUN apt-get update && apt-get install -y \
|
||||||
|
# curl \
|
||||||
|
# git
|
||||||
|
#
|
||||||
|
#RUN curl -sL https://deb.nodesource.com/setup_8.x | bash - \
|
||||||
|
# && curl -sL https://deb.nodesource.com/setup_8.x | bash - \
|
||||||
|
# && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
|
||||||
|
# && echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
|
||||||
|
#
|
||||||
|
#RUN apt-get update && apt-get install -y \
|
||||||
|
# nodejs \
|
||||||
|
# yarn \
|
||||||
|
# libcairo2-dev \
|
||||||
|
# libjpeg-dev \
|
||||||
|
# libpango1.0-dev \
|
||||||
|
# libgif-dev \
|
||||||
|
# libpng-dev \
|
||||||
|
# build-essential \
|
||||||
|
# g++
|
||||||
|
|
||||||
|
###############
|
||||||
|
# Solution #3 #
|
||||||
|
###############
|
||||||
|
# https://github.com/Automattic/node-canvas/issues/866#issuecomment-330001221
|
||||||
|
# Took 7m 29s
|
||||||
|
|
||||||
|
FROM node:10.16.0-alpine
|
||||||
|
FROM mhart/alpine-node:8.5.0
|
||||||
|
|
||||||
|
RUN apk add --no-cache \
|
||||||
|
build-base \
|
||||||
|
g++ \
|
||||||
|
cairo-dev \
|
||||||
|
jpeg-dev \
|
||||||
|
pango-dev \
|
||||||
|
bash \
|
||||||
|
imagemagick
|
||||||
|
|
||||||
|
# The rest of the commands to execute
|
||||||
|
|
||||||
COPY . .
|
COPY . .
|
||||||
|
|
||||||
|
|
|
@ -43,6 +43,9 @@
|
||||||
"tsc-watch": "^4.2.9",
|
"tsc-watch": "^4.2.9",
|
||||||
"typescript": "^3.9.7"
|
"typescript": "^3.9.7"
|
||||||
},
|
},
|
||||||
|
"optionalDependencies": {
|
||||||
|
"fsevents": "^2.1.2"
|
||||||
|
},
|
||||||
"author": "Keanu Timmermans",
|
"author": "Keanu Timmermans",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
|
|
|
@ -139,12 +139,16 @@ export interface GenericJSON {
|
||||||
[key: string]: any;
|
[key: string]: any;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// In order to define a file to write to while also not:
|
||||||
|
// - Using the delete operator (which doesn't work on properties which cannot be undefined)
|
||||||
|
// - Assigning it first then using Object.defineProperty (which raises a flag on CodeQL)
|
||||||
|
// A non-null assertion is used on the class property to say that it'll definitely be assigned.
|
||||||
export abstract class GenericStructure {
|
export abstract class GenericStructure {
|
||||||
private __meta__ = "generic";
|
private __meta__!: string;
|
||||||
|
|
||||||
constructor(tag?: string) {
|
constructor(tag?: string) {
|
||||||
this.__meta__ = tag || this.__meta__;
|
|
||||||
Object.defineProperty(this, "__meta__", {
|
Object.defineProperty(this, "__meta__", {
|
||||||
|
value: tag || "generic",
|
||||||
enumerable: false
|
enumerable: false
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue