Build #149
This file contains 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
name: Build | |
on: | |
push: | |
branches: [ "main" ] | |
pull_request: | |
branches: [ "main" ] | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
jobs: | |
build: | |
runs-on: windows-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
# Install the .NET Core workload | |
- name: Install .NET Core | |
uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: 8.0.x | |
# Publish the application | |
- name: Publish the application | |
run: dotnet publish "./src/NomadIIS/NomadIIS.csproj" /p:PublishProfile="./src/NomadIIS/Properties/PublishProfiles/Release.pubxml" | |
# Copy to output | |
- name: Copy to output folder | |
run: | | |
mkdir dist | |
copy .\src\NomadIIS\bin\Release\net8.0\win-x64\publish\nomad_iis.exe .\dist\nomad_iis.exe | |
# Upload the artifact | |
- name: Upload build artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: nomad_iis | |
path: ./dist | |
test: | |
runs-on: windows-latest | |
needs: ["build"] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
# Install the .NET Core workload | |
- name: Install .NET Core | |
uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: 8.0.x | |
# Install IIS | |
- name: Install IIS | |
run: | | |
$features = @( | |
"IIS-WebServerRole", | |
"IIS-WebServer", | |
"IIS-CommonHttpFeatures", | |
"IIS-HttpErrors", | |
"IIS-HttpRedirect", | |
"IIS-ApplicationDevelopment", | |
"NetFx4Extended-ASPNET45", | |
"IIS-NetFxExtensibility45", | |
"IIS-HealthAndDiagnostics", | |
"IIS-HttpLogging", | |
"IIS-LoggingLibraries", | |
"IIS-RequestMonitor", | |
"IIS-HttpTracing", | |
"IIS-Security", | |
"IIS-RequestFiltering", | |
"IIS-Performance", | |
"IIS-WebServerManagementTools", | |
"IIS-IIS6ManagementCompatibility", | |
"IIS-Metabase", | |
"IIS-ManagementConsole", | |
"IIS-BasicAuthentication", | |
"IIS-WindowsAuthentication", | |
"IIS-StaticContent", | |
"IIS-DefaultDocument", | |
"IIS-WebSockets", | |
"IIS-ApplicationInit", | |
"IIS-ISAPIExtensions", | |
"IIS-ISAPIFilter", | |
"IIS-HttpCompressionStatic", | |
"IIS-ASP", | |
"IIS-ServerSideIncludes", | |
"IIS-ASPNET45" | |
) | |
Enable-WindowsOptionalFeature -Online -FeatureName $features | |
# Download Nomad | |
- name: Run setup.ps1 | |
shell: pwsh | |
run: .\setup.ps1 | |
# Download nomad_iis.exe | |
- uses: actions/download-artifact@master | |
with: | |
name: nomad_iis | |
path: artifacts | |
# TODO: -p:DefineConstants="MANAGEMENT_API" | |
- name: Run tests | |
run: | | |
$script = "dotnet test src\NomadIIS.Tests\NomadIIS.Tests.csproj -e TEST_PLUGIN_DIRECTORY=artifacts" | |
$script | Out-File test.ps1 | |
.\test.ps1 -RunAsAdmin |