Test node-action

This commit is contained in:
Matthew Sevey 2022-04-07 16:38:26 -04:00
commit 112ec3d78f
No known key found for this signature in database
GPG Key ID: 9ADDD344F13057F6
19 changed files with 135 additions and 107 deletions

View File

@ -1,32 +0,0 @@
# Define action name, description, and inputs
name: "JS Lint"
description: "Lint code with Prettier and eslint"
inputs:
working-directory:
required: false
description: "Working directory"
default: "."
# Define action steps
runs:
using: "composite"
steps:
- uses: actions/setup-node@v3
with:
node-version: 16.x
- run: |
yarn
shell: bash
working-directory: ${{ inputs.working-directory }}
- run: |
yarn prettier --check .
shell: bash
working-directory: ${{ inputs.working-directory }}
- if: inputs.working-directory == 'packages/dashboard'
run: yarn next lint
shell: bash
working-directory: ${{ inputs.working-directory }}
- if: inputs.working-directory == 'packages/dashboard-v2'
run: yarn lint
shell: bash
working-directory: ${{ inputs.working-directory }}

22
.github/actions/node-action/action.yml vendored Normal file
View File

@ -0,0 +1,22 @@
# Define action name, description, and inputs
name: "Node Action"
description: "Execute a node action"
inputs:
working-directory:
required: false
description: "Working directory"
default: "."
node-action:
required: true
description: "The action to be run"
# Define action steps
runs:
using: "composite"
steps:
- uses: actions/setup-node@v3
with:
node-version: 16.x
- run: $inputs.node-action
shell: bash
working-directory: ${{ inputs.working-directory }}

View File

@ -1,17 +0,0 @@
# Define action name, description, and inputs
name: "Python Black Lint"
description: "Lint python code with black"
# Define action steps
runs:
using: "composite"
steps:
- uses: actions/setup-python@v2
with:
python-version: "3.x"
architecture: x64
- run: pip install black
shell: bash
- run: black --check .
shell: bash

View File

@ -1,22 +0,0 @@
# Define action name, description, and inputs
name: "Python Flake8 Lint"
description: "Lint python code with flake8"
# Define action steps
runs:
using: "composite"
steps:
- uses: actions/setup-python@v2
with:
python-version: "3.x"
architecture: x64
- run: pip install flake8
shell: bash
# E203: https://www.flake8rules.com/rules/E203.html - Whitespace before ':'
# E501: https://www.flake8rules.com/rules/E501.html - Line too long
# W503: https://www.flake8rules.com/rules/W503.html - Line break occurred before a binary operator
# W605: https://www.flake8rules.com/rules/W605.html - Invalid escape sequence
# E722: https://www.flake8rules.com/rules/E722.html - Do not use bare except, specify exception instead
- run: flake8 --max-line-length 88 --ignore E203,E501,W503,W605,E722
shell: bash

View File

@ -47,8 +47,8 @@ jobs:
packages/health-check/Dockerfile: packages/health-check/Dockerfile packages/health-check/Dockerfile: packages/health-check/Dockerfile
packages/website/Dockerfile: packages/website/Dockerfile packages/website/Dockerfile: packages/website/Dockerfile
# Run the js lint if there are changes to any of the js packages # Run the prettier lint if there are changes to any of the js packages
js-lint: prettier:
needs: js-changes needs: js-changes
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
@ -58,10 +58,33 @@ jobs:
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- name: Run JS-Lint Action - name: Run JS-Lint Action
uses: ./.github/actions/js-lint uses: SkynetLabs/.github/.github/actions/prettier@master
with: with:
working-directory: ${{ matrix.working-directory }} working-directory: ${{ matrix.working-directory }}
# Run the eslint if there were changes to the dashboard packages
eslint:
needs: js-changes
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
working-directory: ${{ fromJSON(needs.js-changes.outputs.packages) }}
steps:
- uses: actions/checkout@v3
- name: Run yarn next lint on packages/dashboard
uses: ./.github/actions/node-action
if: ${{ matrix.working-directory == packages/dashboard }}
with:
working-directory: ${{ matrix.working-directory }}
node-action: yarn next lint
- name: Run yarn lint on packages/dashboard-v2
uses: ./.github/actions/node-action
if: ${{ matrix.working-directory == packages/dashboard-v2 }}
with:
working-directory: ${{ matrix.working-directory }}
node-action: yarn lint
# Run the hadolint dockefile lint if there are changes to any of the # Run the hadolint dockefile lint if there are changes to any of the
# dockerfiles # dockerfiles
hadolint: hadolint:

