@quenty/nevermore-cli 4.28.1 → 4.29.0-canary.697.26191410126.0

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 (57) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/commands/batch-command/batch-deploy-command.js +9 -2
  3. package/dist/commands/batch-command/batch-deploy-command.js.map +1 -1
  4. package/dist/commands/batch-command/batch-test-command.d.ts +1 -0
  5. package/dist/commands/batch-command/batch-test-command.d.ts.map +1 -1
  6. package/dist/commands/batch-command/batch-test-command.js +14 -4
  7. package/dist/commands/batch-command/batch-test-command.js.map +1 -1
  8. package/dist/commands/deploy-command/index.d.ts.map +1 -1
  9. package/dist/commands/deploy-command/index.js +20 -20
  10. package/dist/commands/deploy-command/index.js.map +1 -1
  11. package/dist/commands/deploy-command/select-target.d.ts +10 -0
  12. package/dist/commands/deploy-command/select-target.d.ts.map +1 -0
  13. package/dist/commands/deploy-command/select-target.js +53 -0
  14. package/dist/commands/deploy-command/select-target.js.map +1 -0
  15. package/dist/commands/test-command/test-command.d.ts +1 -0
  16. package/dist/commands/test-command/test-command.d.ts.map +1 -1
  17. package/dist/commands/test-command/test-command.js +42 -27
  18. package/dist/commands/test-command/test-command.js.map +1 -1
  19. package/dist/utils/batch/batch-runner.js +1 -1
  20. package/dist/utils/batch/batch-runner.js.map +1 -1
  21. package/dist/utils/build/deploy-config.d.ts +4 -3
  22. package/dist/utils/build/deploy-config.d.ts.map +1 -1
  23. package/dist/utils/build/deploy-config.js +7 -3
  24. package/dist/utils/build/deploy-config.js.map +1 -1
  25. package/dist/utils/build/deploy-config.test.d.ts +2 -0
  26. package/dist/utils/build/deploy-config.test.d.ts.map +1 -0
  27. package/dist/utils/build/deploy-config.test.js +41 -0
  28. package/dist/utils/build/deploy-config.test.js.map +1 -0
  29. package/dist/utils/job-context/cloud-job-context.d.ts.map +1 -1
  30. package/dist/utils/job-context/cloud-job-context.js +5 -2
  31. package/dist/utils/job-context/cloud-job-context.js.map +1 -1
  32. package/dist/utils/open-cloud/open-cloud-client.d.ts +2 -1
  33. package/dist/utils/open-cloud/open-cloud-client.d.ts.map +1 -1
  34. package/dist/utils/open-cloud/open-cloud-client.js +39 -14
  35. package/dist/utils/open-cloud/open-cloud-client.js.map +1 -1
  36. package/package.json +6 -6
  37. package/src/commands/batch-command/batch-deploy-command.ts +8 -4
  38. package/src/commands/batch-command/batch-test-command.ts +15 -5
  39. package/src/commands/deploy-command/index.ts +21 -24
  40. package/src/commands/deploy-command/select-target.ts +80 -0
  41. package/src/commands/test-command/test-command.ts +48 -33
  42. package/src/utils/batch/batch-runner.ts +1 -1
  43. package/src/utils/build/deploy-config.test.ts +51 -0
  44. package/src/utils/build/deploy-config.ts +7 -3
  45. package/src/utils/job-context/cloud-job-context.ts +10 -2
  46. package/src/utils/open-cloud/open-cloud-client.ts +54 -14
  47. package/templates/game-template/.github/workflows/{deploy.yml → integration.yml} +30 -26
  48. package/templates/game-template/.github/workflows/tests.yml +30 -20
  49. package/templates/game-template/README.md +22 -1
  50. package/templates/game-template/aftman.toml +1 -0
  51. package/templates/game-template/default.project.json +3 -0
  52. package/templates/game-template/package.json +7 -2
  53. package/templates/game-template/src/modules/jest.config.lua +4 -0
  54. package/templates/game-template/src/scripts/Server/ServerMain.server.lua +6 -0
  55. package/templates/plugin-template/.github/workflows/{deploy.yml → integration.yml} +30 -26
  56. package/templates/plugin-template/.github/workflows/tests.yml +18 -13
  57. package/tsconfig.tsbuildinfo +1 -1
@@ -1,45 +1,44 @@
1
- # Roblox Deploy
1
+ # Roblox Integration Deploy
2
2
  #
3
- # Builds and uploads the project to your Roblox place.
3
+ # Builds and uploads the project to your Roblox integration place on every pull request.
4
4
  # This workflow is inactive until you complete the setup below.
5
5
  #
6
6
  # Setup:
