diff --git a/actions/.gitea/workflows/workflow-test.yml b/actions/.gitea/workflows/workflow-test.yml new file mode 100644 index 0000000..1d416b3 --- /dev/null +++ b/actions/.gitea/workflows/workflow-test.yml @@ -0,0 +1,176 @@ +name: Test Workflow + +# Запускается при push в любую ветку и при pull request +on: + push: + branches: [ main, master ] + pull_request: + branches: [ main, master ] + + # Также можно запустить вручную + workflow_dispatch: + +jobs: + # Простая проверка системы + system-info: + runs-on: ubuntu-22.04 + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: System Information + run: | + echo "=== System Info ===" + uname -a + echo "" + echo "=== CPU Info ===" + lscpu | head -10 + echo "" + echo "=== Memory Info ===" + free -h + echo "" + echo "=== Disk Space ===" + df -h + echo "" + echo "=== Docker Version ===" + docker --version + echo "" + echo "=== Environment Variables ===" + env | grep -E "(CI|GITEA|GITHUB)" | sort + + # Проверка с Node.js + node-test: + runs-on: ubuntu-22.04 + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '18' + + - name: Node.js info + run: | + echo "Node.js version:" + node --version + echo "NPM version:" + npm --version + + - name: Create test package.json + run: | + cat > package.json << 'EOF' + { + "name": "test-actions", + "version": "1.0.0", + "scripts": { + "test": "echo \"Test passed!\" && exit 0" + } + } + EOF + + - name: Install dependencies + run: npm install + + - name: Run tests + run: npm test + + # Проверка с Python + python-test: + runs-on: ubuntu-22.04 + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup Python + uses: actions/setup-python@v4 + with: + python-version: '3.9' + + - name: Python info + run: | + echo "Python version:" + python --version + echo "Pip version:" + pip --version + + - name: Create test script + run: | + cat > test_script.py << 'EOF' + import sys + import os + + print("=== Python Test ===") + print(f"Python version: {sys.version}") + print(f"Platform: {sys.platform}") + print("Environment variables:") + for key in sorted(os.environ.keys()): + if any(prefix in key.upper() for prefix in ['CI', 'GITEA', 'GITHUB']): + print(f" {key}={os.environ[key]}") + + print("Test completed successfully!") + EOF + + - name: Run Python test + run: python test_script.py + + # Параллельная матричная сборка + matrix-test: + runs-on: ubuntu-22.04 + strategy: + matrix: + version: ['16', '18', '20'] + include: + - version: '16' + name: 'Legacy' + - version: '18' + name: 'Current' + - version: '20' + name: 'Latest' + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup Node.js ${{ matrix.version }} + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.version }} + + - name: Test Node.js ${{ matrix.version }} (${{ matrix.name }}) + run: | + echo "Testing Node.js ${{ matrix.version }} - ${{ matrix.name }}" + node --version + npm --version + + # Тест с артефактами + artifact-test: + runs-on: ubuntu-22.04 + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Create test files + run: | + mkdir -p test-results + echo "Test run: $(date)" > test-results/test-log.txt + echo "System: $(uname -a)" >> test-results/test-log.txt + echo "User: $(whoami)" >> test-results/test-log.txt + + # Создаём JSON отчёт + cat > test-results/report.json << EOF + { + "timestamp": "$(date -Iseconds)", + "status": "success", + "tests_run": 5, + "tests_passed": 5, + "tests_failed": 0 + } + EOF + + - name: Upload test results + uses: actions/upload-artifact@v4 + with: + name: test-results + path: test-results/ + retention-days: 7 \ No newline at end of file