View File

@ -75,3 +75,25 @@ services:
- 3000 - 3000
depends_on: depends_on:
- mongo - mongo
dashboard-v2:
build:
context: ./packages/dashboard-v2
dockerfile: Dockerfile
container_name: dashboard-v2
restart: unless-stopped
logging: *default-logging
env_file:
- .env
environment:
- GATSBY_PORTAL_DOMAIN=${PORTAL_DOMAIN}
volumes:
- ./docker/data/dashboard-v2/.cache:/usr/app/.cache
- ./docker/data/dashboard-v2/public:/usr/app/public
networks:
shared:
ipv4_address: 10.10.10.90
expose:
- 9000
depends_on:
- mongo

View File

@ -82,9 +82,11 @@ services:
- website - website
website: website:
build: # uncomment "build" and comment out "image" to build from sources
context: ./packages/website # build:
dockerfile: Dockerfile # context: https://github.com/SkynetLabs/skynet-webportal.git#master
# dockerfile: ./packages/website/Dockerfile
image: skynetlabs/website
container_name: website container_name: website
restart: unless-stopped restart: unless-stopped
logging: *default-logging logging: *default-logging
@ -118,9 +120,11 @@ services:
- 12037 - 12037
handshake-api: handshake-api:
build: # uncomment "build" and comment out "image" to build from sources
context: ./packages/handshake-api # build:
dockerfile: Dockerfile # context: https://github.com/SkynetLabs/skynet-webportal.git#master
# dockerfile: ./packages/handshake-api/Dockerfile
image: skynetlabs/handshake-api
container_name: handshake-api container_name: handshake-api
restart: unless-stopped restart: unless-stopped
logging: *default-logging logging: *default-logging
@ -140,9 +144,11 @@ services:
- handshake - handshake
dnslink-api: dnslink-api:
build: # uncomment "build" and comment out "image" to build from sources
context: ./packages/dnslink-api # build:
dockerfile: Dockerfile # context: https://github.com/SkynetLabs/skynet-webportal.git#master
# dockerfile: ./packages/dnslink-api/Dockerfile
image: skynetlabs/dnslink-api
container_name: dnslink-api container_name: dnslink-api
restart: unless-stopped restart: unless-stopped
logging: *default-logging logging: *default-logging
@ -153,9 +159,11 @@ services:
- 3100 - 3100
health-check: health-check:
build: # uncomment "build" and comment out "image" to build from sources
context: ./packages/health-check # build:
dockerfile: Dockerfile # context: https://github.com/SkynetLabs/skynet-webportal.git#master
# dockerfile: ./packages/health-check/Dockerfile
image: skynetlabs/health-check
container_name: health-check container_name: health-check
restart: unless-stopped restart: unless-stopped
logging: *default-logging logging: *default-logging

View File

@ -241,8 +241,8 @@ location /skynet/tus {
limit_conn upload_conn 5; limit_conn upload_conn 5;
limit_conn upload_conn_rl 1; limit_conn upload_conn_rl 1;
# TUS chunks size is 40M + leaving 10M of breathing room # Do not limit body size in nginx, skyd will reject early on too large upload
client_max_body_size 50M; client_max_body_size 0;
# Those timeouts need to be elevated since skyd can stall reading # Those timeouts need to be elevated since skyd can stall reading
# data for a while when overloaded which would terminate connection # data for a while when overloaded which would terminate connection

View File

@ -0,0 +1,14 @@
FROM node:16.14.2-alpine
WORKDIR /usr/app
COPY package.json yarn.lock ./
RUN yarn --frozen-lockfile
COPY static ./static
COPY src ./src
COPY gatsby*.js ./
COPY postcss.config.js tailwind.config.js ./
CMD ["sh", "-c", "yarn build && yarn serve --host 0.0.0.0 -p 9000"]

View File

@ -18,7 +18,7 @@ module.exports = {
resolve: "gatsby-source-filesystem", resolve: "gatsby-source-filesystem",
options: { options: {
name: "images", name: "images",
path: "./src/images/", path: "./static/images/",
}, },
__key: "images", __key: "images",
}, },

