Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions .github/workflows/Assignment1.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: Assignment 1

on:
workflow_dispatch:
push:
branches:
- assignment1
paths:
- 'Assignment1/**'
- '.github/workflows/Assignment1.yml'

permissions:
id-token: write
contents: read

jobs:
list-resources:
runs-on: windows-latest
environment: production

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Azure Login with OIDC
uses: azure/login@v1
with:
client-id: ${{ vars.CLIENT_ID }}
tenant-id: ${{ vars.TENANT_ID }}
subscription-id: ${{ vars.SUBSCRIPTION_ID }}
enable-AzPSSession: true

- name: Run Assignment1 Script
uses: azure/powershell@v1
with:
azPSVersion: 'latest'
inlineScript: |
./Assignment1/Assignment1.ps1

- name: Logout from Azure
if: always()
run: az logout
48 changes: 48 additions & 0 deletions .github/workflows/DeployWebApp.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Deploy Web App

on:
workflow_dispatch:
push:
branches:
- assignment1
paths:
- 'SampleApp/MyFirstAzureWebApp/**'
- '.github/workflows/DeployWebApp.yml'

permissions:
id-token: write
contents: read

jobs:
build-and-deploy:
runs-on: windows-latest
environment: production

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: '8.0.x'

- name: Build and Publish
run: dotnet publish SampleApp/MyFirstAzureWebApp/MyFirstAzureWebApp.csproj --configuration Release --output ./publish

- name: Azure Login with OIDC
uses: azure/login@v1
with:
client-id: ${{ vars.CLIENT_ID }}
tenant-id: ${{ vars.TENANT_ID }}
subscription-id: ${{ vars.SUBSCRIPTION_ID }}

- name: Deploy to Azure Web App
uses: azure/webapps-deploy@v2
with:
app-name: 'cscd396-carsonl15'
package: ./publish

- name: Logout from Azure
if: always()
run: az logout
23 changes: 23 additions & 0 deletions Assignment1/Assignment1.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
$subscription_id = "a7cd0bad-bfc7-40ac-acf2-b07966f12423"

Write-Host "=== Subscription Resources (Before) ==="
Get-AzResource | Select-Object Name, ResourceType, ResourceGroupName, Location | Format-Table -AutoSize

# Extra Credit: Create a resource, list it, then delete it
$resourceGroupName = "rg-cscd396"
$storageName = "cscd396ectemp"
$location = "eastus"

Write-Host "`n=== Extra Credit: Creating temporary storage account ==="
New-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageName -Location $location -SkuName "Standard_LRS"
Write-Host "Storage account '$storageName' created."

Write-Host "`n=== Subscription Resources (After Create) ==="
Get-AzResource | Select-Object Name, ResourceType, ResourceGroupName, Location | Format-Table -AutoSize

Write-Host "`n=== Extra Credit: Deleting temporary storage account ==="
Remove-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageName -Force
Write-Host "Storage account '$storageName' deleted."

Write-Host "`n=== Subscription Resources (After Delete) ==="
Get-AzResource | Select-Object Name, ResourceType, ResourceGroupName, Location | Format-Table -AutoSize
2 changes: 1 addition & 1 deletion SampleApp/MyFirstAzureWebApp/MyFirstAzureWebApp.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web">

<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
Expand Down