7
- # 1. Run `nevermore deploy init` to create deploy.nevermore.json
7
+ # 1. Run `nevermore deploy init` to create deploy.nevermore.json (with an `integration` target)
8
8
  # 2. Add ROBLOX_OPEN_CLOUD_API_KEY as a repository secret
9
9
  # (Create one at https://create.roblox.com/dashboard/credentials)
10
- # 3. Deploys will run automatically when code is pushed to main
11
- # 4. You can also trigger a deploy manually from the Actions tab
10
+ # 3. Deploys will run automatically on every pull request
12
11
  #
13
12
  # Docs: https://quenty.github.io/NevermoreEngine/docs/testing/integration-testing
14
13
 
15
- name: deploy
16
- on:
17
- push:
18
- branches:
19
- - main
20
- workflow_dispatch:
14
+ name: integration
15
+ on: [pull_request]
21
16
  jobs:
22
- config-check:
17
+ integration:
23
18
  runs-on: ubuntu-latest
24
- outputs:
25
- enabled: $\{{ steps.check.outputs.enabled }}
19
+ environment: integration
26
20
  steps:
27
21
  - id: check
22
+ name: Check config
28
23
  run: |
29
- if [ -n "$KEY" ]; then echo "enabled=true" >> "$GITHUB_OUTPUT"
30
- else echo "::notice::Deploy skipped — ROBLOX_OPEN_CLOUD_API_KEY not configured. See top of this file for setup."; fi
24
+ if [ -n "$KEY" ]; then
25
+ echo "enabled=true" >> "$GITHUB_OUTPUT"
26
+ else
27
+ echo "::notice::Integration skipped — ROBLOX_OPEN_CLOUD_API_KEY not configured. See top of this file for setup."
28
+ fi
31
29
  env:
32
30
  KEY: $\{{ secrets.ROBLOX_OPEN_CLOUD_API_KEY }}
33
31
 
34
- deploy:
35
- needs: config-check
36
- if: needs.config-check.outputs.enabled == 'true'
37
- runs-on: ubuntu-latest
38
- steps:
39
32
  - name: Checkout repository
33
+ if: steps.check.outputs.enabled == 'true'
40
34
  uses: actions/checkout@v6
41
35
 
36
+ - name: Fetch base branch for changeset diff
37
+ if: steps.check.outputs.enabled == 'true'
38
+ run: git fetch origin $\{{ github.base_ref }} --depth=1
39
+
42
40
  - name: Setup Aftman
41
+ if: steps.check.outputs.enabled == 'true'
43
42
  uses: ok-nick/setup-aftman@v0.4.2
44
43
  with:
45
44
  version: 'v0.3.0'
@@ -47,11 +46,13 @@ jobs:
47
46
  cache: true
48
47
 
49
48
  - name: Setup pnpm
49
+ if: steps.check.outputs.enabled == 'true'
50
50
  uses: pnpm/action-setup@v4
51
51
  with:
52
52
  cache: true
53
53
 
54
54
  - name: Setup npm for GitHub Packages
55
+ if: steps.check.outputs.enabled == 'true'
55
56
  run: |
56
57
  if [[ -n "$NPM_GITHUB_QUENTYSTUDIOS_TOKEN" ]]; then
57
58
  echo "//npm.pkg.github.com/:_authToken=$NPM_GITHUB_QUENTYSTUDIOS_TOKEN" >> .npmrc
@@ -67,16 +68,19 @@ jobs:
67
68
  NPM_TOKEN: $\{{ secrets.NPM_TOKEN }}
68
69
 
69
70
  - name: Link and install packages
71
+ if: steps.check.outputs.enabled == 'true'
70
72
  run: pnpm install --frozen-lockfile
71
73
 
72
- - name: Deploy
73
- id: deploy
74
- run: npx @quenty/nevermore-cli deploy run --yes --verbose --logs --output deploy-results.json
74
+ - name: Deploy integration
75
+ id: deploy-integration
76
+ if: steps.check.outputs.enabled == 'true'
77
+ run: npx @quenty/nevermore-cli batch deploy --target integration --publish --base origin/$\{{ github.base_ref }} --output integration-results.json --yes --verbose --logs
75
78
  env:
76
79
  ROBLOX_OPEN_CLOUD_API_KEY: $\{{ secrets.ROBLOX_OPEN_CLOUD_API_KEY }}
80
+ GITHUB_TOKEN: $\{{ secrets.GITHUB_TOKEN }}
77
81
 
78
82
  - name: Post deploy results
