Skip to content

Commit 29168f5

Browse files
First commit - imported from platformatic
Signed-off-by: marcopiraccini <marco.piraccini@gmail.com>
0 parents  commit 29168f5

File tree

307 files changed

+34370
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

307 files changed

+34370
-0
lines changed

.github/dco.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
allowRemediationCommits:
2+
individual: true
3+
thirdParty: true
4+
require:
5+
members: false

.github/workflows/ci.yml

Lines changed: 203 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,203 @@
1+
name: run tests
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
paths-ignore:
8+
- 'docs/**'
9+
- '**.md'
10+
pull_request:
11+
paths-ignore:
12+
- 'docs/**'
13+
- '**.md'
14+
workflow_dispatch:
15+
inputs:
16+
job:
17+
description: 'Run a single job'
18+
required: false
19+
default: ''
20+
21+
# This allows a subsequently queued workflow run to interrupt previous runs
22+
concurrency:
23+
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
24+
cancel-in-progress: true
25+
26+
env:
27+
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
28+
29+
jobs:
30+
setup:
31+
name: 'setup - ${{ matrix.label }}'
32+
runs-on: ${{matrix.os}}
33+
timeout-minutes: 30
34+
strategy:
35+
matrix:
36+
include:
37+
- label: Linux
38+
os: ubuntu-24.04
39+
- label: Win
40+
os: windows-2025
41+
steps:
42+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
43+
- uses: pnpm/action-setup@v4.1.0
44+
- uses: actions/setup-node@v4
45+
with:
46+
node: 22.18.0
47+
cache: 'pnpm'
48+
- uses: 'nick-fields/retry@v3.0.2'
49+
with:
50+
max_attempts: 10
51+
timeout_minutes: 15
52+
retry_on: error
53+
command: pnpm fetch --ignore-scripts
54+
55+
dependency-check:
56+
name: 'dependency-check - ${{ matrix.label }}'
57+
needs: setup
58+
if: ${{ !inputs.job || inputs.job == 'dependency-check' }}
59+
runs-on: ${{ matrix.os }}
60+
timeout-minutes: 30
61+
strategy:
62+
matrix:
63+
include:
64+
- label: Linux - 22.x
65+
node: 22.18.0
66+
os: ubuntu-24.04
67+
- label: Linux - 24.x
68+
node: 24.5.0
69+
os: ubuntu-24.04
70+
- label: Win - 22.x
71+
node: 22.18.0
72+
os: windows-2025
73+
- label: Win - 24.x
74+
node: 24.5.0
75+
os: windows-2025
76+
steps:
77+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
78+
- uses: pnpm/action-setup@v4.1.0
79+
- uses: actions/setup-node@v4
80+
with:
81+
node-version: ${{ matrix.node }}
82+
cache: 'pnpm'
83+
- name: pnpm install
84+
id: install
85+
run: |
86+
pnpm install --production --frozen-lockfile 2>&1 | tee out
87+
echo "pnpmoutput<<EOF" >> $GITHUB_OUTPUT
88+
cat out >> $GITHUB_OUTPUT
89+
echo "EOF" >> $GITHUB_OUTPUT
90+
- name: CLI must load
91+
run: cd packages/massimo-cli && node index.js --help
92+
- name: Circular Dependency
93+
if: contains(steps.install.outputs.pnpmoutput, 'cyclic')
94+
run: exit 1
95+
96+
massimo:
97+
name: 'massimo - ${{ matrix.label }}'
98+
needs: setup
99+
if: ${{ !inputs.job || inputs.job == 'massimo' }}
100+
runs-on: ${{ matrix.os }}
101+
timeout-minutes: 30
102+
strategy:
103+
matrix:
104+
include:
105+
- label: Linux - 22.x
106+
node: 22.18.0
107+
os: ubuntu-24.04
108+
- label: Linux - 24.x
109+
node: 24.5.0
110+
os: ubuntu-24.04
111+
- label: Win - 22.x
112+
node: 22.18.0
113+
os: windows-2025
114+
- label: Win - 24.x
115+
node: 24.5.0
116+
os: windows-2025
117+
steps:
118+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
119+
- uses: pnpm/action-setup@v4.1.0
120+
- uses: actions/setup-node@v4
121+
with:
122+
node-version: ${{ matrix.node }}
123+
cache: 'pnpm'
124+
- uses: 'nick-fields/retry@v3.0.2'
125+
with:
126+
max_attempts: 10
127+
timeout_minutes: 15
128+
retry_on: error
129+
command: pnpm install --frozen-lockfile
130+
- name: Run massimo package test suite
131+
run: cd packages/massimo && pnpm test && pnpm run lint
132+
133+
massimo-cli:
134+
name: 'massimo-cli - ${{ matrix.label }}'
135+
needs: setup
136+
if: ${{ !inputs.job || inputs.job == 'massimo-cli' }}
137+
runs-on: ${{ matrix.os }}
138+
timeout-minutes: 30
139+
strategy:
140+
matrix:
141+
include:
142+
- label: Linux - 22.x
143+
node: 22.18.0
144+
os: ubuntu-24.04
145+
- label: Linux - 24.x
146+
node: 24.5.0
147+
os: ubuntu-24.04
148+
- label: Win - 22.x
149+
node: 22.18.0
150+
os: windows-2025
151+
- label: Win - 24.x
152+
node: 24.5.0
153+
os: windows-2025
154+
steps:
155+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
156+
- uses: pnpm/action-setup@v4.1.0
157+
- uses: actions/setup-node@v4
158+
with:
159+
node-version: ${{ matrix.node }}
160+
cache: 'pnpm'
161+
- uses: 'nick-fields/retry@v3.0.2'
162+
with:
163+
max_attempts: 10
164+
timeout_minutes: 15
165+
retry_on: error
166+
command: pnpm install --frozen-lockfile
167+
- name: Run massimo-cli package test suite
168+
run: cd packages/massimo-cli && pnpm test && pnpm run lint
169+
170+
massimo-cli-e2e:
171+
name: 'massimo-cli-e2e - ${{ matrix.label }}'
172+
needs: setup
173+
if: ${{ !inputs.job || inputs.job == 'massimo-cli-e2e' }}
174+
runs-on: ${{ matrix.os }}
175+
timeout-minutes: 30
176+
strategy:
177+
matrix:
178+
include:
179+
- label: Linux - 22.x
180+
node: 22.18.0
181+
os: ubuntu-24.04
182+
- label: Linux - 24.x
183+
node: 24.5.0
184+
os: ubuntu-24.04
185+
steps:
186+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
187+
- uses: pnpm/action-setup@v4.1.0
188+
- uses: actions/setup-node@v4
189+
with:
190+
node-version: ${{ matrix.node }}
191+
cache: 'pnpm'
192+
- uses: 'nick-fields/retry@v3.0.2'
193+
with:
194+
max_attempts: 10
195+
timeout_minutes: 15
196+
retry_on: error
197+
command: pnpm install --frozen-lockfile
198+
- name: Start docker containers for testing
199+
run: docker compose up -d postgresql
200+
- name: Install E2E Playwright browsers
201+
run: cd packages/massimo-cli && pnpm exec playwright install
202+
- name: Run massimo-cli package e2e test suite
203+
run: cd packages/massimo-cli && pnpm e2e:test