View File

@ -17,7 +17,6 @@ export default function useUpgradeRedirect() {
if (isDataLoaded) { if (isDataLoaded) {
if (settings.isSubscriptionRequired && !hasPaidSubscription) { if (settings.isSubscriptionRequired && !hasPaidSubscription) {
console.log("redirecting", user, settings);
navigate("/upgrade"); navigate("/upgrade");
} else { } else {
setVerifyingSubscription(false); setVerifyingSubscription(false);

View File

@ -5,7 +5,7 @@ import { SWRConfig } from "swr";
import { authenticatedOnly } from "../lib/swrConfig"; import { authenticatedOnly } from "../lib/swrConfig";
import { PageContainer } from "../components/PageContainer"; import { PageContainer } from "../components/PageContainer";
import { NavBar } from "../components/Navbar"; import { NavBar } from "../components/NavBar";
import { Footer } from "../components/Footer"; import { Footer } from "../components/Footer";
import { UserProvider, useUser } from "../contexts/user"; import { UserProvider, useUser } from "../contexts/user";
import { FullScreenLoadingIndicator } from "../components/LoadingIndicator"; import { FullScreenLoadingIndicator } from "../components/LoadingIndicator";

View File

@ -6,7 +6,7 @@ import { SWRConfig } from "swr";
import { authenticatedOnly } from "../lib/swrConfig"; import { authenticatedOnly } from "../lib/swrConfig";
import { PageContainer } from "../components/PageContainer"; import { PageContainer } from "../components/PageContainer";
import { NavBar } from "../components/Navbar"; import { NavBar } from "../components/NavBar";
import { Footer } from "../components/Footer"; import { Footer } from "../components/Footer";
import { UserProvider, useUser } from "../contexts/user"; import { UserProvider, useUser } from "../contexts/user";
import { ContainerLoadingIndicator } from "../components/LoadingIndicator"; import { ContainerLoadingIndicator } from "../components/LoadingIndicator";

View File

@ -15,7 +15,7 @@ const FreePortalHeader = () => {
const { plans } = usePlans(); const { plans } = usePlans();
const freePlan = plans.find(({ price }) => price === 0); const freePlan = plans.find(({ price }) => price === 0);
const freeStorage = freePlan ? bytes(freePlan.limits?.storageLimit, { binary: true }) : null; const freeStorage = freePlan?.limits ? bytes(freePlan.limits?.storageLimit, { binary: true }) : null;
return ( return (
<div className="mt-4 mb-8 font-sans"> <div className="mt-4 mb-8 font-sans">

View File

@ -14090,7 +14090,7 @@ sjcl@^1.0.8:
resolved "https://registry.yarnpkg.com/sjcl/-/sjcl-1.0.8.tgz#f2ec8d7dc1f0f21b069b8914a41a8f236b0e252a" resolved "https://registry.yarnpkg.com/sjcl/-/sjcl-1.0.8.tgz#f2ec8d7dc1f0f21b069b8914a41a8f236b0e252a"
integrity sha512-LzIjEQ0S0DpIgnxMEayM1rq9aGwGRG4OnZhCdjx7glTaJtf4zRfpg87ImfjSJjoW9vKpagd82McDOwbRT5kQKQ== integrity sha512-LzIjEQ0S0DpIgnxMEayM1rq9aGwGRG4OnZhCdjx7glTaJtf4zRfpg87ImfjSJjoW9vKpagd82McDOwbRT5kQKQ==
skynet-js@^4.0.27-beta: skynet-js@4.0.27-beta:
version "4.0.27-beta" version "4.0.27-beta"
resolved "https://registry.yarnpkg.com/skynet-js/-/skynet-js-4.0.27-beta.tgz#4257bffda8757830656e0beb89d0d2e44da17e2f" resolved "https://registry.yarnpkg.com/skynet-js/-/skynet-js-4.0.27-beta.tgz#4257bffda8757830656e0beb89d0d2e44da17e2f"
integrity sha512-JV+QE/2l2YwVN1jQHVMFXgggwtBrPAnuyXySbLgafEJAde5dUwSEr5YRMV+3LvEgYkGhxSb74pyq0u0wrF2sUg== integrity sha512-JV+QE/2l2YwVN1jQHVMFXgggwtBrPAnuyXySbLgafEJAde5dUwSEr5YRMV+3LvEgYkGhxSb74pyq0u0wrF2sUg==

View File

@ -2,11 +2,13 @@ FROM node:16.14.2-alpine
WORKDIR /usr/app WORKDIR /usr/app
COPY package.json yarn.lock ./ COPY packages/dnslink-api/package.json \
packages/dnslink-api/yarn.lock \
./
RUN yarn --frozen-lockfile RUN yarn --frozen-lockfile
COPY src/* src/ COPY packages/dnslink-api/src/* src/
EXPOSE 3100 EXPOSE 3100
CMD ["node", "src/index.js"] CMD ["node", "src/index.js"]

View File

@ -2,11 +2,13 @@ FROM node:16.14.2-alpine
WORKDIR /usr/app WORKDIR /usr/app
COPY package.json yarn.lock ./ COPY packages/handshake-api/package.json \
packages/handshake-api/yarn.lock \
./
RUN yarn --frozen-lockfile RUN yarn --frozen-lockfile
COPY src/* src/ COPY packages/handshake-api/src/* src/
ENV HSD_NETWORK="main" ENV HSD_NETWORK="main"
ENV HSD_HOST="0.0.0.0" ENV HSD_HOST="0.0.0.0"

View File

@ -11,13 +11,15 @@ ENV PATH="/usr/app/bin:${PATH}"
RUN echo '*/5 * * * * source /etc/environment ; /usr/app/bin/cli run critical >> /proc/1/fd/1' >> /etc/crontabs/root && \ RUN echo '*/5 * * * * source /etc/environment ; /usr/app/bin/cli run critical >> /proc/1/fd/1' >> /etc/crontabs/root && \
echo '0 * * * * source /etc/environment ; /usr/app/bin/cli run extended >> /proc/1/fd/1' >> /etc/crontabs/root echo '0 * * * * source /etc/environment ; /usr/app/bin/cli run extended >> /proc/1/fd/1' >> /etc/crontabs/root
COPY package.json yarn.lock ./ COPY packages/health-check/package.json \
packages/health-check/yarn.lock \
./
RUN yarn --frozen-lockfile RUN yarn --frozen-lockfile
COPY src src COPY packages/health-check/src src
COPY cli cli COPY packages/health-check/cli cli
COPY bin bin COPY packages/health-check/bin bin
EXPOSE 3100 EXPOSE 3100
ENV NODE_ENV production ENV NODE_ENV production

View File

@ -4,16 +4,21 @@ RUN apk add --no-cache autoconf=2.71-r0 automake=1.16.4-r1 build-base=0.5-r2 lib
WORKDIR /usr/app WORKDIR /usr/app
COPY package.json yarn.lock ./ COPY packages/website/package.json \
packages/website/yarn.lock \
./
ENV GATSBY_TELEMETRY_DISABLED 1 ENV GATSBY_TELEMETRY_DISABLED 1
ENV CYPRESS_INSTALL_BINARY 0 ENV CYPRESS_INSTALL_BINARY 0
RUN yarn --frozen-lockfile RUN yarn --frozen-lockfile
COPY data ./data COPY packages/website/data ./data
COPY src ./src COPY packages/website/src ./src
COPY static ./static COPY packages/website/static ./static
COPY gatsby-browser.js gatsby-config.js gatsby-node.js gatsby-ssr.js postcss.config.js tailwind.config.js ./ COPY packages/website/gatsby-*.js \
packages/website/postcss.config.js \
packages/website/tailwind.config.js \
./
RUN yarn build RUN yarn build