@factiii/stack 0.1.201 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +95 -403
- package/bin/stack +334 -334
- package/dist/cli/dev-sync.js +16 -16
- package/dist/plugins/addons/auth/index.d.ts.map +1 -1
- package/dist/plugins/addons/auth/index.js +31 -12
- package/dist/plugins/addons/auth/index.js.map +1 -1
- package/dist/plugins/addons/auth/scanfix/secrets.d.ts +3 -0
- package/dist/plugins/addons/auth/scanfix/secrets.d.ts.map +1 -1
- package/dist/plugins/addons/auth/scanfix/secrets.js +54 -19
- package/dist/plugins/addons/auth/scanfix/secrets.js.map +1 -1
- package/dist/plugins/addons/auth/scanfix/validate.d.ts +3 -0
- package/dist/plugins/addons/auth/scanfix/validate.d.ts.map +1 -1
- package/dist/plugins/addons/auth/scanfix/validate.js +37 -18
- package/dist/plugins/addons/auth/scanfix/validate.js.map +1 -1
- package/dist/plugins/addons/vercel/index.js +9 -9
- package/dist/plugins/addons/vercel/scanfix/config.js +10 -10
- package/dist/plugins/addons/vercel/scanfix/token.js +15 -15
- package/dist/plugins/approved.json +13 -13
- package/dist/plugins/pipelines/aws/index.js +12 -12
- package/dist/plugins/pipelines/aws/policies/bootstrap-policy.json +135 -135
- package/dist/plugins/pipelines/aws/prod.js +1 -1
- package/dist/plugins/pipelines/factiii/index.d.ts.map +1 -1
- package/dist/plugins/pipelines/factiii/index.js +2 -14
- package/dist/plugins/pipelines/factiii/index.js.map +1 -1
- package/dist/plugins/pipelines/factiii/prod.js +21 -21
- package/dist/plugins/pipelines/factiii/scanfix/port-convention.d.ts.map +1 -1
- package/dist/plugins/pipelines/factiii/scanfix/port-convention.js +2 -4
- package/dist/plugins/pipelines/factiii/scanfix/port-convention.js.map +1 -1
- package/dist/plugins/pipelines/factiii/staging.js +23 -23
- package/dist/plugins/pipelines/factiii/workflows/stack-ci.yml +75 -75
- package/dist/plugins/pipelines/factiii/workflows/stack-cicd-prod.yml +73 -73
- package/dist/plugins/servers/amazon-linux/index.js +16 -16
- package/dist/plugins/servers/mac/index.js +12 -12
- package/dist/plugins/servers/mac/staging.js +2 -2
- package/dist/plugins/servers/ubuntu/index.js +23 -23
- package/dist/plugins/servers/windows/index.js +15 -15
- package/dist/scanfix/commands/mac.d.ts.map +1 -1
- package/dist/scanfix/commands/mac.js +5 -4
- package/dist/scanfix/commands/mac.js.map +1 -1
- package/dist/scanfix/fixes/certbot.d.ts.map +1 -1
- package/dist/scanfix/fixes/certbot.js +4 -18
- package/dist/scanfix/fixes/certbot.js.map +1 -1
- package/dist/scanfix/fixes/docker.d.ts.map +1 -1
- package/dist/scanfix/fixes/docker.js +5 -14
- package/dist/scanfix/fixes/docker.js.map +1 -1
- package/dist/scanfix/ssl-cert-helper.d.ts.map +1 -1
- package/dist/scanfix/ssl-cert-helper.js +18 -4
- package/dist/scanfix/ssl-cert-helper.js.map +1 -1
- package/dist/scripts/generate-all.js +73 -73
- package/dist/utils/deployment-report.js +2 -2
- package/dist/utils/secret-prompts.js +34 -34
- package/dist/utils/ssh-helper.d.ts.map +1 -1
- package/dist/utils/ssh-helper.js +150 -142
- package/dist/utils/ssh-helper.js.map +1 -1
- package/dist/utils/template-generator.js +74 -74
- package/package.json +93 -114
- package/dist/plugins/pipelines/factiii/scanfix/docker.d.ts +0 -20
- package/dist/plugins/pipelines/factiii/scanfix/docker.d.ts.map +0 -1
- package/dist/plugins/pipelines/factiii/scanfix/docker.js +0 -131
- package/dist/plugins/pipelines/factiii/scanfix/docker.js.map +0 -1
|
@@ -146,27 +146,27 @@ async function ensureDockerRunning(envConfig, isOnServer) {
|
|
|
146
146
|
const checkCmd = 'export PATH="/opt/homebrew/bin:/usr/local/bin:$PATH" && docker info > /dev/null 2>&1 && echo "running" || echo "stopped"';
|
|
147
147
|
// Start Docker and wait up to 60 seconds for it to be ready
|
|
148
148
|
// Use headless binary start over SSH since `open -a Docker` requires a GUI session
|
|
149
|
-
const startCmd = `
|
|
150
|
-
export PATH="/opt/homebrew/bin:/usr/local/bin:$PATH" && \
|
|
151
|
-
if ! docker info > /dev/null 2>&1; then
|
|
152
|
-
echo "Starting Docker Desktop..." && \
|
|
153
|
-
if [ -n "$SSH_CONNECTION" ] || [ -n "$SSH_CLIENT" ] || [ -n "$SSH_TTY" ]; then
|
|
154
|
-
nohup /Applications/Docker.app/Contents/MacOS/Docker --unattended > /dev/null 2>&1 &
|
|
155
|
-
else
|
|
156
|
-
open -a Docker
|
|
157
|
-
fi && \
|
|
158
|
-
for i in {1..60}; do
|
|
159
|
-
sleep 1
|
|
160
|
-
if docker info > /dev/null 2>&1; then
|
|
161
|
-
echo "Docker is ready"
|
|
162
|
-
exit 0
|
|
163
|
-
fi
|
|
164
|
-
done
|
|
165
|
-
echo "Docker failed to start within 60 seconds"
|
|
166
|
-
exit 1
|
|
167
|
-
else
|
|
168
|
-
echo "Docker is already running"
|
|
169
|
-
fi
|
|
149
|
+
const startCmd = `
|
|
150
|
+
export PATH="/opt/homebrew/bin:/usr/local/bin:$PATH" && \
|
|
151
|
+
if ! docker info > /dev/null 2>&1; then
|
|
152
|
+
echo "Starting Docker Desktop..." && \
|
|
153
|
+
if [ -n "$SSH_CONNECTION" ] || [ -n "$SSH_CLIENT" ] || [ -n "$SSH_TTY" ]; then
|
|
154
|
+
nohup /Applications/Docker.app/Contents/MacOS/Docker --unattended > /dev/null 2>&1 &
|
|
155
|
+
else
|
|
156
|
+
open -a Docker
|
|
157
|
+
fi && \
|
|
158
|
+
for i in {1..60}; do
|
|
159
|
+
sleep 1
|
|
160
|
+
if docker info > /dev/null 2>&1; then
|
|
161
|
+
echo "Docker is ready"
|
|
162
|
+
exit 0
|
|
163
|
+
fi
|
|
164
|
+
done
|
|
165
|
+
echo "Docker failed to start within 60 seconds"
|
|
166
|
+
exit 1
|
|
167
|
+
else
|
|
168
|
+
echo "Docker is already running"
|
|
169
|
+
fi
|
|
170
170
|
`;
|
|
171
171
|
if (isOnServer) {
|
|
172
172
|
// We're on the server - run commands directly
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"port-convention.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/pipelines/factiii/scanfix/port-convention.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAiB,GAAG,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"port-convention.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/pipelines/factiii/scanfix/port-convention.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAiB,GAAG,EAAE,MAAM,4BAA4B,CAAC;AAuErE,eAAO,MAAM,mBAAmB,EAAE,GAAG,EA4OpC,CAAC"}
|
|
@@ -77,8 +77,6 @@ function isUrlKey(key) {
|
|
|
77
77
|
* Returns null if not a recognizable pattern.
|
|
78
78
|
*/
|
|
79
79
|
function fullPortToSlot(port) {
|
|
80
|
-
if (port === 3000 || port === 5000)
|
|
81
|
-
return 0;
|
|
82
80
|
if (port >= 3001 && port <= 3009)
|
|
83
81
|
return port - 3000;
|
|
84
82
|
if (port >= 5001 && port <= 5009)
|
|
@@ -144,7 +142,7 @@ exports.portConventionFixes = [
|
|
|
144
142
|
if (port) {
|
|
145
143
|
const num = parseInt(port, 10);
|
|
146
144
|
const slot = fullPortToSlot(num);
|
|
147
|
-
if (slot
|
|
145
|
+
if (slot) {
|
|
148
146
|
return '🔌 PORT=' + port + ' in .env.example should be slot number ' + slot + ' (not a full port)';
|
|
149
147
|
}
|
|
150
148
|
return '🔌 PORT=' + port + ' in .env.example should be a slot number (0-5), not a full port';
|
|
@@ -176,7 +174,7 @@ exports.portConventionFixes = [
|
|
|
176
174
|
return false;
|
|
177
175
|
const portVal = parseInt(vars.PORT ?? '', 10);
|
|
178
176
|
const slot = fullPortToSlot(portVal);
|
|
179
|
-
if (slot
|
|
177
|
+
if (!slot)
|
|
180
178
|
return false; // Can't auto-convert, needs manual
|
|
181
179
|
// Replace PORT value in the file
|
|
182
180
|
const content = fs.readFileSync(envPath, 'utf8');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"port-convention.js","sourceRoot":"","sources":["../../../../../src/plugins/pipelines/factiii/scanfix/port-convention.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"port-convention.js","sourceRoot":"","sources":["../../../../../src/plugins/pipelines/factiii/scanfix/port-convention.ts"],"names":[],"mappings":"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"}
|
|
@@ -90,27 +90,27 @@ async function ensureDockerRunning(envConfig, isOnServer) {
|
|
|
90
90
|
const checkCmd = 'export PATH="/opt/homebrew/bin:/usr/local/bin:$PATH" && docker info > /dev/null 2>&1 && echo "running" || echo "stopped"';
|
|
91
91
|
// Start Docker and wait up to 60 seconds for it to be ready
|
|
92
92
|
// Use headless binary start over SSH since `open -a Docker` requires a GUI session
|
|
93
|
-
const startCmd = `
|
|
94
|
-
export PATH="/opt/homebrew/bin:/usr/local/bin:$PATH" && \
|
|
95
|
-
if ! docker info > /dev/null 2>&1; then
|
|
96
|
-
echo "Starting Docker Desktop..." && \
|
|
97
|
-
if [ -n "$SSH_CONNECTION" ] || [ -n "$SSH_CLIENT" ] || [ -n "$SSH_TTY" ]; then
|
|
98
|
-
nohup /Applications/Docker.app/Contents/MacOS/Docker --unattended > /dev/null 2>&1 &
|
|
99
|
-
else
|
|
100
|
-
open -a Docker
|
|
101
|
-
fi && \
|
|
102
|
-
for i in {1..60}; do
|
|
103
|
-
sleep 1
|
|
104
|
-
if docker info > /dev/null 2>&1; then
|
|
105
|
-
echo "Docker is ready"
|
|
106
|
-
exit 0
|
|
107
|
-
fi
|
|
108
|
-
done
|
|
109
|
-
echo "Docker failed to start within 60 seconds"
|
|
110
|
-
exit 1
|
|
111
|
-
else
|
|
112
|
-
echo "Docker is already running"
|
|
113
|
-
fi
|
|
93
|
+
const startCmd = `
|
|
94
|
+
export PATH="/opt/homebrew/bin:/usr/local/bin:$PATH" && \
|
|
95
|
+
if ! docker info > /dev/null 2>&1; then
|
|
96
|
+
echo "Starting Docker Desktop..." && \
|
|
97
|
+
if [ -n "$SSH_CONNECTION" ] || [ -n "$SSH_CLIENT" ] || [ -n "$SSH_TTY" ]; then
|
|
98
|
+
nohup /Applications/Docker.app/Contents/MacOS/Docker --unattended > /dev/null 2>&1 &
|
|
99
|
+
else
|
|
100
|
+
open -a Docker
|
|
101
|
+
fi && \
|
|
102
|
+
for i in {1..60}; do
|
|
103
|
+
sleep 1
|
|
104
|
+
if docker info > /dev/null 2>&1; then
|
|
105
|
+
echo "Docker is ready"
|
|
106
|
+
exit 0
|
|
107
|
+
fi
|
|
108
|
+
done
|
|
109
|
+
echo "Docker failed to start within 60 seconds"
|
|
110
|
+
exit 1
|
|
111
|
+
else
|
|
112
|
+
echo "Docker is already running"
|
|
113
|
+
fi
|
|
114
114
|
`;
|
|
115
115
|
if (isOnServer) {
|
|
116
116
|
// We're on the server - run commands directly
|
|
@@ -225,8 +225,8 @@ async function buildStagingImage(config, envConfig) {
|
|
|
225
225
|
// Build Docker image explicitly with arm64 platform on remote staging server
|
|
226
226
|
console.log(` 🔨 Building Docker image (arm64) on staging server: ${imageTag}...`);
|
|
227
227
|
console.log(` 📍 Building on: ${envConfig.domain}`);
|
|
228
|
-
await sshExecCommand(envConfig, `export PATH="/opt/homebrew/bin:/usr/local/bin:$PATH" && \
|
|
229
|
-
cd ${repoDir} && \
|
|
228
|
+
await sshExecCommand(envConfig, `export PATH="/opt/homebrew/bin:/usr/local/bin:$PATH" && \
|
|
229
|
+
cd ${repoDir} && \
|
|
230
230
|
docker build --platform linux/arm64 -t ${imageTag} -f ${dockerfile} .`);
|
|
231
231
|
console.log(` ✅ Image built successfully on staging server: ${imageTag}`);
|
|
232
232
|
}
|
|
@@ -1,75 +1,75 @@
|
|
|
1
|
-
name: Stack CI
|
|
2
|
-
|
|
3
|
-
# Generated by @factiii/stack v{VERSION}
|
|
4
|
-
# Runs builds and tests on push/PR to main.
|
|
5
|
-
# No deployment - deploy via SSH from dev machine.
|
|
6
|
-
|
|
7
|
-
on:
|
|
8
|
-
push:
|
|
9
|
-
branches: [main]
|
|
10
|
-
pull_request:
|
|
11
|
-
branches: [main]
|
|
12
|
-
|
|
13
|
-
jobs:
|
|
14
|
-
ci:
|
|
15
|
-
runs-on: ubuntu-latest
|
|
16
|
-
env:
|
|
17
|
-
CI: true
|
|
18
|
-
ENV: test
|
|
19
|
-
NODE_ENV: test
|
|
20
|
-
DATABASE_URL: "postgresql://postgres:password@localhost:5440/factiii-test?connect_timeout=300"
|
|
21
|
-
TEST_DATABASE_URL: "postgresql://postgres:password@localhost:5440/factiii-test?connect_timeout=300"
|
|
22
|
-
TEST_ADMIN_IP: "::ffff:127.0.0.1"
|
|
23
|
-
SITE_URL: http://localhost:3000
|
|
24
|
-
ALLOWED_ORIGINS: http://localhost:3000,http://localhost:5001
|
|
25
|
-
ACCESS_TOKEN_SECRET: test-secret-key
|
|
26
|
-
GOOGLE_CLIENT_ID: test-google-id
|
|
27
|
-
APPLE_CLIENT_ID: com.factiii.test
|
|
28
|
-
NEXT_PUBLIC_SITE_URL: http://localhost:3000
|
|
29
|
-
NEXT_PUBLIC_API_URL: http://localhost:5001
|
|
30
|
-
|
|
31
|
-
steps:
|
|
32
|
-
- name: Checkout
|
|
33
|
-
uses: actions/checkout@v4
|
|
34
|
-
|
|
35
|
-
- name: Setup pnpm
|
|
36
|
-
uses: pnpm/action-setup@v4
|
|
37
|
-
|
|
38
|
-
- name: Setup Node.js
|
|
39
|
-
uses: actions/setup-node@v4
|
|
40
|
-
with:
|
|
41
|
-
node-version: '24'
|
|
42
|
-
cache: 'pnpm'
|
|
43
|
-
|
|
44
|
-
- name: Install dependencies
|
|
45
|
-
run: pnpm install
|
|
46
|
-
|
|
47
|
-
- name: Build server
|
|
48
|
-
run: pnpm build
|
|
49
|
-
working-directory: apps/server
|
|
50
|
-
|
|
51
|
-
- name: Build client
|
|
52
|
-
run: pnpm build
|
|
53
|
-
working-directory: client
|
|
54
|
-
if: hashFiles('client/package.json') != ''
|
|
55
|
-
|
|
56
|
-
- name: Setup Java (for Android)
|
|
57
|
-
uses: actions/setup-java@v4
|
|
58
|
-
with:
|
|
59
|
-
distribution: 'temurin'
|
|
60
|
-
java-version: '17'
|
|
61
|
-
if: hashFiles('apps/mobile/android/build.gradle') != ''
|
|
62
|
-
|
|
63
|
-
- name: Build Android
|
|
64
|
-
run: |
|
|
65
|
-
cd apps/mobile/android
|
|
66
|
-
./gradlew assembleRelease
|
|
67
|
-
if: hashFiles('apps/mobile/android/build.gradle') != ''
|
|
68
|
-
|
|
69
|
-
- name: Start Docker containers
|
|
70
|
-
run: |
|
|
71
|
-
chmod +x ./start.sh
|
|
72
|
-
./start.sh
|
|
73
|
-
|
|
74
|
-
- name: Run tests
|
|
75
|
-
run: pnpm test:server
|
|
1
|
+
name: Stack CI
|
|
2
|
+
|
|
3
|
+
# Generated by @factiii/stack v{VERSION}
|
|
4
|
+
# Runs builds and tests on push/PR to main.
|
|
5
|
+
# No deployment - deploy via SSH from dev machine.
|
|
6
|
+
|
|
7
|
+
on:
|
|
8
|
+
push:
|
|
9
|
+
branches: [main]
|
|
10
|
+
pull_request:
|
|
11
|
+
branches: [main]
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
ci:
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
env:
|
|
17
|
+
CI: true
|
|
18
|
+
ENV: test
|
|
19
|
+
NODE_ENV: test
|
|
20
|
+
DATABASE_URL: "postgresql://postgres:password@localhost:5440/factiii-test?connect_timeout=300"
|
|
21
|
+
TEST_DATABASE_URL: "postgresql://postgres:password@localhost:5440/factiii-test?connect_timeout=300"
|
|
22
|
+
TEST_ADMIN_IP: "::ffff:127.0.0.1"
|
|
23
|
+
SITE_URL: http://localhost:3000
|
|
24
|
+
ALLOWED_ORIGINS: http://localhost:3000,http://localhost:5001
|
|
25
|
+
ACCESS_TOKEN_SECRET: test-secret-key
|
|
26
|
+
GOOGLE_CLIENT_ID: test-google-id
|
|
27
|
+
APPLE_CLIENT_ID: com.factiii.test
|
|
28
|
+
NEXT_PUBLIC_SITE_URL: http://localhost:3000
|
|
29
|
+
NEXT_PUBLIC_API_URL: http://localhost:5001
|
|
30
|
+
|
|
31
|
+
steps:
|
|
32
|
+
- name: Checkout
|
|
33
|
+
uses: actions/checkout@v4
|
|
34
|
+
|
|
35
|
+
- name: Setup pnpm
|
|
36
|
+
uses: pnpm/action-setup@v4
|
|
37
|
+
|
|
38
|
+
- name: Setup Node.js
|
|
39
|
+
uses: actions/setup-node@v4
|
|
40
|
+
with:
|
|
41
|
+
node-version: '24'
|
|
42
|
+
cache: 'pnpm'
|
|
43
|
+
|
|
44
|
+
- name: Install dependencies
|
|
45
|
+
run: pnpm install
|
|
46
|
+
|
|
47
|
+
- name: Build server
|
|
48
|
+
run: pnpm build
|
|
49
|
+
working-directory: apps/server
|
|
50
|
+
|
|
51
|
+
- name: Build client
|
|
52
|
+
run: pnpm build
|
|
53
|
+
working-directory: client
|
|
54
|
+
if: hashFiles('client/package.json') != ''
|
|
55
|
+
|
|
56
|
+
- name: Setup Java (for Android)
|
|
57
|
+
uses: actions/setup-java@v4
|
|
58
|
+
with:
|
|
59
|
+
distribution: 'temurin'
|
|
60
|
+
java-version: '17'
|
|
61
|
+
if: hashFiles('apps/mobile/android/build.gradle') != ''
|
|
62
|
+
|
|
63
|
+
- name: Build Android
|
|
64
|
+
run: |
|
|
65
|
+
cd apps/mobile/android
|
|
66
|
+
./gradlew assembleRelease
|
|
67
|
+
if: hashFiles('apps/mobile/android/build.gradle') != ''
|
|
68
|
+
|
|
69
|
+
- name: Start Docker containers
|
|
70
|
+
run: |
|
|
71
|
+
chmod +x ./start.sh
|
|
72
|
+
./start.sh
|
|
73
|
+
|
|
74
|
+
- name: Run tests
|
|
75
|
+
run: pnpm test:server
|
|
@@ -1,73 +1,73 @@
|
|
|
1
|
-
name: Stack CI Prod
|
|
2
|
-
|
|
3
|
-
# Generated by @factiii/stack v{VERSION}
|
|
4
|
-
# Runs builds and tests on push to prod branch.
|
|
5
|
-
# No deployment - deploy via SSH from dev machine.
|
|
6
|
-
|
|
7
|
-
on:
|
|
8
|
-
push:
|
|
9
|
-
branches: [prod]
|
|
10
|
-
|
|
11
|
-
jobs:
|
|
12
|
-
ci:
|
|
13
|
-
runs-on: ubuntu-latest
|
|
14
|
-
env:
|
|
15
|
-
CI: true
|
|
16
|
-
ENV: test
|
|
17
|
-
NODE_ENV: test
|
|
18
|
-
DATABASE_URL: "postgresql://postgres:password@localhost:5440/factiii-test?connect_timeout=300"
|
|
19
|
-
TEST_DATABASE_URL: "postgresql://postgres:password@localhost:5440/factiii-test?connect_timeout=300"
|
|
20
|
-
TEST_ADMIN_IP: "::ffff:127.0.0.1"
|
|
21
|
-
SITE_URL: http://localhost:3000
|
|
22
|
-
ALLOWED_ORIGINS: http://localhost:3000,http://localhost:5001
|
|
23
|
-
ACCESS_TOKEN_SECRET: test-secret-key
|
|
24
|
-
GOOGLE_CLIENT_ID: test-google-id
|
|
25
|
-
APPLE_CLIENT_ID: com.factiii.test
|
|
26
|
-
NEXT_PUBLIC_SITE_URL: http://localhost:3000
|
|
27
|
-
NEXT_PUBLIC_API_URL: http://localhost:5001
|
|
28
|
-
|
|
29
|
-
steps:
|
|
30
|
-
- name: Checkout
|
|
31
|
-
uses: actions/checkout@v4
|
|
32
|
-
|
|
33
|
-
- name: Setup pnpm
|
|
34
|
-
uses: pnpm/action-setup@v4
|
|
35
|
-
|
|
36
|
-
- name: Setup Node.js
|
|
37
|
-
uses: actions/setup-node@v4
|
|
38
|
-
with:
|
|
39
|
-
node-version: '24'
|
|
40
|
-
cache: 'pnpm'
|
|
41
|
-
|
|
42
|
-
- name: Install dependencies
|
|
43
|
-
run: pnpm install
|
|
44
|
-
|
|
45
|
-
- name: Build server
|
|
46
|
-
run: pnpm build
|
|
47
|
-
working-directory: apps/server
|
|
48
|
-
|
|
49
|
-
- name: Build client
|
|
50
|
-
run: pnpm build
|
|
51
|
-
working-directory: client
|
|
52
|
-
if: hashFiles('client/package.json') != ''
|
|
53
|
-
|
|
54
|
-
- name: Setup Java (for Android)
|
|
55
|
-
uses: actions/setup-java@v4
|
|
56
|
-
with:
|
|
57
|
-
distribution: 'temurin'
|
|
58
|
-
java-version: '17'
|
|
59
|
-
if: hashFiles('apps/mobile/android/build.gradle') != ''
|
|
60
|
-
|
|
61
|
-
- name: Build Android
|
|
62
|
-
run: |
|
|
63
|
-
cd apps/mobile/android
|
|
64
|
-
./gradlew assembleRelease
|
|
65
|
-
if: hashFiles('apps/mobile/android/build.gradle') != ''
|
|
66
|
-
|
|
67
|
-
- name: Start Docker containers
|
|
68
|
-
run: |
|
|
69
|
-
chmod +x ./start.sh
|
|
70
|
-
./start.sh
|
|
71
|
-
|
|
72
|
-
- name: Run tests
|
|
73
|
-
run: pnpm test:server
|
|
1
|
+
name: Stack CI Prod
|
|
2
|
+
|
|
3
|
+
# Generated by @factiii/stack v{VERSION}
|
|
4
|
+
# Runs builds and tests on push to prod branch.
|
|
5
|
+
# No deployment - deploy via SSH from dev machine.
|
|
6
|
+
|
|
7
|
+
on:
|
|
8
|
+
push:
|
|
9
|
+
branches: [prod]
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
ci:
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
env:
|
|
15
|
+
CI: true
|
|
16
|
+
ENV: test
|
|
17
|
+
NODE_ENV: test
|
|
18
|
+
DATABASE_URL: "postgresql://postgres:password@localhost:5440/factiii-test?connect_timeout=300"
|
|
19
|
+
TEST_DATABASE_URL: "postgresql://postgres:password@localhost:5440/factiii-test?connect_timeout=300"
|
|
20
|
+
TEST_ADMIN_IP: "::ffff:127.0.0.1"
|
|
21
|
+
SITE_URL: http://localhost:3000
|
|
22
|
+
ALLOWED_ORIGINS: http://localhost:3000,http://localhost:5001
|
|
23
|
+
ACCESS_TOKEN_SECRET: test-secret-key
|
|
24
|
+
GOOGLE_CLIENT_ID: test-google-id
|
|
25
|
+
APPLE_CLIENT_ID: com.factiii.test
|
|
26
|
+
NEXT_PUBLIC_SITE_URL: http://localhost:3000
|
|
27
|
+
NEXT_PUBLIC_API_URL: http://localhost:5001
|
|
28
|
+
|
|
29
|
+
steps:
|
|
30
|
+
- name: Checkout
|
|
31
|
+
uses: actions/checkout@v4
|
|
32
|
+
|
|
33
|
+
- name: Setup pnpm
|
|
34
|
+
uses: pnpm/action-setup@v4
|
|
35
|
+
|
|
36
|
+
- name: Setup Node.js
|
|
37
|
+
uses: actions/setup-node@v4
|
|
38
|
+
with:
|
|
39
|
+
node-version: '24'
|
|
40
|
+
cache: 'pnpm'
|
|
41
|
+
|
|
42
|
+
- name: Install dependencies
|
|
43
|
+
run: pnpm install
|
|
44
|
+
|
|
45
|
+
- name: Build server
|
|
46
|
+
run: pnpm build
|
|
47
|
+
working-directory: apps/server
|
|
48
|
+
|
|
49
|
+
- name: Build client
|
|
50
|
+
run: pnpm build
|
|
51
|
+
working-directory: client
|
|
52
|
+
if: hashFiles('client/package.json') != ''
|
|
53
|
+
|
|
54
|
+
- name: Setup Java (for Android)
|
|
55
|
+
uses: actions/setup-java@v4
|
|
56
|
+
with:
|
|
57
|
+
distribution: 'temurin'
|
|
58
|
+
java-version: '17'
|
|
59
|
+
if: hashFiles('apps/mobile/android/build.gradle') != ''
|
|
60
|
+
|
|
61
|
+
- name: Build Android
|
|
62
|
+
run: |
|
|
63
|
+
cd apps/mobile/android
|
|
64
|
+
./gradlew assembleRelease
|
|
65
|
+
if: hashFiles('apps/mobile/android/build.gradle') != ''
|
|
66
|
+
|
|
67
|
+
- name: Start Docker containers
|
|
68
|
+
run: |
|
|
69
|
+
chmod +x ./start.sh
|
|
70
|
+
./start.sh
|
|
71
|
+
|
|
72
|
+
- name: Run tests
|
|
73
|
+
run: pnpm test:server
|
|
@@ -99,13 +99,13 @@ class AmazonLinuxPlugin {
|
|
|
99
99
|
return false;
|
|
100
100
|
}
|
|
101
101
|
static helpText = {
|
|
102
|
-
SSH: `
|
|
103
|
-
SSH private key for accessing the Amazon Linux server.
|
|
104
|
-
|
|
105
|
-
For AWS EC2:
|
|
106
|
-
- Use the key pair you created when launching the instance
|
|
107
|
-
- Download the .pem file from AWS Console
|
|
108
|
-
|
|
102
|
+
SSH: `
|
|
103
|
+
SSH private key for accessing the Amazon Linux server.
|
|
104
|
+
|
|
105
|
+
For AWS EC2:
|
|
106
|
+
- Use the key pair you created when launching the instance
|
|
107
|
+
- Download the .pem file from AWS Console
|
|
108
|
+
|
|
109
109
|
Default user for Amazon Linux: ec2-user`,
|
|
110
110
|
};
|
|
111
111
|
// ============================================================
|
|
@@ -152,21 +152,21 @@ class AmazonLinuxPlugin {
|
|
|
152
152
|
* Get the command to install Docker on Amazon Linux 2023
|
|
153
153
|
*/
|
|
154
154
|
static getDockerInstallCommand() {
|
|
155
|
-
return `
|
|
156
|
-
sudo dnf update -y && \
|
|
157
|
-
sudo dnf install -y docker && \
|
|
158
|
-
sudo systemctl start docker && \
|
|
159
|
-
sudo systemctl enable docker && \
|
|
160
|
-
sudo usermod -aG docker $USER
|
|
155
|
+
return `
|
|
156
|
+
sudo dnf update -y && \
|
|
157
|
+
sudo dnf install -y docker && \
|
|
158
|
+
sudo systemctl start docker && \
|
|
159
|
+
sudo systemctl enable docker && \
|
|
160
|
+
sudo usermod -aG docker $USER
|
|
161
161
|
`;
|
|
162
162
|
}
|
|
163
163
|
/**
|
|
164
164
|
* Get the command to install Node.js on Amazon Linux
|
|
165
165
|
*/
|
|
166
166
|
static getNodeInstallCommand() {
|
|
167
|
-
return `
|
|
168
|
-
curl -fsSL https://rpm.nodesource.com/setup_20.x | sudo bash - && \
|
|
169
|
-
sudo dnf install -y nodejs
|
|
167
|
+
return `
|
|
168
|
+
curl -fsSL https://rpm.nodesource.com/setup_20.x | sudo bash - && \
|
|
169
|
+
sudo dnf install -y nodejs
|
|
170
170
|
`;
|
|
171
171
|
}
|
|
172
172
|
/**
|
|
@@ -138,16 +138,16 @@ class MacPlugin {
|
|
|
138
138
|
return Object.keys(config).length === 0;
|
|
139
139
|
}
|
|
140
140
|
static helpText = {
|
|
141
|
-
SSH: `
|
|
142
|
-
SSH private key for accessing the server.
|
|
143
|
-
|
|
144
|
-
Step 1: Generate a new SSH key pair (if needed):
|
|
145
|
-
ssh-keygen -t ed25519 -C "deploy-key" -f ~/.ssh/deploy_key
|
|
146
|
-
|
|
147
|
-
Step 2: Add PUBLIC key to server:
|
|
148
|
-
ssh-copy-id -i ~/.ssh/deploy_key.pub ubuntu@YOUR_HOST
|
|
149
|
-
|
|
150
|
-
Step 3: Paste the PRIVATE key below (multi-line, end with blank line):
|
|
141
|
+
SSH: `
|
|
142
|
+
SSH private key for accessing the server.
|
|
143
|
+
|
|
144
|
+
Step 1: Generate a new SSH key pair (if needed):
|
|
145
|
+
ssh-keygen -t ed25519 -C "deploy-key" -f ~/.ssh/deploy_key
|
|
146
|
+
|
|
147
|
+
Step 2: Add PUBLIC key to server:
|
|
148
|
+
ssh-copy-id -i ~/.ssh/deploy_key.pub ubuntu@YOUR_HOST
|
|
149
|
+
|
|
150
|
+
Step 3: Paste the PRIVATE key below (multi-line, end with blank line):
|
|
151
151
|
cat ~/.ssh/deploy_key`,
|
|
152
152
|
};
|
|
153
153
|
// ============================================================
|
|
@@ -238,8 +238,8 @@ class MacPlugin {
|
|
|
238
238
|
}
|
|
239
239
|
try {
|
|
240
240
|
const repoName = config.name ?? 'app';
|
|
241
|
-
await MacPlugin.sshExec(envConfig, `
|
|
242
|
-
cd ~/.factiii && docker compose stop ${repoName}-staging
|
|
241
|
+
await MacPlugin.sshExec(envConfig, `
|
|
242
|
+
cd ~/.factiii && docker compose stop ${repoName}-staging
|
|
243
243
|
`);
|
|
244
244
|
return { success: true, message: 'Staging containers stopped' };
|
|
245
245
|
}
|
|
@@ -291,7 +291,7 @@ async function writeEnvFile(envConfig, repoDir, environment, envVarsString) {
|
|
|
291
291
|
const escapedContent = envFileContent
|
|
292
292
|
.replace(/'/g, "'\\''")
|
|
293
293
|
.replace(/\n/g, '\\n');
|
|
294
|
-
await sshExecCommand(envConfig, `cat > ${repoDir}/${envFileName} << 'ENVEOF'
|
|
294
|
+
await sshExecCommand(envConfig, `cat > ${repoDir}/${envFileName} << 'ENVEOF'
|
|
295
295
|
${envFileContent}ENVEOF`);
|
|
296
296
|
}
|
|
297
297
|
}
|
|
@@ -347,7 +347,7 @@ async function createEnvFromStaging(envConfig, repoDir) {
|
|
|
347
347
|
console.log(' 📝 Created .env from .env.staging (with host port replacement)');
|
|
348
348
|
}
|
|
349
349
|
else {
|
|
350
|
-
await sshExecCommand(envConfig, `cat > ${envPath} << 'ENVEOF'
|
|
350
|
+
await sshExecCommand(envConfig, `cat > ${envPath} << 'ENVEOF'
|
|
351
351
|
${updatedContent}ENVEOF`);
|
|
352
352
|
console.log(' 📝 Created .env from .env.staging on remote server (with host port replacement)');
|
|
353
353
|
}
|