Skip to content

Start publishing to an internal Azure feed #4

Start publishing to an internal Azure feed

Start publishing to an internal Azure feed #4

Workflow file for this run

name: Build & Publish
on:
workflow_dispatch:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
build:
runs-on: windows-latest
env:
Configuration: Release
outputs:
IS_PUBLISH_TO_NUGETORG: ${{ steps.buildVariables.outputs.IS_PUBLISH_TO_NUGETORG }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 7.0.x
- name: Set Build Variables
id: buildVariables
run: |
$VersionTag = ''
#switch -regex ($Env:GITHUB_REF_NAME) {
# '^main' {
# $PUBLISH_TO_NUGETORG = 'true'
# }
# default {
$PUBLISH_TO_NUGETORG = 'false'
$VersionTag = "dev"
# }
#}
$NuGetPackageVersion = dotnet msbuild Directory.Build.props /t:GetPackageVersion
"$NuGetPackageVersion" -match "(?<=NuGetPackageVersion:)(.*)"
$NuGetPackageVersion = $Matches[0]
if ($VersionTag -ne '') {
$Timestamp = (Get-Date).ToUniversalTime().ToString("yyyyMMddHHmmss")
$NuGetPackageVersion = $NuGetPackageVersion + "-" + $VersionTag + "." + $Timestamp
}
echo "NuGetPackageVersion=$NuGetPackageVersion" >> $Env:GITHUB_ENV
echo "IS_PUBLISH_TO_NUGETORG=$PUBLISH_TO_NUGETORG" >> $Env:GITHUB_OUTPUT
write-host [INFO] NuGet Package Version: $NuGetPackageVersion
- name: Build & Pack
run: dotnet build --configuration $env:Configuration -p:Version=$Env:NuGetPackageVersion
- name: Test
run: dotnet test --configuration $env:Configuration --no-build
- name: Publish
run: |
if ($PUBLISH_TO_NUGETORG) {
dotnet nuget add source ${{ vars.NUGET_ORG_FEED }} --name NuGetFeed4Deploy --password ${{ secrets.NUGET_ORG_TOKEN }}
} else {
dotnet nuget add source ${{ vars.AZURE_NEXUS_PRERELEASES_FEED }} --name NuGetFeed4Deploy --password ${{ secrets.AZURE_ARTIFACTS_TOKEN }}
}
Get-ChildItem .\_packages\$Env:Configuration\*.nupkg -Recurse |
ForEach-Object {
dotnet nuget push $_.FullName --source NuGetFeed4Deploy --api-key DUMMY-KEY
}