Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
32a7722
Fix play mode test scene jumping issue
JasonXuDeveloper Jan 22, 2026
7aa10e2
Improve play mode test detection by preventing RuntimeInitializeOnLoa…
JasonXuDeveloper Jan 22, 2026
6b011e9
Detect play mode tests by checking scene name instead of timing-depen…
JasonXuDeveloper Jan 22, 2026
2b2fdbe
Add Unity Test Framework temporary test scenes to .gitignore
JasonXuDeveloper Jan 22, 2026
32e371a
Refactor test code to use simplified lambda expressions and improve c…
JasonXuDeveloper Jan 22, 2026
84e5732
Fix build error handling and progress bar updates
JasonXuDeveloper Jan 22, 2026
e9fea54
Implement async build system with Progress API and state machine
JasonXuDeveloper Jan 22, 2026
b792bbf
Refactor Panel.cs: Extract build logic to BuildManager
JasonXuDeveloper Jan 22, 2026
b6511b7
Fix BuildAssetsOnly compilation errors
JasonXuDeveloper Jan 22, 2026
a353235
Remove redundant progress bar from UI
JasonXuDeveloper Jan 22, 2026
4aaddaf
Fix ReflectionCompatibilityDetector warnings by excluding JEngine.Cor…
JasonXuDeveloper Jan 22, 2026
12eac1a
Revert "Fix ReflectionCompatibilityDetector warnings by excluding JEn…
JasonXuDeveloper Jan 22, 2026
6756d87
Temporarily skip error check for GenerateAll step due to YooAsset bug
JasonXuDeveloper Jan 22, 2026
c86b5a7
Add selective error filtering to ignore specific YooAsset catalog error
JasonXuDeveloper Jan 22, 2026
fdd3d1e
Add GeneratePolymorphicCodes step after GenerateAll
JasonXuDeveloper Jan 22, 2026
0650aa9
Remove redundant build steps - GenerateAll already handles everything
JasonXuDeveloper Jan 22, 2026
2c3e6ce
Add explicit GeneratePolymorphicCodes step after GenerateAll
JasonXuDeveloper Jan 22, 2026
c391b83
Clean up unused imports in Panel.cs and EditorUIUtils.cs
JasonXuDeveloper Jan 22, 2026
fbed683
Update build artifacts after build system improvements
JasonXuDeveloper Jan 22, 2026
da3f4d7
Fix CodeFactor issues: arithmetic precedence and blank lines
JasonXuDeveloper Jan 22, 2026
88f4e2e
Merge branch 'master' into fix/build-error-handling
JasonXuDeveloper Jan 22, 2026
069efaa
Address code review feedback
JasonXuDeveloper Jan 22, 2026
f49f4c6
feat(ci): add automated testing and release workflows
JasonXuDeveloper Jan 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
99 changes: 99 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
## Description

<!-- Provide a brief description of the changes in this PR -->

## Type of Change

<!-- Check the type that applies to this PR -->

- [ ] 🐛 Bug fix (fixes an issue)
- [ ] ✨ New feature (adds functionality)
- [ ] 💥 Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] 📝 Documentation update
- [ ] 🎨 Code style/formatting
- [ ] ♻️ Code refactoring (no functional changes)
- [ ] ✅ Test updates
- [ ] 🔧 Build/config changes

## Package Scope

<!-- Check which package(s) this PR affects -->

- [ ] JEngine.Core (`com.jasonxudeveloper.jengine.core`)
- [ ] JEngine.Util (`com.jasonxudeveloper.jengine.util`)
- [ ] Other (specify):

## Checklist

- [ ] My code follows the project's coding conventions (see [CLAUDE.md](../CLAUDE.md))
- [ ] I have performed a self-review of my code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have added/updated XML documentation for public APIs
- [ ] I have added/updated tests that prove my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] I have used `UniTask` for async operations (not `System.Threading.Tasks.Task`)
- [ ] My changes handle Unity domain reloads properly (if applicable to Editor code)

## Commit Message Format

We use **Conventional Commits** for automated changelog generation. Please format your commit messages as:

