Skip to content

CI Build

CI Build #145

Workflow file for this run

name: CI Build
on:
workflow_dispatch:
inputs:
libraryVersion:
description: 'The version of the library to use when compiling and packaging.'
default: 0.0.0-alpha
required: false
type: string
push:
branches: [ "main" ]
paths:
- 'src/**/*'
- '.github/workflows/*'
- '.github/actions/*'
pull_request:
branches: [ "main" ]
paths:
- 'src/**/*'
- '.github/workflows/*'
- '.github/actions/*'
workflow_call:
inputs:
libraryVersion:
type: string
description: 'The version of the library to use when compiling and packaging.'
required: true
env:
CI: true
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
DOTNET_NOLOGO: true
jobs:
build:
name: Build, test, and pack
runs-on: windows-latest
permissions:
checks: write
steps:
- uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 9.x
- name: Update project versions
run: |
Get-ChildItem **/*.csproj -Recurse | ForEach-Object {
$FileContent = Get-Content $_
$NewVersion = '${{ inputs.libraryVersion }}'
if($NewVersion -eq '') { Return }
If($FileContent -like '*0.0.0-alpha*')
{
$FileContent -replace '0.0.0-alpha',$NewVersion | Set-Content -Path $_
}
}
shell: pwsh
# Build and pack Twilio.AspNet.Common
- name: (Twilio.AspNet.Common) Restore
run: dotnet restore
working-directory: src/Twilio.AspNet.Common/
shell: pwsh
- name: (Twilio.AspNet.Common) Build
run: dotnet build --no-restore --configuration Release
working-directory: src/Twilio.AspNet.Common/
shell: pwsh
- name: (Twilio.AspNet.Common) Pack
run: dotnet pack -c Release -o ..\..\
working-directory: src/Twilio.AspNet.Common/
shell: pwsh
- name: (Twilio.AspNet.Common) Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: Twilio.AspNet.Common NuGet Package
path: |
Twilio.AspNet.Common.${{ inputs.libraryVersion || '0.0.0-alpha' }}.nupkg
Twilio.AspNet.Common.${{ inputs.libraryVersion || '0.0.0-alpha' }}.snupkg
# Build, test, and pack Twilio.AspNet.Core
- name: (Twilio.AspNet.Core) Restore
run: dotnet restore
working-directory: src/Twilio.AspNet.Core/
shell: pwsh
- name: (Twilio.AspNet.Core) Build
run: dotnet build --no-restore --configuration Release
working-directory: src/Twilio.AspNet.Core/
shell: pwsh
- name: (Twilio.AspNet.Core.UnitTests) Restore
run: dotnet restore
working-directory: src/Twilio.AspNet.Core.UnitTests/
shell: pwsh
- name: (Twilio.AspNet.Core.UnitTests) Build
run: dotnet build --no-restore
working-directory: src/Twilio.AspNet.Core.UnitTests/
shell: pwsh
- name: (Twilio.AspNet.Core.UnitTests) Test
run: dotnet test --no-build --no-restore
working-directory: src/Twilio.AspNet.Core.UnitTests/
shell: pwsh
- name: (Twilio.AspNet.Core) Pack
run: dotnet pack --no-build --no-restore -c Release -o ..\..\
working-directory: src/Twilio.AspNet.Core/
shell: pwsh
- name: (Twilio.AspNet.Core) Upload Artifacts
uses: actions/upload-artifact@v3
with:
name: Twilio.AspNet.Core NuGet Package
path: |
Twilio.AspNet.Core.${{ inputs.libraryVersion || '0.0.0-alpha' }}.nupkg
Twilio.AspNet.Core.${{ inputs.libraryVersion || '0.0.0-alpha' }}.snupkg
# Build, test, and pack Twilio.AspNet.Mvc
- name: (Twilio.AspNet.Mvc) Restore
run: dotnet restore
working-directory: src/Twilio.AspNet.Mvc/
shell: pwsh
- name: (Twilio.AspNet.Mvc) Build
run: dotnet build --no-restore --configuration Release
working-directory: src/Twilio.AspNet.Mvc/
shell: pwsh
- name: (Twilio.AspNet.Mvc.UnitTests) Restore
run: dotnet restore
working-directory: src/Twilio.AspNet.Mvc.UnitTests/
shell: pwsh
- name: (Twilio.AspNet.Mvc.UnitTests) Build
run: dotnet build --no-restore
working-directory: src/Twilio.AspNet.Mvc.UnitTests/
shell: pwsh
- name: (Twilio.AspNet.Mvc.UnitTests) Test
run: dotnet test --no-build --no-restore
working-directory: src/Twilio.AspNet.Mvc.UnitTests/
shell: pwsh
- name: (Twilio.AspNet.Mvc) Pack
run: dotnet pack --no-build --no-restore -c Release -o ..\..\
working-directory: src/Twilio.AspNet.Mvc/
shell: pwsh
- name: (Twilio.AspNet.Mvc) Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: Twilio.AspNet.Mvc NuGet Package
path: |
Twilio.AspNet.Mvc.${{ inputs.libraryVersion || '0.0.0-alpha' }}.nupkg
Twilio.AspNet.Mvc.${{ inputs.libraryVersion || '0.0.0-alpha' }}.snupkg