Skip to content

Add quick start guide for GitHub release process #1

Add quick start guide for GitHub release process

Add quick start guide for GitHub release process #1

Workflow file for this run

# .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 ✅"