Add quick start guide for GitHub release process #1
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
| # .github/workflows/ci.yml | |
| # Continuous Integration für WindowsBridge | |
| # Führt Tests und Validierung auf jedem Push/PR aus | |
| name: CI | |
| on: | |
| push: | |
| branches: [ main, develop ] | |
| pull_request: | |
| branches: [ main ] | |
| jobs: | |
| lint-and-test: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - name: Install dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y shellcheck python3 python3-pip | |
| pip3 install pylint | |
| - name: Bash Syntax Check | |
| run: | | |
| bash -n installer.sh | |
| bash -n modules/system_setup.sh | |
| bash -n modules/wine_setup.sh | |
| bash -n modules/gaming_setup.sh | |
| bash -n modules/updater.sh | |
| bash -n test_system.sh | |
| bash -n test_wine.sh | |
| bash -n test_gaming.sh | |
| bash -n run_all_tests.sh | |
| - name: ShellCheck Analysis | |
| run: | | |
| shellcheck installer.sh | |
| shellcheck modules/*.sh | |
| shellcheck test_*.sh | |
| shellcheck run_all_tests.sh | |
| - name: Python Syntax Check | |
| run: | | |
| python3 -m py_compile gui_launcher.py | |
| - name: Python Linting | |
| run: | | |
| pylint --disable=C0111,W0212 gui_launcher.py || true | |
| - name: License Headers Check | |
| run: | | |
| echo "Checking Apache-2.0 headers..." | |
| grep -l "Apache-2.0" installer.sh | |
| grep -l "Apache-2.0" modules/system_setup.sh | |
| grep -l "Apache-2.0" modules/wine_setup.sh | |
| grep -l "Apache-2.0" modules/gaming_setup.sh | |
| - name: Documentation Check | |
| run: | | |
| test -f LICENSE | |
| test -f README.md | |
| test -f CHANGELOG.md | |
| test -f CONTRIBUTING.md | |
| test -f VERSION | |
| echo "All documentation files present ✅" | |
| - name: File Permissions Check | |
| run: | | |
| test -x installer.sh | |
| test -x modules/system_setup.sh | |
| test -x modules/wine_setup.sh | |
| test -x modules/gaming_setup.sh | |
| echo "All scripts executable ✅" | |
| version-check: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - name: Check VERSION file | |
| run: | | |
| VERSION=$(cat VERSION) | |
| if [[ ! "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then | |
| echo "Invalid VERSION format: $VERSION" | |
| exit 1 | |
| fi | |
| echo "VERSION: $VERSION ✅" | |
| - name: Verify CHANGELOG updated | |
| run: | | |
| VERSION=$(cat VERSION) | |
| if ! grep -q "\[$VERSION\]" CHANGELOG.md; then | |
| echo "CHANGELOG.md not updated for version $VERSION" | |
| exit 1 | |
| fi | |
| echo "CHANGELOG.md updated ✅" | |
| security-check: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - name: Check for hardcoded secrets | |
| run: | | |
| echo "Checking for hardcoded secrets..." | |
| ! grep -r "password=" . --include="*.sh" --include="*.py" | |
| ! grep -r "api_key=" . --include="*.sh" --include="*.py" | |
| ! grep -r "token=" . --include="*.sh" --include="*.py" | |
| echo "No hardcoded secrets found ✅" | |
| - name: Check for SQL injection patterns | |
| run: | | |
| echo "Checking for SQL injection patterns..." | |
| ! grep -r "sql_query.*\$" . --include="*.sh" | |
| echo "No obvious SQL injection patterns ✅" | |
| - name: Check for command injection patterns | |
| run: | | |
| echo "Checking for command injection patterns..." | |
| if grep -r 'wine.*\$[^{]' modules/*.sh; then | |
| echo "Warning: Potential command injection found" | |
| fi | |
| echo "Command injection check complete ✅" | |
| markdown-check: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - name: Markdown Link Check | |
| uses: gaurav-nelson/github-action-markdown-link-check@v1 | |
| with: | |
| use-quiet-mode: 'yes' | |
| use-verbose-mode: 'yes' | |
| file-path: './README.md' | |
| - name: Check documentation completeness | |
| run: | | |
| echo "Checking documentation files..." | |
| test -f README.md | |
| test -f QUICKSTART.md | |
| test -f CHANGELOG.md | |
| test -f CONTRIBUTING.md | |
| test -f SECURITY.md | |
| test -f RELEASE.md | |
| test -f INSTALL_BY_DISTRO.md | |
| echo "All documentation files present ✅" |