This repository provides comprehensive automation scripts and templates for setting up Windows Server 2025 DataCenter. The GitHub self-hosted runner includes IIS, Oracle Database, and third-party application deployment capabilities.
-
Prerequisites
- Azure subscription with appropriate permissions
- Windows Server 2025 DataCenter VM in Azure
- PowerShell 5.1 or later
- GitHub repository with Actions enabled
-
Initial Setup
# Clone this repository git clone https://github.com/your-org/gh-runner-win-oracle-app-deploy-test.git cd gh-runner-win-oracle-app-deploy-test # Run the main setup script .\scripts\setup\Install-GitHubRunnerEnvironment.ps1
scripts/- PowerShell automation scriptssetup/- Server setup and configurationdeployment/- Application deployment automationvalidation/- Testing and validation scriptsutilities/- Helper functions and utilitiescleanup/- Automated Azure resource cleanup for cost optimization
configs/- Configuration files for IIS, Oracle, and applicationstemplates/- GitHub Actions workflows and Azure ARM templatesdocs/- Comprehensive documentation and guidestests/- Unit and integration testsexamples/- Example configurations and use cases
- ✅ Automated Windows Server 2025 setup
- ✅ GitHub self-hosted runner installation
- ✅ IIS configuration with application pools
- ✅ Oracle Express Edition setup
- ✅ Third-party application deployment from Azure Blob Storage
- ✅ Security hardening and performance optimization
- ✅ Comprehensive logging and monitoring
- ✅ Automated testing and validation
- ✅ Automated daily resource cleanup for cost optimization
See the configs/ directory for example configurations:
- IIS website and application pool settings
- Oracle database connection strings
- Application deployment parameters
This project includes automated cleanup scripts that run daily at 23:00 to delete the entire Azure resource group.
# Configure your Azure details (run as Administrator)
cd scripts\cleanup
.\Setup-ScheduledCleanup.ps1 -ResourceGroupName "your-rg-name" -SubscriptionId "your-subscription-id"
# Test first with dry run
.\Remove-AzureResourceGroup.ps1 -ResourceGroupName "your-rg-name" -SubscriptionId "your-subscription-id" -DryRun
# Check scheduled task status
.\Manage-CleanupTask.ps1 -Action StatusFor detailed cleanup documentation, see scripts/cleanup/README.md.
Run the validation scripts to ensure proper setup:
.\scripts\validation\Test-Environment.ps1
.\scripts\validation\Test-Applications.ps1This project is licensed under the MIT License - see the LICENSE file for details.
Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.
- Azure Monitor Integration Guide - Comprehensive guide for integrating with Azure Monitor
- Azure VM Setup Guide - Step-by-step instructions for setting up Azure VMs
- GitHub CLI Azure Authorization Setup - Complete guide for setting up GitHub CLI and Azure service principal authentication
- Cleanup Scripts Documentation - Detailed guide for automated Azure resource cleanup
- Integration Tests Guide - Documentation for running integration tests
- Quality Checks Workflow - Documentation for the quality checks GitHub Actions workflow
- Workflow Configuration Guide - Configuration options for GitHub Actions workflows
All documentation is organized into the following categories:
- Setup Guides: Step-by-step installation and configuration instructions
- Scripts Documentation: Detailed guides for PowerShell automation scripts
- Integration: Testing and validation documentation
- Workflows: GitHub Actions and CI/CD pipeline documentation
- Monitoring: Azure Monitor and logging integration guides