Optimized git
Some checks failed
git-sync-with-mirror / git-sync (push) Failing after 5s
CI Pipeline / shasums (push) Successful in 17s
CI Pipeline / build (push) Successful in 51s
CI Pipeline / tests (push) Successful in 31s
CI Pipeline / performance (push) Successful in 8s

This commit is contained in:
2025-11-03 16:27:38 -05:00
parent 6185230dfd
commit aad97d949a
7 changed files with 792 additions and 347 deletions

View File

@@ -1,12 +1,17 @@
name: CI Pipeline
on: [push, pull_request]
on:
push:
branches: [ main, master ]
pull_request:
branches: [ main, master ]
workflow_dispatch:
jobs:
shasums:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Run shasums script
run: |
cp -rv ./hyperterm/ "$HOME/.hyperterm/"
@@ -79,6 +84,11 @@ jobs:
shellcheck hyperterm/tools/sysinfo.sh
shellcheck hyperterm/tools/virtualenv.sh
- name: Run shellcheck on test scripts
run: |
shellcheck tests/test_prompt.sh
shellcheck tests/quick_test.sh
- name: Run shellcheck on install script
run: shellcheck install.sh
@@ -90,3 +100,89 @@ jobs:
- name: Run uninstall script
run: bash -x uninstall.sh -s
tests:
runs-on: ubuntu-latest
needs: build
env:
CI: true
steps:
- uses: actions/checkout@v4
- name: Set up git configuration for tests
run: |
git config --global user.name "CI Test User"
git config --global user.email "ci-test@example.com"
- name: Install dependencies
run: |
sudo apt-get update -y
sudo apt-get install -y git bash
- name: Run quick prompt test
run: |
echo "INFO: Running quick prompt test"
bash tests/quick_test.sh
- name: Run comprehensive prompt test
run: |
echo "INFO: Running comprehensive prompt test"
# Run in non-interactive mode for CI
bash tests/test_prompt.sh --non-interactive
- name: Test prompt in current repository
run: |
echo "INFO: Testing prompt in current git repository"
# Create test changes to verify git status detection
echo "test change for CI" >> README.md
echo "untracked CI test file" > ci_test_file.txt
# Test using our quick test (which already handles sourcing correctly)
echo "Running quick test to verify prompt works in CI environment..."
bash tests/quick_test.sh
- name: Validate optimizations
run: |
echo "INFO: Validating optimizations"
# Check that git_optimized.sh doesn't exist (should be integrated into git.sh)
if [[ -f "hyperterm/core/git_optimized.sh" ]]; then
echo "ERROR: git_optimized.sh should not exist (should be integrated)"
exit 1
fi
# Check that git.sh exists and is optimized
if [[ ! -f "hyperterm/core/git.sh" ]]; then
echo "ERROR: git.sh not found"
exit 1
fi
# Verify the optimized functions exist using bash
if ! bash -c 'source hyperterm/core/git.sh && command -v _get_git_status_fast >/dev/null 2>&1'; then
echo "ERROR: Optimized function _get_git_status_fast not found"
exit 1
fi
echo "SUCCESS: Optimizations validated"
performance:
runs-on: ubuntu-latest
needs: tests
steps:
- uses: actions/checkout@v4
- name: Set up git configuration
run: |
git config --global user.name "Performance Test"
git config --global user.email "perf-test@example.com"
- name: Performance benchmark
run: |
echo "INFO: Running performance benchmark using existing test suite"
# The comprehensive test already includes performance testing
# Run it again to get performance metrics in CI logs
bash tests/test_prompt.sh --non-interactive
echo "INFO: Performance benchmark completed"
echo "NOTE: Detailed performance metrics are included in the comprehensive test output above"