-
Notifications
You must be signed in to change notification settings - Fork 0
Add root-level build scripts, interactive CLI launcher, and comprehensive testing #186
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
8 commits
Select commit
Hold shift + click to select a range
a3cc22e
Initial plan
Copilot 3e48adf
Add root-level build scripts (build.sh and build.ps1)
Copilot 7f0119b
Update README with build script documentation
Copilot 25d6856
Fix code review issues in build scripts
Copilot 7abf2ad
Merge branch 'main' into copilot/add-root-level-build-scripts
jaypatrick 81e5fdc
Add comprehensive test suites for build scripts
Copilot b48ef8d
Fix workflow issues: skip integration tests and fix Cargo cache
Copilot 073682e
Add feature-rich interactive CLI launchers
Copilot File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,139 @@ | ||
| name: Build Scripts Tests | ||
|
|
||
| on: | ||
| push: | ||
| branches: [ "main", "copilot/**" ] | ||
| paths: | ||
| - 'build.sh' | ||
| - 'build.ps1' | ||
| - 'test-build-scripts.sh' | ||
| - 'test-build-scripts.ps1' | ||
| - '.github/workflows/build-scripts-tests.yml' | ||
| pull_request: | ||
| branches: [ "main" ] | ||
| paths: | ||
| - 'build.sh' | ||
| - 'build.ps1' | ||
| - 'test-build-scripts.sh' | ||
| - 'test-build-scripts.ps1' | ||
| - '.github/workflows/build-scripts-tests.yml' | ||
| workflow_dispatch: | ||
|
|
||
| jobs: | ||
| test-bash-script: | ||
| name: Test Build Script (Bash) | ||
| runs-on: ubuntu-latest | ||
|
|
||
| steps: | ||
| - uses: actions/checkout@v4 | ||
|
|
||
| - name: Setup .NET | ||
| uses: actions/setup-dotnet@v4 | ||
| with: | ||
| dotnet-version: 10.0.x | ||
|
|
||
| - name: Setup Rust | ||
| uses: actions-rust-lang/setup-rust-toolchain@v1 | ||
| with: | ||
| toolchain: stable | ||
|
|
||
| - name: Make test script executable | ||
| run: chmod +x test-build-scripts.sh | ||
|
|
||
| - name: Run Bash build script tests | ||
| run: ./test-build-scripts.sh | ||
|
|
||
| - name: Upload test results | ||
| if: always() | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: bash-test-results | ||
| path: /tmp/test_output_*.log | ||
| retention-days: 7 | ||
| if-no-files-found: ignore | ||
|
|
||
| test-powershell-script: | ||
| name: Test Build Script (PowerShell) | ||
| runs-on: ubuntu-latest | ||
|
|
||
| steps: | ||
| - uses: actions/checkout@v4 | ||
|
|
||
| - name: Setup .NET | ||
| uses: actions/setup-dotnet@v4 | ||
| with: | ||
| dotnet-version: 10.0.x | ||
|
|
||
| - name: Setup Rust | ||
| uses: actions-rust-lang/setup-rust-toolchain@v1 | ||
| with: | ||
| toolchain: stable | ||
|
|
||
| - name: Run PowerShell build script tests | ||
| run: pwsh -File test-build-scripts.ps1 | ||
|
|
||
| test-windows: | ||
| name: Test Build Script (Windows) | ||
| runs-on: windows-latest | ||
|
|
||
| steps: | ||
| - uses: actions/checkout@v4 | ||
|
|
||
| - name: Setup .NET | ||
| uses: actions/setup-dotnet@v4 | ||
| with: | ||
| dotnet-version: 10.0.x | ||
|
|
||
| - name: Setup Rust | ||
| uses: actions-rust-lang/setup-rust-toolchain@v1 | ||
| with: | ||
| toolchain: stable | ||
|
|
||
| - name: Run PowerShell build script tests | ||
| run: .\test-build-scripts.ps1 | ||
| shell: pwsh | ||
|
|
||
| - name: Test actual build (Rust + .NET) | ||
| run: .\build.ps1 -Rust -DotNet | ||
| shell: pwsh | ||
|
|
||
| integration-test: | ||
| name: Full Integration Test | ||
| runs-on: ubuntu-latest | ||
|
|
||
| steps: | ||
| - uses: actions/checkout@v4 | ||
|
|
||
| - name: Setup .NET | ||
| uses: actions/setup-dotnet@v4 | ||
| with: | ||
| dotnet-version: 10.0.x | ||
|
|
||
| - name: Setup Rust | ||
| uses: actions-rust-lang/setup-rust-toolchain@v1 | ||
| with: | ||
| toolchain: stable | ||
|
|
||
| - name: Cache Cargo dependencies | ||
| uses: actions/cache@v4 | ||
| with: | ||
| path: | | ||
| ~/.cargo/registry | ||
| ~/.cargo/git | ||
| target | ||
| key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | ||
|
|
||
| - name: Test Rust debug build | ||
| run: ./build.sh --rust --debug | ||
|
|
||
| - name: Test Rust release build | ||
| run: ./build.sh --rust --release | ||
|
|
||
| - name: Test .NET debug build | ||
| run: ./build.sh --dotnet --debug | ||
|
|
||
| - name: Test .NET release build | ||
| run: ./build.sh --dotnet --release | ||
|
|
||
| - name: Test combined build | ||
| run: ./build.sh --rust --dotnet --release | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The test script is made executable with
chmod +xon line 41, butbuild.shitself (which is executed by the test script and directly in the integration-test job) is never made executable. This will cause the workflow to fail when trying to execute./build.shat lines 127, 130, 133, 136, and 139. Add a step to makebuild.shexecutable before running tests.