Fixed GitHub Actions and addressed CodeQL issues

This commit is contained in:
WatDuhHekBro 2021-04-12 09:02:19 -05:00
parent 3cd05cd48c
commit 6361b83c05
4 changed files with 80 additions and 6 deletions

View file

@ -3,7 +3,6 @@ on:
push:
branches:
- typescript
- docker
jobs:
analyze:
@ -16,9 +15,12 @@ jobs:
fetch-depth: 2
- name: Setup Node.JS
uses: actions/setup-node@v2-beta
uses: actions/setup-node@v2
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
- name: Build codebase

View file

@ -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 . .

View file

@ -43,6 +43,9 @@
"tsc-watch": "^4.2.9",
"typescript": "^3.9.7"
},
"optionalDependencies": {
"fsevents": "^2.1.2"
},
"author": "Keanu Timmermans",
"license": "MIT",
"keywords": [

View file

@ -139,12 +139,16 @@ export interface GenericJSON {
[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 {
private __meta__ = "generic";
private __meta__!: string;
constructor(tag?: string) {
this.__meta__ = tag || this.__meta__;
Object.defineProperty(this, "__meta__", {
value: tag || "generic",
enumerable: false
});
}