```
<type>(<scope>): <subject>
```

### Examples

```bash
feat(core): add ChaCha20 encryption support
fix(util): resolve JAction memory leak on cancellation
docs: update installation guide for Unity 2022.3
refactor(core): simplify bootstrap initialization
test(util): add coverage for JAction edge cases
chore(ci): update GameCI Unity version to 2022.3.55f1
```

### Types

- `feat:` - New feature (appears in changelog)
- `fix:` - Bug fix (appears in changelog)
- `docs:` - Documentation only
- `style:` - Code style/formatting
- `refactor:` - Code refactoring
- `test:` - Test changes
- `chore:` - Build/config changes

### Scopes

- `core` - JEngine.Core package
- `util` - JEngine.Util package
- `ci` - CI/CD workflows
- `docs` - Documentation

### Breaking Changes

For breaking changes, add `!` after the type/scope or include `BREAKING CHANGE:` in the footer:

```bash
feat(core)!: redesign encryption API

BREAKING CHANGE: EncryptionManager.Encrypt() now requires EncryptionConfig parameter
```

## Testing

<!-- Describe how you tested your changes -->

**Test environment:**
- Unity version:
- Platform(s):
- Test mode: [ ] EditMode [ ] PlayMode [ ] Manual

**Steps to test:**
1.
2.
3.

## Additional Notes

<!-- Any additional information that reviewers should know -->
99 changes: 99 additions & 0 deletions .github/workflows/pr-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
name: PR Tests

on:
pull_request:
types: [opened, synchronize, reopened]
paths:
- 'UnityProject/Packages/com.jasonxudeveloper.jengine.core/**'
- 'UnityProject/Packages/com.jasonxudeveloper.jengine.util/**'
- 'UnityProject/Assets/Tests/**'
- '.github/workflows/**'

# Ensure only one test run per PR at a time
concurrency:
group: pr-tests-${{ github.event.pull_request.number }}
cancel-in-progress: true

jobs:
run-tests:
name: Run Unity Tests
uses: ./.github/workflows/unity-tests.yml
secrets: inherit

comment-results:
name: Comment Test Results
needs: run-tests
runs-on: ubuntu-latest
if: always()
permissions:
pull-requests: write

steps:
- name: Comment PR with test results
uses: actions/github-script@v7
with:
script: |
const testResults = `${{ needs.run-tests.outputs.test_results }}`;
const jobStatus = '${{ needs.run-tests.result }}';

let comment = testResults;

if (jobStatus === 'success') {
comment += '\n\n✅ All tests passed! The PR is ready for review.';
} else if (jobStatus === 'failure') {
comment += '\n\n❌ Some tests failed. Please fix the failing tests before merging.';
} else {
comment += '\n\n⚠️ Test execution was cancelled or encountered an error.';
}

comment += `\n\n<details><summary>View workflow run</summary>\n\n[Click here to view the full workflow run](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }})\n\n</details>`;

// Find existing comment
const comments = await github.rest.issues.listComments({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
});

const botComment = comments.data.find(comment =>
comment.user.type === 'Bot' &&
comment.body.includes('Unity Test Results')
);

if (botComment) {
// Update existing comment
await github.rest.issues.updateComment({
owner: context.repo.owner,
repo: context.repo.repo,
comment_id: botComment.id,
body: comment
});
} else {
// Create new comment
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
body: comment
});
}

- name: Set PR check status
uses: actions/github-script@v7
with:
script: |
const jobStatus = '${{ needs.run-tests.result }}';
const state = jobStatus === 'success' ? 'success' : 'failure';
const description = jobStatus === 'success'
? 'All Unity tests passed'
: 'Unity tests failed';

await github.rest.repos.createCommitStatus({
owner: context.repo.owner,
repo: context.repo.repo,
sha: context.payload.pull_request.head.sha,
state: state,
target_url: `https://github.com/${context.repo.owner}/${context.repo.repo}/actions/runs/${context.runId}`,
description: description,
context: 'Unity Tests'
});
Loading
Loading