@factiii/stack 0.1.24 → 0.1.26

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.
Files changed (161) hide show
  1. package/README.md +81 -60
  2. package/bin/{factiii → stack} +12 -12
  3. package/dist/cli/check-config.js +1 -1
  4. package/dist/cli/check-config.js.map +1 -1
  5. package/dist/cli/deploy-secrets.d.ts.map +1 -1
  6. package/dist/cli/deploy-secrets.js +11 -11
  7. package/dist/cli/deploy-secrets.js.map +1 -1
  8. package/dist/cli/deploy.d.ts.map +1 -1
  9. package/dist/cli/deploy.js +19 -9
  10. package/dist/cli/deploy.js.map +1 -1
  11. package/dist/cli/dev-sync.d.ts.map +1 -1
  12. package/dist/cli/dev-sync.js +10 -9
  13. package/dist/cli/dev-sync.js.map +1 -1
  14. package/dist/cli/execute-plugin-command.d.ts.map +1 -1
  15. package/dist/cli/execute-plugin-command.js +7 -7
  16. package/dist/cli/execute-plugin-command.js.map +1 -1
  17. package/dist/cli/fix.d.ts.map +1 -1
  18. package/dist/cli/fix.js +24 -4
  19. package/dist/cli/fix.js.map +1 -1
  20. package/dist/cli/init.d.ts +3 -1
  21. package/dist/cli/init.d.ts.map +1 -1
  22. package/dist/cli/init.js +382 -69
  23. package/dist/cli/init.js.map +1 -1
  24. package/dist/cli/pr-check.d.ts.map +1 -1
  25. package/dist/cli/pr-check.js +5 -4
  26. package/dist/cli/pr-check.js.map +1 -1
  27. package/dist/cli/scan.d.ts +6 -6
  28. package/dist/cli/scan.d.ts.map +1 -1
  29. package/dist/cli/scan.js +46 -30
  30. package/dist/cli/scan.js.map +1 -1
  31. package/dist/cli/secrets.d.ts.map +1 -1
  32. package/dist/cli/secrets.js +17 -16
  33. package/dist/cli/secrets.js.map +1 -1
  34. package/dist/cli/undeploy.d.ts.map +1 -1
  35. package/dist/cli/undeploy.js +4 -4
  36. package/dist/cli/undeploy.js.map +1 -1
  37. package/dist/cli/upgrade.d.ts +1 -1
  38. package/dist/cli/upgrade.js +5 -5
  39. package/dist/cli/upgrade.js.map +1 -1
  40. package/dist/cli/validate.js +1 -1
  41. package/dist/cli/validate.js.map +1 -1
  42. package/dist/constants/config-files.d.ts +23 -0
  43. package/dist/constants/config-files.d.ts.map +1 -0
  44. package/dist/constants/config-files.js +88 -0
  45. package/dist/constants/config-files.js.map +1 -0
  46. package/dist/generators/{generate-factiii-auto.d.ts → generate-stack-auto.d.ts} +4 -4
  47. package/dist/generators/generate-stack-auto.d.ts.map +1 -0
  48. package/dist/generators/{generate-factiii-auto.js → generate-stack-auto.js} +15 -13
  49. package/dist/generators/generate-stack-auto.js.map +1 -0
  50. package/dist/generators/{generate-factiii-yml.d.ts → generate-stack-yml.d.ts} +5 -5
  51. package/dist/generators/generate-stack-yml.d.ts.map +1 -0
  52. package/dist/generators/{generate-factiii-yml.js → generate-stack-yml.js} +16 -15
  53. package/dist/generators/generate-stack-yml.js.map +1 -0
  54. package/dist/generators/index.d.ts +2 -2
  55. package/dist/generators/index.d.ts.map +1 -1
  56. package/dist/generators/index.js +5 -5
  57. package/dist/generators/index.js.map +1 -1
  58. package/dist/plugins/pipelines/aws/index.js +3 -3
  59. package/dist/plugins/pipelines/aws/index.js.map +1 -1
  60. package/dist/plugins/pipelines/aws/scanfix/credentials.d.ts.map +1 -1
  61. package/dist/plugins/pipelines/aws/scanfix/credentials.js +36 -44
  62. package/dist/plugins/pipelines/aws/scanfix/credentials.js.map +1 -1
  63. package/dist/plugins/pipelines/aws/scanfix/ec2.js +1 -1
  64. package/dist/plugins/pipelines/aws/scanfix/ec2.js.map +1 -1
  65. package/dist/plugins/pipelines/aws/scanfix/iam.js +2 -2
  66. package/dist/plugins/pipelines/aws/scanfix/iam.js.map +1 -1
  67. package/dist/plugins/pipelines/aws/scanfix/rds.js +2 -2
  68. package/dist/plugins/pipelines/aws/scanfix/rds.js.map +1 -1
  69. package/dist/plugins/pipelines/factiii/index.d.ts +5 -3
  70. package/dist/plugins/pipelines/factiii/index.d.ts.map +1 -1
  71. package/dist/plugins/pipelines/factiii/index.js +14 -77
  72. package/dist/plugins/pipelines/factiii/index.js.map +1 -1
  73. package/dist/plugins/pipelines/factiii/pr-check.d.ts +1 -1
  74. package/dist/plugins/pipelines/factiii/pr-check.js +1 -1
  75. package/dist/plugins/pipelines/factiii/prod.d.ts.map +1 -1
  76. package/dist/plugins/pipelines/factiii/prod.js +3 -3
  77. package/dist/plugins/pipelines/factiii/prod.js.map +1 -1
  78. package/dist/plugins/pipelines/factiii/scanfix/config.d.ts +1 -1
  79. package/dist/plugins/pipelines/factiii/scanfix/config.d.ts.map +1 -1
  80. package/dist/plugins/pipelines/factiii/scanfix/config.js +10 -11
  81. package/dist/plugins/pipelines/factiii/scanfix/config.js.map +1 -1
  82. package/dist/plugins/pipelines/factiii/scanfix/env-files.d.ts +12 -0
  83. package/dist/plugins/pipelines/factiii/scanfix/env-files.d.ts.map +1 -0
  84. package/dist/plugins/pipelines/factiii/scanfix/env-files.js +310 -0
  85. package/dist/plugins/pipelines/factiii/scanfix/env-files.js.map +1 -0
  86. package/dist/plugins/pipelines/factiii/scanfix/local-config.d.ts +7 -0
  87. package/dist/plugins/pipelines/factiii/scanfix/local-config.d.ts.map +1 -0
  88. package/dist/plugins/pipelines/factiii/scanfix/local-config.js +70 -0
  89. package/dist/plugins/pipelines/factiii/scanfix/local-config.js.map +1 -0
  90. package/dist/plugins/pipelines/factiii/scanfix/secrets.js +6 -6
  91. package/dist/plugins/pipelines/factiii/scanfix/secrets.js.map +1 -1
  92. package/dist/plugins/pipelines/factiii/scanfix/workflows.d.ts.map +1 -1
  93. package/dist/plugins/pipelines/factiii/scanfix/workflows.js +16 -26
  94. package/dist/plugins/pipelines/factiii/scanfix/workflows.js.map +1 -1
  95. package/dist/plugins/pipelines/factiii/staging.d.ts +1 -1
  96. package/dist/plugins/pipelines/factiii/staging.d.ts.map +1 -1
  97. package/dist/plugins/pipelines/factiii/staging.js +3 -2
  98. package/dist/plugins/pipelines/factiii/staging.js.map +1 -1
  99. package/dist/plugins/pipelines/factiii/utils/workflows.d.ts.map +1 -1
  100. package/dist/plugins/pipelines/factiii/utils/workflows.js +6 -21
  101. package/dist/plugins/pipelines/factiii/utils/workflows.js.map +1 -1
  102. package/dist/plugins/pipelines/factiii/workflows/stack-ci.yml +56 -0
  103. package/dist/plugins/pipelines/factiii/workflows/stack-cicd-prod.yml +54 -0
  104. package/dist/plugins/servers/mac/scanfix/containers.js +1 -1
  105. package/dist/plugins/servers/mac/scanfix/containers.js.map +1 -1
  106. package/dist/scanfix/fixes/pnpm.d.ts.map +1 -1
  107. package/dist/scanfix/fixes/pnpm.js +2 -2
  108. package/dist/scanfix/fixes/pnpm.js.map +1 -1
  109. package/dist/scripts/generate-all.d.ts.map +1 -1
  110. package/dist/scripts/generate-all.js +9 -8
  111. package/dist/scripts/generate-all.js.map +1 -1
  112. package/dist/scripts/get-repo-name.d.ts +1 -1
  113. package/dist/scripts/get-repo-name.js +5 -3
  114. package/dist/scripts/get-repo-name.js.map +1 -1
  115. package/dist/scripts/validate-env-files.js +7 -1
  116. package/dist/scripts/validate-env-files.js.map +1 -1
  117. package/dist/scripts/validate-example-values.d.ts +1 -1
  118. package/dist/scripts/validate-example-values.js +3 -2
  119. package/dist/scripts/validate-example-values.js.map +1 -1
  120. package/dist/scripts/validate-stack-yml.d.ts +6 -0
  121. package/dist/scripts/validate-stack-yml.d.ts.map +1 -0
  122. package/dist/scripts/{validate-factiii-yml.js → validate-stack-yml.js} +15 -11
  123. package/dist/scripts/validate-stack-yml.js.map +1 -0
  124. package/dist/utils/config-helpers.d.ts +15 -0
  125. package/dist/utils/config-helpers.d.ts.map +1 -1
  126. package/dist/utils/config-helpers.js +57 -5
  127. package/dist/utils/config-helpers.js.map +1 -1
  128. package/dist/utils/config-validator.d.ts +2 -2
  129. package/dist/utils/config-validator.d.ts.map +1 -1
  130. package/dist/utils/config-validator.js +7 -6
  131. package/dist/utils/config-validator.js.map +1 -1
  132. package/dist/utils/config-writer.d.ts +2 -2
  133. package/dist/utils/config-writer.d.ts.map +1 -1
  134. package/dist/utils/config-writer.js +6 -6
  135. package/dist/utils/config-writer.js.map +1 -1
  136. package/dist/utils/deployment-report.js +4 -4
  137. package/dist/utils/deployment-report.js.map +1 -1
  138. package/dist/utils/ssh-helper.js +6 -6
  139. package/dist/utils/ssh-helper.js.map +1 -1
  140. package/dist/utils/template-generator.js +1 -1
  141. package/dist/utils/version-check.d.ts +1 -1
  142. package/dist/utils/version-check.d.ts.map +1 -1
  143. package/dist/utils/version-check.js +9 -8
  144. package/dist/utils/version-check.js.map +1 -1
  145. package/package.json +8 -2
  146. package/dist/generators/generate-factiii-auto.d.ts.map +0 -1
  147. package/dist/generators/generate-factiii-auto.js.map +0 -1
  148. package/dist/generators/generate-factiii-yml.d.ts.map +0 -1
  149. package/dist/generators/generate-factiii-yml.js.map +0 -1
  150. package/dist/plugins/pipelines/factiii/workflows/factiii-cicd-prod.yml +0 -112
  151. package/dist/plugins/pipelines/factiii/workflows/factiii-cicd-staging.yml +0 -117
  152. package/dist/plugins/pipelines/factiii/workflows/factiii-command.yml +0 -130
  153. package/dist/plugins/pipelines/factiii/workflows/factiii-deploy.yml +0 -198
  154. package/dist/plugins/pipelines/factiii/workflows/factiii-dev-sync.yml +0 -179
  155. package/dist/plugins/pipelines/factiii/workflows/factiii-fix.yml +0 -176
  156. package/dist/plugins/pipelines/factiii/workflows/factiii-pr-check.yml +0 -103
  157. package/dist/plugins/pipelines/factiii/workflows/factiii-scan.yml +0 -176
  158. package/dist/plugins/pipelines/factiii/workflows/factiii-undeploy.yml +0 -95
  159. package/dist/scripts/validate-factiii-yml.d.ts +0 -6
  160. package/dist/scripts/validate-factiii-yml.d.ts.map +0 -1
  161. package/dist/scripts/validate-factiii-yml.js.map +0 -1