79
- if: always()
80
- run: npx @quenty/nevermore-cli tools post-deploy-results deploy-results.json --yes --run-outcome $\{{ steps.deploy.outcome }}
83
+ if: always() && steps.check.outputs.enabled == 'true'
84
+ run: npx @quenty/nevermore-cli tools post-deploy-results integration-results.json --yes --run-outcome $\{{ steps.deploy-integration.outcome }}
81
85
  env:
82
86
  GITHUB_TOKEN: $\{{ secrets.GITHUB_TOKEN }}
@@ -7,35 +7,36 @@
7
7
  # 1. Run `nevermore deploy init` to create deploy.nevermore.json with a test target
8
8
  # 2. Add ROBLOX_OPEN_CLOUD_API_KEY as a repository secret
9
9
  # (Create one at https://create.roblox.com/dashboard/credentials)
10
- # 3. Tests will run automatically on pull requests
10
+ # 3. Tests will run automatically on pull requests and on push to main
11
11
  #
12
12
  # Docs: https://quenty.github.io/NevermoreEngine/docs/testing
13
13
 
14
14
  name: tests
15
15
  on:
16
16
  pull_request:
17
+ push:
18
+ branches: [main]
17
19
  jobs:
18
- config-check:
20
+ tests:
19
21
  runs-on: ubuntu-latest
20
- outputs:
21
- enabled: $\{{ steps.check.outputs.enabled }}
22
22
  steps:
23
23
  - id: check
24
+ name: Check config
24
25
  run: |
25
- if [ -n "$KEY" ]; then echo "enabled=true" >> "$GITHUB_OUTPUT"
26
- else echo "::notice::Tests skipped — ROBLOX_OPEN_CLOUD_API_KEY not configured. See top of this file for setup."; fi
26
+ if [ -n "$KEY" ]; then
27
+ echo "enabled=true" >> "$GITHUB_OUTPUT"
28
+ else
29
+ echo "::notice::Tests skipped — ROBLOX_OPEN_CLOUD_API_KEY not configured. See top of this file for setup."
30
+ fi
27
31
  env:
28
32
  KEY: $\{{ secrets.ROBLOX_OPEN_CLOUD_API_KEY }}
29
33
 
30
- tests:
31
- needs: config-check
32
- if: needs.config-check.outputs.enabled == 'true'
33
- runs-on: ubuntu-latest
34
- steps:
35
34
  - name: Checkout repository
35
+ if: steps.check.outputs.enabled == 'true'
36
36
  uses: actions/checkout@v6
37
37
 
38
38
  - name: Setup Aftman
39
+ if: steps.check.outputs.enabled == 'true'
39
40
  uses: ok-nick/setup-aftman@v0.4.2
40
41
  with:
41
42
  version: 'v0.3.0'
@@ -43,11 +44,13 @@ jobs:
43
44
  cache: true
44
45
 
45
46
  - name: Setup pnpm
47
+ if: steps.check.outputs.enabled == 'true'
46
48
  uses: pnpm/action-setup@v4
47
49
  with:
48
50
  cache: true
49
51
 
50
52
  - name: Setup npm for GitHub Packages
53
+ if: steps.check.outputs.enabled == 'true'
51
54
  run: |
52
55
  if [[ -n "$NPM_GITHUB_QUENTYSTUDIOS_TOKEN" ]]; then
53
56
  echo "//npm.pkg.github.com/:_authToken=$NPM_GITHUB_QUENTYSTUDIOS_TOKEN" >> .npmrc
@@ -63,20 +66,22 @@ jobs:
63
66
  NPM_TOKEN: $\{{ secrets.NPM_TOKEN }}
64
67
 
65
68
  - name: Link and install packages
69
+ if: steps.check.outputs.enabled == 'true'
66
70
  run: pnpm install --frozen-lockfile
67
71
 
68
72
  - name: Run tests
69
73
  id: run-tests
74
+ if: steps.check.outputs.enabled == 'true'
70
75
  run: npx @quenty/nevermore-cli test --cloud --yes --verbose --logs --output test-results.json
71
76
  env:
72
77
  ROBLOX_OPEN_CLOUD_API_KEY: $\{{ secrets.ROBLOX_OPEN_CLOUD_API_KEY }}
73
78
 
74
79
  - name: Build sourcemap for annotation resolution
75
- if: always()
80
+ if: always() && steps.check.outputs.enabled == 'true'
76
81
  run: npm run build:sourcemap
77
82
 
78
83
  - name: Post test results
79
- if: always()
84
+ if: always() && steps.check.outputs.enabled == 'true'
80
85
  run: npx @quenty/nevermore-cli tools post-test-results test-results.json --yes --run-outcome $\{{ steps.run-tests.outcome }}
81
86
  env:
82
87
  GITHUB_TOKEN: $\{{ secrets.GITHUB_TOKEN }}