.gitignore

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
# Logs
2+
logs
3+
*.log
4+
npm-debug.log*
5+
yarn-debug.log*
6+
yarn-error.log*
7+
lerna-debug.log*
8+
9+
# Diagnostic reports (https://nodejs.org/api/report.html)
10+
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
11+
12+
# Runtime data
13+
pids
14+
*.pid
15+
*.seed
16+
*.pid.lock
17+
18+
# Directory for instrumented libs generated by jscoverage/JSCover
19+
lib-cov
20+
21+
# Coverage directory used by tools like istanbul
22+
coverage
23+
*.lcov
24+
packages/*/coverage
25+
26+
# nyc test coverage
27+
.nyc_output
28+
packages/*/.nyc_output
29+
30+
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
31+
.grunt
32+
33+
# Bower dependency directory (https://bower.io/)
34+
bower_components
35+
36+
# node-waf configuration
37+
.lock-wscript
38+
39+
# Compiled binary addons (https://nodejs.org/api/addons.html)
40+
build/Release
41+
42+
# Dependency directories
43+
node_modules/
44+
jspm_packages/
45+
46+
# Dependency lock file
47+
package-lock.json
48+
49+
# TypeScript v1 declaration files
50+
typings/
51+
52+
# TypeScript cache
53+
*.tsbuildinfo
54+
55+
# Optional npm cache directory
56+
.npm
57+
58+
# Optional eslint cache
59+
.eslintcache
60+
61+
# Microbundle cache
62+
.rpt2_cache/
63+
.rts2_cache_cjs/
64+
.rts2_cache_es/
65+
.rts2_cache_umd/
66+
67+
# Optional REPL history
68+
.node_repl_history
69+
70+
# Output of 'npm pack'
71+
*.tgz
72+
73+
# Yarn Integrity file
74+
.yarn-integrity
75+
76+
# dotenv environment variables file
77+
.env*
78+
!.env.sample
79+
80+
# parcel-bundler cache (https://parceljs.org/)
81+
.cache
82+
83+
# Next.js build output
84+
.next
85+
86+
# Nuxt.js build / generate output
87+
.nuxt
88+
dist
89+
90+
# Gatsby files
91+
.cache/
92+
# Comment in the public line in if your project uses Gatsby and *not* Next.js
93+
# https://nextjs.org/blog/next-9-1#public-directory-support
94+
# public
95+
96+
# vuepress build output
97+
.vuepress/dist
98+
99+
# Serverless directories
100+
.serverless/
101+
102+
# FuseBox cache
103+
.fusebox/
104+
105+
# DynamoDB Local files
106+
.dynamodb/
107+
108+
# TernJS port file
109+
.tern-port
110+
111+
packages/db/fixtures/sqlite/db
112+
packages/db/test/fixtures/sqlite/db
113+
114+
# IDE folders
115+
.vim
116+
.vscode
117+
.idea
118+
119+
*.sqlite
120+
121+
# CTAGS
122+
tags
123+
124+
# tmp filees for packages
125+
tmp/
126+
packages/service/test/tmp
127+
packages/cli/fixtures/sqlite/db
128+
packages/client-cli/test/tmp
129+
packages/db/test/fixtures/schema.lock
130+
packages/runtime/test/tmp
131+
132+
#OS Files
133+
.DS_Store
134+
135+
# frontend files
136+
.vite
137+
.next
138+
.astro
139+
.remix
140+
141+
# Claude Code
142+
.claude

.markdownlint-cli2.yaml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# See https://github.com/DavidAnson/markdownlint-cli2
2+
config:
3+
# Disable all rules by default.
4+
default: false
5+
6+
globs:
7+
- '**/*.md'
8+
9+
ignores:
10+
- 'node_modules/**'
11+
- '**/node_modules/**'
12+
- 'test/**/*.md'
13+
14+
fix: true
15+
noProgress: true

.npmignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
coverage
2+
.nyc_output
3+
.snapshots
4+
tmp/

.npmrc

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package-lock=true
2+
auto-install-peers=true
3+
strict-peer-dependencies=false
4+
child-concurrency=1
5+
resolution-mode=highest
6+
prefer-symlinked-executables=true
7+
node-linker=hoisted
8+
package-import-method=copy
9+
hoist=false

0 commit comments

Comments
 (0)