@@ -52,6 +52,7 @@ exports.displayVersionWarning = displayVersionWarning;
52
52
  const fs = __importStar(require("fs"));
53
53
  const path = __importStar(require("path"));
54
54
  const js_yaml_1 = __importDefault(require("js-yaml"));
55
+ const config_files_js_1 = require("../constants/config-files.js");
55
56
  /**
56
57
  * Get current Factiii package version
57
58
  */
@@ -119,16 +120,16 @@ function isBreakingUpgrade(from, to) {
119
120
  return vTo.major > vFrom.major;
120
121
  }
121
122
  /**
122
- * Read version info from factiiiAuto.yml
123
+ * Read version info from stackAuto.yml (or legacy factiiiAuto.yml)
123
124
  * @param rootDir - Project root directory
124
125
  */
125
126
  function readFactiiiAutoVersion(rootDir) {
126
- const factiiiAutoPath = path.join(rootDir, 'factiiiAuto.yml');
127
- if (!fs.existsSync(factiiiAutoPath)) {
127
+ const autoPath = (0, config_files_js_1.getStackAutoPath)(rootDir);
128
+ if (!fs.existsSync(autoPath)) {
128
129
  return { factiii_version: null, factiii_min_version: null };
129
130
  }
130
131
  try {
131
- const content = fs.readFileSync(factiiiAutoPath, 'utf8');
132
+ const content = fs.readFileSync(autoPath, 'utf8');
132
133
  const config = js_yaml_1.default.load(content);
133
134
  return {
134
135
  factiii_version: config?.factiii_version ?? null,
@@ -155,10 +156,10 @@ function checkVersionCompatibility(rootDir) {
155
156
  isBreaking: false,
156
157
  message: '',
157
158
  };
158
- // No version info in factiiiAuto.yml (legacy or first run)
159
+ // No version info in stackAuto.yml (legacy or first run)
159
160
  if (!factiii_version) {
160
161
  result.needsUpgrade = true;
161
- result.message = 'No version info in factiiiAuto.yml. Run: npx factiii upgrade';
162
+ result.message = 'No version info in stackAuto.yml. Run: npx stack upgrade';
162
163
  return result;
163
164
  }
164
165
  // Check if current version meets minimum requirement
@@ -172,10 +173,10 @@ function checkVersionCompatibility(rootDir) {
172
173
  result.needsUpgrade = true;
173
174
  result.isBreaking = isBreakingUpgrade(factiii_version, currentVersion);
174
175
  if (result.isBreaking) {
175
- result.message = `Major version change: ${factiii_version} → ${currentVersion}. Run: npx factiii upgrade`;
176
+ result.message = `Major version change: ${factiii_version} → ${currentVersion}. Run: npx stack upgrade`;
176
177
  }
177
178
  else {
178
- result.message = `Version mismatch: config=${factiii_version}, installed=${currentVersion}. Run: npx factiii upgrade`;
179
+ result.message = `Version mismatch: config=${factiii_version}, installed=${currentVersion}. Run: npx stack upgrade`;
179
180
  }
180
181
  return result;
181
182
  }
@@ -1 +1 @@
1
- {"version":3,"file":"version-check.js","sourceRoot":"","sources":["../../src/utils/version-check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"version-check.js","sourceRoot":"","sources":["../../src/utils/version-check.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@factiii/stack",
3
- "version": "0.1.24",
3
+ "version": "0.1.26",
4
4
  "description": "Infrastructure management package for deploying services to servers",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "bin": {
8
- "factiii": "./bin/factiii"
8
+ "stack": "./bin/stack"
9
9
  },
10
10
  "files": [
11
11
  "bin/",
@@ -78,5 +78,11 @@
78
78
  },
79
79
  "engines": {
80
80
  "node": ">=18.0.0"
81
+ },
82
+ "pnpm": {
83
+ "overrides": {
84
+ "minimatch": ">=10.2.1",
85
+ "diff": ">=4.0.4"
86
+ }
81
87
  }
82
88
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-factiii-auto.d.ts","sourceRoot":"","sources":["../../src/generators/generate-factiii-auto.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,UAAU,cAAc;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,UAAU,gBAAgB;IACxB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;CAC7D;AAED,UAAU,mBAAmB;IAC3B,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAoED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,IAAI,CAAC,CAsJf"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-factiii-auto.js","sourceRoot":"","sources":["../../src/generators/generate-factiii-auto.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkGH,kDAyJC;AAzPD,uCAAyB;AACzB,2CAA6B;AAC7B,sDAA2B;AAyB3B;;GAEG;AACH,SAAS,iBAAiB;IACxB,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;QACnE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAyB,CAAC;QACzF,OAAO,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,cAAc;IACrB,MAAM,OAAO,GAAuB,EAAE,CAAC;IAEvC,wBAAwB;IACxB,IAAI,CAAC;QACH,iEAAiE;QACjE,MAAM,eAAe,GAAG,OAAO,CAAC,8BAA8B,CAAqB,CAAC;QACpF,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,uBAAuB;IACzB,CAAC;IAED,sBAAsB;IACtB,IAAI,CAAC;QACH,iEAAiE;QACjE,MAAM,SAAS,GAAG,OAAO,CAAC,wBAAwB,CAAqB,CAAC;QACxE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,uBAAuB;IACzB,CAAC;IAED,IAAI,CAAC;QACH,iEAAiE;QACjE,MAAM,YAAY,GAAG,OAAO,CAAC,2BAA2B,CAAqB,CAAC;QAC9E,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,uBAAuB;IACzB,CAAC;IAED,8DAA8D;IAC9D,IAAI,CAAC;QACH,iEAAiE;QACjE,MAAM,WAAW,GAAG,OAAO,CAAC,0BAA0B,CAAqB,CAAC;QAC5E,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,uBAAuB;IACzB,CAAC;IAED,yBAAyB;IACzB,IAAI,CAAC;QACH,iEAAiE;QACjE,MAAM,gBAAgB,GAAG,OAAO,CAAC,mCAAmC,CAAqB,CAAC;QAC1F,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,uBAAuB;IACzB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,mBAAmB,CACvC,OAAe,EACf,UAA+B,EAAE;IAEjC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;IAEzD,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;IAE5D,mCAAmC;IACnC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,cAAc,EAAE,CAAC;IACpD,MAAM,UAAU,GAA4B;QAC1C,eAAe,EAAE,iBAAiB,EAAE;QACpC,mBAAmB,EAAE,iBAAiB,EAAE;KACzC,CAAC;IAEF,gDAAgD;IAChD,KAAK,MAAM,WAAW,IAAI,OAAO,EAAE,CAAC;QAClC,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBACzD,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;oBAEpC,wBAAwB;oBACxB,IAAI,WAAW,CAAC,EAAE,KAAK,aAAa,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;wBAC5D,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;wBACpC,IAAI,QAAQ,CAAC,aAAa;4BAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;wBACnF,IAAI,QAAQ,CAAC,cAAc;4BAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC;oBACxF,CAAC;oBACD,IAAI,WAAW,CAAC,EAAE,KAAK,aAAa,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;wBAC1D,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;oBACpC,CAAC;oBACD,IAAI,WAAW,CAAC,EAAE,KAAK,SAAS,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;wBACxD,OAAO,CAAC,GAAG,CAAC,oBAAoB,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;oBACzD,CAAC;oBACD,IAAI,WAAW,CAAC,EAAE,KAAK,SAAS,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC;wBAC7D,OAAO,CAAC,GAAG,CAAC,0BAA0B,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;oBACpE,CAAC;oBACD,IAAI,WAAW,CAAC,EAAE,KAAK,SAAS,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;wBAC1D,OAAO,CAAC,GAAG,CAAC,uBAAuB,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;oBAC9D,CAAC;oBACD,IAAI,WAAW,CAAC,EAAE,KAAK,SAAS,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;wBAC1D,OAAO,CAAC,GAAG,CAAC,uBAAuB,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;oBAC9D,CAAC;oBACD,IAAI,WAAW,CAAC,EAAE,KAAK,KAAK,IAAI,QAAQ,CAAC,iBAAiB,EAAE,CAAC;wBAC3D,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;oBACxC,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,YAAY,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAChE,OAAO,CAAC,GAAG,CAAC,0BAA0B,WAAW,CAAC,EAAE,KAAK,YAAY,EAAE,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;IACH,CAAC;IAED,yDAAyD;IACzD,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QACzB,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACjC,CAAC;IAED,uDAAuD;IACvD,MAAM,cAAc,GAA4B,EAAE,CAAC;IACnD,MAAM,YAAY,GAA4B,EAAE,CAAC;IACjD,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,MAAM,YAAY,GAA4B,EAAE,CAAC;IACjD,MAAM,YAAY,GAA4B,EAAE,CAAC;IAEjD,oBAAoB;IACpB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACtD,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,cAAc,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC9B,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC5B,CAAC;aAAM,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;YAC9B,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC1B,CAAC;aAAM,IAAI,CAAC,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3F,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,SAAS;IACT,QAAQ,CAAC,IAAI,CACX,+BAA+B,EAC/B,6BAA6B,EAC7B,oDAAoD,EACpD,EAAE,CACH,CAAC;IAEF,kBAAkB;IAClB,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3C,QAAQ,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC5C,QAAQ,CAAC,IAAI,CAAC,iBAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACjF,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;IAED,0BAA0B;IAC1B,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,QAAQ,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC7C,QAAQ,CAAC,IAAI,CAAC,iBAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/E,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;IAED,4BAA4B;IAC5B,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACrC,QAAQ,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;QAChG,QAAQ,CAAC,IAAI,CAAC,iBAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7E,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;IAED,8BAA8B;IAC9B,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACvC,QAAQ,CAAC,IAAI,CAAC,iBAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/E,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;IAED,eAAe;IACf,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,QAAQ,CAAC,IAAI,CAAC,iBAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEzC,2CAA2C;IAC3C,MAAM,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACzC,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,eAAe,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC5D,IAAI,eAAe,KAAK,YAAY,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QACD,mEAAmE;QACnE,wEAAwE;QACxE,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC;YAClF,OAAO;QACT,CAAC;IACH,CAAC;IAED,aAAa;IACb,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAE3C,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAC9C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-factiii-yml.d.ts","sourceRoot":"","sources":["../../src/generators/generate-factiii-yml.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,UAAU,gBAAgB;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC;AAED,UAAU,eAAe;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC9B;AAuDD;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,GAAE,gBAAgB,EAAE,GAAG,IAAW,GAAG,MAAM,CAsG5F;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAgC1F"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-factiii-yml.js","sourceRoot":"","sources":["../../src/generators/generate-factiii-yml.ts"],"names":[],"mappings":"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"}
@@ -1,112 +0,0 @@
1
- name: Factiii CI/CD Prod
2
-
3
- # Generated by @factiii/stack v{VERSION}
4
- # CI/CD: Auto-deploy to prod on push to prod branch
5
- # This is the app's CI/CD pipeline, NOT infrastructure management.
6
- # For manual infrastructure operations, use factiii-deploy.yml
7
-
8
- on:
9
- push:
10
- branches:
11
- - prod
12
-
13
- jobs:
14
- deploy:
15
- runs-on: ubuntu-latest
16
- steps:
17
- - name: Checkout code
18
- uses: actions/checkout@v4
19
-
20
- - name: Install yq
21
- run: |
22
- sudo wget -qO /usr/local/bin/yq https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64
23
- sudo chmod +x /usr/local/bin/yq
24
-
25
- - name: Read config
26
- id: config
27
- run: |
28
- if [ ! -f "factiii.yml" ]; then
29
- echo "❌ factiii.yml not found"
30
- exit 1
31
- fi
32
-
33
- REPO_NAME=$(yq eval '.name' factiii.yml)
34
- HOST=$(yq eval '.prod.domain // ""' factiii.yml)
35
- SSH_USER=$(yq eval '.prod.ssh_user // "ubuntu"' factiii.yml)
36
-
37
- echo "repo_name=$REPO_NAME" >> $GITHUB_OUTPUT
38
- echo "host=$HOST" >> $GITHUB_OUTPUT
39
- echo "ssh_user=$SSH_USER" >> $GITHUB_OUTPUT
40
-
41
- - name: Check if prod configured
42
- id: check_prod
43
- run: |
44
- HAS_PROD=$(yq eval '.prod != null' factiii.yml)
45
- echo "has_prod=$HAS_PROD" >> $GITHUB_OUTPUT
46
-
47
- if [ "$HAS_PROD" != "true" ]; then
48
- echo "⏭️ Prod environment not configured in factiii.yml - skipping deployment"
49
- exit 0
50
- fi
51
-
52
- - name: Setup SSH
53
- if: steps.check_prod.outputs.has_prod == 'true'
54
- env:
55
- SSH_KEY: ${{ secrets.PROD_SSH }}
56
- run: |
57
- if [ -z "$SSH_KEY" ]; then
58
- echo "❌ Missing PROD_SSH secret"
59
- exit 1
60
- fi
61
-
62
- mkdir -p ~/.ssh
63
- echo "$SSH_KEY" > ~/.ssh/deploy_key
64
- chmod 600 ~/.ssh/deploy_key
65
-
66
- - name: Deploy via CLI
67
- if: steps.check_prod.outputs.has_prod == 'true'
68
- env:
69
- HOST: ${{ steps.config.outputs.host }}
70
- USER: ${{ steps.config.outputs.ssh_user }}
71
- REPO_NAME: ${{ steps.config.outputs.repo_name }}
72
- COMMIT_HASH: ${{ github.sha }}
73
- BRANCH: ${{ github.ref_name }}
74
- GITHUB_REPO: ${{ github.repository }}
75
- PROD_ENVS: ${{ secrets.PROD_ENVS }}
76
- run: |
77
- if [ -z "$HOST" ]; then
78
- echo "❌ Missing domain in factiii.yml: prod.domain"
79
- exit 1
80
- fi
81
-
82
- echo "🚀 Deploying to prod ($HOST)..."
83
-
84
- # Prepare environment variables for SSH (base64 encode to handle special characters)
85
- ENV_VARS_EXPORT=""
86
- if [ -n "$PROD_ENVS" ]; then
87
- ENV_VARS_B64=$(echo -n "$PROD_ENVS" | base64 -w 0)
88
- ENV_VARS_EXPORT="PROD_ENVS=\$(echo '$ENV_VARS_B64' | base64 -d) && export PROD_ENVS && "
89
- fi
90
-
91
- ssh -i ~/.ssh/deploy_key -o StrictHostKeyChecking=no "$USER@$HOST" \
92
- "export PATH=\"/opt/homebrew/bin:/usr/local/bin:\$PATH\" && \
93
- REPO_DIR=\"\$HOME/.factiii/$REPO_NAME\" && \
94
- if [ -d \"\$REPO_DIR\" ]; then \
95
- cd \"\$REPO_DIR\" && \
96
- $ENV_VARS_EXPORT GITHUB_ACTIONS=true COMMIT_HASH=$COMMIT_HASH BRANCH=$BRANCH GITHUB_REPO=$GITHUB_REPO \
97
- npx factiii deploy --prod --commit $COMMIT_HASH --branch $BRANCH; \
98
- else \
99
- echo \"❌ Repo directory not found at \$REPO_DIR\"; \
100
- echo \"Run deployment first to clone the repository\"; \
101
- exit 1; \
102
- fi"
103
-
104
- DEPLOY_EXIT_CODE=$?
105
- rm -f ~/.ssh/deploy_key
106
-
107
- if [ $DEPLOY_EXIT_CODE -eq 0 ]; then
108
- echo "✅ Prod deployment complete!"
109
- else
110
- echo "❌ Prod deployment failed with exit code $DEPLOY_EXIT_CODE"
111
- exit $DEPLOY_EXIT_CODE
112
- fi
@@ -1,117 +0,0 @@
1
- name: Factiii CI/CD Staging
2
-
3
- # Generated by @factiii/stack v{VERSION}
4
- # CI/CD: Auto-deploy to staging on push to main branch
5
- # This is the app's CI/CD pipeline, NOT infrastructure management.
6
- # For manual infrastructure operations, use factiii-deploy.yml
7
-
8
- on:
9
- push:
10
- branches:
11
- - main
12
-
13
- jobs:
14
- deploy:
15
- runs-on: ubuntu-latest
16
- steps:
17
- - name: Checkout code
18
- uses: actions/checkout@v4
19
-
20
- - name: Install yq
21
- run: |
22
- sudo wget -qO /usr/local/bin/yq https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64
23
- sudo chmod +x /usr/local/bin/yq
24
-
25
- - name: Read config
26
- id: config
27
- run: |
28
- if [ ! -f "factiii.yml" ]; then
29
- echo "❌ factiii.yml not found"
30
- exit 1
31
- fi
32
-
33
- REPO_NAME=$(yq eval '.name' factiii.yml)
34
- HOST=$(yq eval '.staging.domain // ""' factiii.yml)
35
- SSH_USER=$(yq eval '.staging.ssh_user // "ubuntu"' factiii.yml)
36
-
37
- echo "repo_name=$REPO_NAME" >> $GITHUB_OUTPUT
38
- echo "host=$HOST" >> $GITHUB_OUTPUT
39
- echo "ssh_user=$SSH_USER" >> $GITHUB_OUTPUT
40
-
41
- - name: Check if staging configured
42
- id: check_staging
43
- run: |
44
- HAS_STAGING=$(yq eval '.staging != null' factiii.yml)
45
- echo "has_staging=$HAS_STAGING" >> $GITHUB_OUTPUT
46
-
47
- if [ "$HAS_STAGING" != "true" ]; then
48
- echo "⏭️ Staging environment not configured in factiii.yml - skipping deployment"
49
- exit 0
50
- fi
51
-
52
- - name: Setup SSH
53
- if: steps.check_staging.outputs.has_staging == 'true'
54
- env:
55
- SSH_KEY: ${{ secrets.STAGING_SSH }}
56
- run: |
57
- if [ -z "$SSH_KEY" ]; then
58
- echo "❌ Missing STAGING_SSH secret"
59
- exit 1
60
- fi
61
-
62
- mkdir -p ~/.ssh
63
- echo "$SSH_KEY" > ~/.ssh/deploy_key
64
- chmod 600 ~/.ssh/deploy_key
65
-
66
- - name: Deploy via CLI
67
- if: steps.check_staging.outputs.has_staging == 'true'
68
- env:
69
- HOST: ${{ steps.config.outputs.host }}
70
- USER: ${{ steps.config.outputs.ssh_user }}
71
- REPO_NAME: ${{ steps.config.outputs.repo_name }}
72
- COMMIT_HASH: ${{ github.sha }}
73
- BRANCH: ${{ github.ref_name }}
74
- GITHUB_REPO: ${{ github.repository }}
75
- STAGING_ENVS: ${{ secrets.STAGING_ENVS }}
76
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
77
- run: |
78
- if [ -z "$HOST" ]; then
79
- echo "❌ Missing domain in factiii.yml: staging.domain"
80
- exit 1
81
- fi
82
-
83
- echo "🚀 Deploying to staging ($HOST)..."
84
-
85
- # Prepare environment variables for SSH (base64 encode to handle special characters)
86
- ENV_VARS_EXPORT=""
87
- if [ -n "$STAGING_ENVS" ]; then
88
- ENV_VARS_B64=$(echo -n "$STAGING_ENVS" | base64 -w 0)
89
- ENV_VARS_EXPORT="STAGING_ENVS=\$(echo '$ENV_VARS_B64' | base64 -d) && export STAGING_ENVS && "
90
- fi
91
-
92
- # Base64 encode GITHUB_TOKEN for safe SSH transport
93
- GITHUB_TOKEN_B64=$(echo -n "$GITHUB_TOKEN" | base64 -w 0)
94
-
95
- ssh -i ~/.ssh/deploy_key -o StrictHostKeyChecking=no "$USER@$HOST" \
96
- "export PATH=\"/opt/homebrew/bin:/usr/local/bin:\$PATH\" && \
97
- export GITHUB_TOKEN=\$(echo \"$GITHUB_TOKEN_B64\" | base64 -d) && \
98
- REPO_DIR=\"\$HOME/.factiii/$REPO_NAME\" && \
99
- if [ -d \"\$REPO_DIR\" ]; then \
100
- cd \"\$REPO_DIR\" && \
101
- $ENV_VARS_EXPORT GITHUB_ACTIONS=true COMMIT_HASH=$COMMIT_HASH BRANCH=$BRANCH GITHUB_REPO=$GITHUB_REPO \
102
- npx factiii deploy --staging --commit $COMMIT_HASH --branch $BRANCH; \
103
- else \
104
- echo \"❌ Repo directory not found at \$REPO_DIR\"; \
105
- echo \"Run deployment first to clone the repository\"; \
106
- exit 1; \
107
- fi"
108
-
109
- DEPLOY_EXIT_CODE=$?
110
- rm -f ~/.ssh/deploy_key
111
-
112
- if [ $DEPLOY_EXIT_CODE -eq 0 ]; then
113
- echo "✅ Staging deployment complete!"
114
- else
115
- echo "❌ Staging deployment failed with exit code $DEPLOY_EXIT_CODE"
116
- exit $DEPLOY_EXIT_CODE
117
- fi
@@ -1,130 +0,0 @@
1
- name: Factiii Command
2
-
3
- # Generated by @factiii/stack v{VERSION}
4
- # INFRASTRUCTURE: Run plugin commands on remote servers
5
- # Run: npx factiii db seed --staging (triggers this workflow)
6
-
7
- on:
8
- workflow_dispatch:
9
- inputs:
10
- category:
11
- description: 'Command category (db, ops, backup)'
12
- required: true
13
- type: string
14
- command:
15
- description: 'Command to run (e.g., seed, migrate, logs)'
16
- required: true
17
- type: string
18
- stage:
19
- description: 'Target environment'
20
- required: true
21
- type: choice
22
- options:
23
- - staging
24
- - prod
25
- options:
26
- description: 'Command options (JSON)'
27
- required: false
28
- default: '{}'
29
-
30
- jobs:
31
- run-command:
32
- runs-on: ubuntu-latest
33
- steps:
34
- - name: Checkout code
35
- uses: actions/checkout@v4
36
-
37
- - name: Install yq
38
- run: |
39
- sudo wget -qO /usr/local/bin/yq https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64
40
- sudo chmod +x /usr/local/bin/yq
41
-
42
- - name: Read config
43
- id: config
44
- env:
45
- STAGE: ${{ inputs.stage }}
46
- run: |
47
- if [ ! -f "factiii.yml" ]; then
48
- echo "factiii.yml not found"
49
- exit 1
50
- fi
51
-
52
- REPO_NAME=$(yq eval '.name' factiii.yml)
53
- HOST=$(yq eval ".$STAGE.domain // \"\"" factiii.yml)
54
- SSH_USER=$(yq eval ".$STAGE.ssh_user // \"ubuntu\"" factiii.yml)
55
-
56
- echo "repo_name=$REPO_NAME" >> $GITHUB_OUTPUT
57
- echo "host=$HOST" >> $GITHUB_OUTPUT
58
- echo "ssh_user=$SSH_USER" >> $GITHUB_OUTPUT
59
-
60
- - name: Check environment configured
61
- env:
62
- STAGE: ${{ inputs.stage }}
63
- run: |
64
- HAS_ENV=$(yq eval ".$STAGE != null" factiii.yml)
65
- if [ "$HAS_ENV" != "true" ]; then
66
- echo "$STAGE environment not configured in factiii.yml"
67
- exit 1
68
- fi
69
-
70
- - name: Check SSH secret
71
- env:
72
- STAGE: ${{ inputs.stage }}
73
- SSH_KEY: ${{ inputs.stage == 'staging' && secrets.STAGING_SSH || secrets.PROD_SSH }}
74
- run: |
75
- if [ -z "$SSH_KEY" ]; then
76
- SECRET_NAME="${STAGE^^}_SSH"
77
- echo "${SECRET_NAME} secret not found"
78
- echo "Add it at: https://github.com/${{ github.repository }}/settings/secrets/actions"
79
- exit 1
80
- fi
81
-
82
- - name: Setup SSH
83
- env:
84
- SSH_KEY: ${{ inputs.stage == 'staging' && secrets.STAGING_SSH || secrets.PROD_SSH }}
85
- run: |
86
- mkdir -p ~/.ssh
87
- echo "$SSH_KEY" > ~/.ssh/deploy_key
88
- chmod 600 ~/.ssh/deploy_key
89
-
90
- - name: Run command via SSH
91
- env:
92
- HOST: ${{ steps.config.outputs.host }}
93
- USER: ${{ steps.config.outputs.ssh_user }}
94
- REPO_NAME: ${{ steps.config.outputs.repo_name }}
95
- CATEGORY: ${{ inputs.category }}
96
- COMMAND: ${{ inputs.command }}
97
- STAGE: ${{ inputs.stage }}
98
- run: |
99
- if [ -z "$HOST" ]; then
100
- echo "Missing domain in factiii.yml: $STAGE.domain"
101
- exit 1
102
- fi
103
-
104
- echo "Running: factiii $CATEGORY $COMMAND --$STAGE"
105
- echo "Server: $USER@$HOST"
106
- echo ""
107
-
108
- ssh -i ~/.ssh/deploy_key -o StrictHostKeyChecking=no -o ConnectTimeout=10 -o ServerAliveInterval=60 -o ServerAliveCountMax=5 "$USER@$HOST" \
109
- "export PATH=\"/opt/homebrew/bin:/usr/local/bin:\$PATH\" && \
110
- REPO_DIR=\"\$HOME/.factiii/$REPO_NAME\" && \
111
- if [ -d \"\$REPO_DIR\" ]; then \
112
- cd \"\$REPO_DIR\" && \
113
- GITHUB_ACTIONS=true npx factiii $CATEGORY $COMMAND --$STAGE; \
114
- else \
115
- echo \"Repo directory not found at \$REPO_DIR\"; \
116
- echo \"Run deployment first to clone the repository\"; \
117
- exit 1; \
118
- fi"
119
-
120
- EXIT_CODE=$?
121
- rm -f ~/.ssh/deploy_key
122
-
123
- if [ $EXIT_CODE -eq 0 ]; then
124
- echo ""
125
- echo "Command completed successfully"
126
- else
127
- echo ""
128
- echo "Command failed with exit code $EXIT_CODE"
129
- exit $EXIT_CODE
130
- fi