Commit Graph
39 Commits
Author SHA1 Message Date
Philipp d0a08da728 feat: add rollback_on_failure feature (#88)
Lint / pre-commit Linting (push) Successful in 44s
Test / Run Tests (push) Successful in 1m2s
This PR adds the ability to download existing code before deployment and automatically roll back if the post-deployment monitor detects a failure.

Reviewed-on: #88
Reviewed-by: LLMReview <27+autoreview@noreplay.horstenkamp.eu>
2026-05-17 13:13:58 +02:00
Philipp 076e96f3de fix(monitor): use global console channel and implement shard filtering (#87)
Lint / pre-commit Linting (push) Successful in 47s
Test / Run Tests (push) Successful in 1m3s
This PR fixes the issue where console monitoring was empty when a specific shard was targeted on the official Screeps server.

### Changes:
- **Unified Subscription**: Changed WebSocket subscription path from `shard/console` (invalid) to the global `console` channel.
- **Shard Filtering**: Implemented client-side filtering in `handleConsoleEvent` to only display logs matching the targeted shard.
- **Precise Timing**: Retained the shard-specific `api.time()` call for accurate tick duration tracking.
- **Tests**: Added and updated 48 unit tests verifying the fix and shard filtering logic.
- **Distribution**: Rebuilt `dist/index.js` and bumped version to `v0.2.1`.

Reviewed-on: #87
2026-05-16 22:29:24 +02:00
Philipp bf52580bf3 feat: add Screeps console monitoring with configurable error handling and shard support (#84)
Lint / pre-commit Linting (push) Successful in 1m5s
Test / Run Tests (push) Successful in 1m23s
Reviewed-on: #84
2026-05-16 19:44:39 +02:00
Philipp be3c8ac7d2 feat: add CODEOWNERS file (#85)
Lint / pre-commit Linting (push) Successful in 41s
Test / Run Tests (push) Successful in 1m8s
This PR adds the `.gitea/CODEOWNERS` file to assign `@AutoReview` to all files.

Reviewed-on: #85
2026-05-16 17:14:31 +02:00
Philipp 2be5b2a1bc chore: update @actions/core to v3 and migrate to ESM (#73)
This PR updates the `@actions/core` dependency from v2 to v3.0.0.

### Major Changes:
- **Dependency Update**: Updated `@actions/core` to `v3.0.0` in `package.json`.
- **ESM Migration**: Converted the entire project to ECMAScript Modules (ESM). This was necessary because `@actions/core` v3 is an ESM-only package and does not provide CommonJS exports.
- **`package.json` updates**: Added `"type": "module"` and updated the dependency version.
- **Code Refactor**:
    -   Converted `index.js` to use `import` and `export`.
    -   Updated the main execution check to use `import.meta.url` for ESM compatibility.
    -   Converted `__tests__/index.test.js` to use ESM imports for compatibility with the updated source code.
- **Production Build**: Re-generated the `dist/index.js` bundle using `ncc` to reflect the changes.
- **Node.js Version**: The project continues to use Node 20 (`node20` in `action.yaml`), which is fully compatible with these changes.

### Why these changes are needed:
- `@actions/core` v3 brings latest improvements and fixes from the GitHub Actions toolkit.
- Migrating to ESM is the modern standard for Node.js development and is required to consume ESM-only packages like the new `@actions/core` v3.

Verified with `npm test` and `npm run build`.

Reviewed-on: #73
2026-02-23 03:59:12 +01:00
Philipp c5a58026fa Remove unused pre-commit hooks (#61)
Test / Run Tests (push) Successful in 9m59s
Lint / pre-commit Linting (push) Successful in 10m6s
### **PR Type**
Enhancement

___

### **Description**
- Remove unused pre-commit hooks

- Delete `pretty-format-ini` and `pretty-format-toml`

___

<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Configuration changes</strong></td><td><table>
<tr>
  <td>
    <details>
      <summary><strong>.pre-commit-config.yaml</strong><dd><code>Clean up pre-commit hook configuration</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.pre-commit-config.yaml

<ul><li>Removed <code>pretty-format-ini</code> hook entry<br> <li> Removed <code>pretty-format-toml</code> hook entry</ul>

</details>

  </td>
  <td><a href="https://git.horstenkamp.eu/Screeps/screeps-deploy-action/src/branch/chore/pre-commit-cleanup/.pre-commit-config.yaml">+0/-8</a>&nbsp; &nbsp; &nbsp; </td>

</tr>
</table></td></tr></tr></tbody></table>

</details>

___

Reviewed-on: #61
2026-01-04 23:47:59 +01:00
Philipp c05341c0a7 Enable minification for build artifact (#60)
Lint / pre-commit Linting (push) Successful in 1m29s
Test / Run Tests (push) Successful in 6m9s
### **PR Type**
Enhancement

___

### **Description**
- Enable minification in build script.

- Produce minified `dist/index.js` bundle.

___

<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Configuration changes</strong></td><td><table>
<tr>
  <td>
    <details>
      <summary><strong>package.json</strong><dd><code>Add minification flag to build script</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

package.json

- Added `-m` flag to build script.

</details>

  </td>
  <td><a href="https://git.horstenkamp.eu/Screeps/screeps-deploy-action/src/branch/build/minify/package.json">+1/-1</a>&nbsp; &nbsp; &nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Build artifact</strong></td><td><table>
<tr>
  <td>
    <details>
      <summary><strong>index.js</strong><dd><code>Provide minified distribution bundle</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

dist/index.js

- Updated output to minified bundle.

</details>

  </td>
  <td><a href="https://git.horstenkamp.eu/Screeps/screeps-deploy-action/src/branch/build/minify/dist/index.js">+5/-51912</a></td>

</tr>
</table></td></tr></tr></tbody></table>

</details>

___

Reviewed-on: #60
2026-01-04 07:17:33 +01:00
Philipp 6a098d425e Enable minification for build artifact (#60)
### **PR Type**
Enhancement

___

### **Description**
- Enable minification in build script.

- Produce minified `dist/index.js` bundle.

___

<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Configuration changes</strong></td><td><table>
<tr>
  <td>
    <details>
      <summary><strong>package.json</strong><dd><code>Add minification flag to build script</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

package.json

- Added `-m` flag to build script.

</details>

  </td>
  <td><a href="https://git.horstenkamp.eu/Screeps/screeps-deploy-action/src/branch/build/minify/package.json">+1/-1</a>&nbsp; &nbsp; &nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Build artifact</strong></td><td><table>
<tr>
  <td>
    <details>
      <summary><strong>index.js</strong><dd><code>Provide minified distribution bundle</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

dist/index.js

- Updated output to minified bundle.

</details>

  </td>
  <td><a href="https://git.horstenkamp.eu/Screeps/screeps-deploy-action/src/branch/build/minify/dist/index.js">+5/-51912</a></td>

</tr>
</table></td></tr></tr></tbody></table>

</details>

___

Reviewed-on: #60
2026-01-04 07:17:05 +01:00
Philipp 3ff19001a7 chore: Add a unit testing framework (#49)
Lint / pre-commit Linting (push) Waiting to run
Test / Run Tests (push) Successful in 1m12s
Add vitest as a unit testing framework

Reviewed-on: #49
2026-01-04 07:02:20 +01:00
Philipp a14206d32c chore: enforce linux line endings (#57)
Lint / pre-commit Linting (push) Successful in 54s
Add .gitattributes and .editorconfig to enforce LF line endings. Update devcontainer settings.

Reviewed-on: #57
2026-01-03 21:57:34 +01:00
Philipp 3f19a64809 fix: pre-commit hooks should now be installable in dev containers (#56)
Lint / pre-commit Linting (push) Successful in 51s
Reviewed-on: #56
2025-12-31 18:55:42 +01:00
Philipp 97ecdcbc66 Exclude the dist forlder from pre-commit (#54)
Lint / pre-commit Linting (push) Successful in 1m12s
Reviewed-on: #54
2025-12-27 21:10:44 +01:00
Philipp de6b54abe9 feat: use a custom build js step instead of all the dependencies (#53)
Lint / pre-commit Linting (push) Successful in 1m38s
Reviewed-on: #53
2025-12-27 19:25:56 +01:00
Philipp 60d3342a1c chore: ressort whitespace hooks in pre-commit config (#52)
Lint / pre-commit Linting (push) Successful in 1m24s
Reviewed-on: #52
2025-12-27 01:42:41 +01:00
Philipp e5773d3235 chore: format devcontainer.json and lint.yaml for consistency
Lint / pre-commit Linting (push) Successful in 1m23s
2025-12-27 01:39:31 +01:00
Philipp 0d97efec68 chore: ressort whitespace hooks in pre-commit config 2025-12-27 01:35:24 +01:00
Philipp 65486738c0 chore: add a devcontainer setup (#50)
Lint / pre-commit Linting (push) Successful in 1m30s
Add a devcontainer setup and remove a few redundent pre-commit hooks

Reviewed-on: #50
2025-12-27 01:02:36 +01:00
Philipp 25e4ba9f71 feat: Add relevant check-jsonschema pre-commit hooks (#48)
Lint / pre-commit Linting (push) Successful in 1m20s
Reviewed-on: #48
2025-12-21 14:03:52 +01:00
Philipp 76eaa21fb3 Add a npm rebuild option to the renovate.json (#47)
Lint / pre-commit Linting (push) Successful in 1m19s
Reviewed-on: #47
2025-12-21 12:22:25 +01:00
Philipp e39a879879 Add a gemini Geminin CLI guid for the LLM and a NPM section that installs npm packages after updates via renovate (#46)
Lint / pre-commit Linting (push) Successful in 1m39s
Reviewed-on: #46
2025-12-21 01:19:31 +01:00
Philipp 291ffc41bc Add a renovate.json schema validation (#45)
Lint / pre-commit Linting (push) Successful in 1m23s
Reviewed-on: #45
2025-12-19 17:51:59 +01:00
Philipp 60c6779c64 Add a renovate.json schema validation hook
Lint / pre-commit Linting (push) Successful in 1m25s
2025-12-19 17:49:54 +01:00
Philipp fb80f152df Add a schema validation for the renovate.json 2025-12-19 17:49:28 +01:00
Philipp 1da1212c8f Run npm-install and add npm install as a post update option (#42)
Lint / pre-commit Linting (push) Successful in 1m35s
Reviewed-on: #42
2025-12-16 19:32:16 +01:00
Philipp a892e71b21 run-npm-install (#44)
Lint / pre-commit Linting (push) Successful in 1m30s
Reviewed-on: #44
2025-12-16 01:10:50 +01:00
Philipp 74d74b73ad Run npm install (#43)
Lint / pre-commit Linting (push) Successful in 1m18s
Reviewed-on: #43
2025-12-16 01:07:55 +01:00
Philipp 9d9dc1e822 Update renovate.json (#28)
Lint / pre-commit Linting (push) Successful in 2m0s
Reviewed-on: #28
2025-09-05 02:40:16 +02:00
Philipp 28b0ab9f02 chore: Configure Renovate (#23)
Lint / pre-commit Linting (push) Successful in 2m3s
Reviewed-on: #23
2025-08-10 15:01:15 +02:00
PhilippandPhilipp Horstenkamp 6f0f75d7ad Fixed glob import (#21)
Lint / pre-commit Linting (push) Successful in 32s
Glob was not imported as a function

Reviewed-on: #21
Co-authored-by: Philipp Horstenkamp <philipp@horstenkamp.de>
Co-committed-by: Philipp Horstenkamp <philipp@horstenkamp.de>
2025-04-21 21:00:29 +02:00
PhilippandPhilipp Horstenkamp 318515b9c4 Update dependencies (#20)
Lint / pre-commit Linting (push) Successful in 29s
- @actions/core
- glob
- screeps-api

Reviewed-on: #20
Co-authored-by: Philipp Horstenkamp <philipp@horstenkamp.de>
Co-committed-by: Philipp Horstenkamp <philipp@horstenkamp.de>
2025-04-12 13:43:45 +02:00
PhilippandPhilipp Horstenkamp 1aa7be2b73 Moved execution time (#19)
Lint / pre-commit Linting (push) Successful in 52s
Auto Maintenance Cycle / pre-commit Autoupdate (push) Successful in 1m52s
Reviewed-on: #19
Co-authored-by: Philipp Horstenkamp <philipp@horstenkamp.de>
Co-committed-by: Philipp Horstenkamp <philipp@horstenkamp.de>
2025-04-02 23:41:12 +02:00
PhilippandPhilipp Horstenkamp 508eec34d7 Add an replacement for the {{hostname}} token. (#15)
Lint / pre-commit Linting (push) Successful in 49s
Reviewed-on: #15
Co-authored-by: Philipp Horstenkamp <philipp@horstenkamp.de>
Co-committed-by: Philipp Horstenkamp <philipp@horstenkamp.de>
2024-05-23 23:47:07 +02:00
PhilippandPhilipp Horstenkamp bee951fc34 Fixed the copyright note (#14)
Lint / pre-commit Linting (push) Successful in 45s
Reviewed-on: #14
Co-authored-by: Philipp Horstenkamp <philipp@horstenkamp.de>
Co-committed-by: Philipp Horstenkamp <philipp@horstenkamp.de>
2024-05-23 23:05:59 +02:00
PhilippandPhilipp Horstenkamp e342ceca6f Added the ability to replace some placeholders in the screeps code (#12)
Lint / pre-commit Linting (push) Successful in 29s
added the `git-replace` option.
Replaceing {{gitRef}}, {{deployTime}} and {{gitHash}}.

Reviewed-on: #12
Co-authored-by: Philipp Horstenkamp <philipp@horstenkamp.de>
Co-committed-by: Philipp Horstenkamp <philipp@horstenkamp.de>
2023-12-25 02:22:42 +01:00
Philipp 4951253d52 Reworked the maintance action to use a PAT
Lint / pre-commit Linting (push) Successful in 55s
Auto Maintenance Cycle / pre-commit Autoupdate (push) Successful in 1m33s
2023-12-09 13:16:49 +01:00
PhilippandPhilipp Horstenkamp e7678a5f66 Added auth for private servers (#7)
Lint / pre-commit Linting (push) Successful in 45s
Reviewed-on: #7
Co-authored-by: Philipp Horstenkamp <philipp@horstenkamp.de>
Co-committed-by: Philipp Horstenkamp <philipp@horstenkamp.de>
2023-11-26 22:24:16 +01:00
PhilippandPhilipp Horstenkamp 6f5729c12a First development of the deploy action (#6)
Lint / pre-commit Linting (push) Has been cancelled
Deploy js code to an instance of screeps.
Some debugging tools are implemented.

Reviewed-on: #6
Co-authored-by: Philipp Horstenkamp <philipp@horstenkamp.de>
Co-committed-by: Philipp Horstenkamp <philipp@horstenkamp.de>
2023-11-26 18:31:49 +01:00
PhilippandPhilipp Horstenkamp df14b016b7 Fixed the name of the lint workflow.
Lint / pre-commit Linting (push) Successful in 20s
2023-11-25 00:29:16 +01:00
Philipp 1c65914e79 Reworked the maintance action.
Auto Maintenance Cycle / pre-commit Linting (push) Successful in 20s
Auto Maintenance Cycle / pre-commit Autoupdate (push) Successful in 37s
2023-11-24 22:35:44 +01:00