Skip to content

WIP

WIP #209

Workflow file for this run

name: .NET
on: [push]
permissions:
contents: read
jobs:
build:
#runs-on: [self-hosted, windows, x64]
runs-on: windows-latest
steps:
#-----------------------------------------------------------------------
# Checkout
- name: Support longpaths
run: git config --system core.longpaths true
- uses: actions/checkout@v4
with:
fetch-depth: 0
# lfs: true
#- name: Checkout LFS objects
# run: git lfs checkout
#-----------------------------------------------------------------------
# Setup environments
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: |
2.2.x
3.1.x
5.0.x
6.0.x
7.0.x
8.0.x
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v2
- name: Setup NuGet package reference
run: |
dotnet nuget add source ${{secrets.GH_LOCAL_NUGET_URL}} -n ref1 -u ${{secrets.GH_LOCAL_NUGET_USER}} -p ${{secrets.GH_LOCAL_NUGET_PASSWORD}} --store-password-in-clear-text --configfile nuget.config
# dotnet nuget add source ${{secrets.GH_NUGET_URL}} -n ref2 -u ${{secrets.GH_NUGET_USER}} -p ${{secrets.GH_NUGET_PASSWORD}} --store-password-in-clear-text --configfile nuget.config
- name: Extract branch name
id: extract_branch_name
run: |
$branch_name=$(git name-rev --name-only --exclude=tags/* HEAD)
echo "Detected current branch: ${branch_name}"
echo "branch_name=${branch_name}" >> $GITHUB_OUTPUT
#-----------------------------------------------------------------------
# Build
- name: Build
run: |
dotnet build -p:Configuration=Release Epoxy-build.sln
msbuild -p:Configuration=Release -maxCpuCount -t:restore src\Epoxy.Core.OpenSilver\Epoxy.Core.OpenSilver.csproj
msbuild -p:Configuration=Release -maxCpuCount src\Epoxy.Core.OpenSilver\Epoxy.Core.OpenSilver.csproj
msbuild -p:Configuration=Release -maxCpuCount -t:restore src\Epoxy.OpenSilver\Epoxy.OpenSilver.csproj
msbuild -p:Configuration=Release -maxCpuCount src\Epoxy.OpenSilver\Epoxy.OpenSilver.csproj
msbuild -p:Configuration=Release -maxCpuCount -t:restore src\FSharp.Epoxy.OpenSilver\FSharp.Epoxy.OpenSilver.fsproj
msbuild -p:Configuration=Release -maxCpuCount src\FSharp.Epoxy.OpenSilver\FSharp.Epoxy.OpenSilver.fsproj
#-----------------------------------------------------------------------
# Test
- name: Test
run: |
dotnet test --verbosity normal -p:Configuration=Release -p:CITest=True tests\Epoxy.Build.Tests\Epoxy.Build.Tests.csproj
timeout-minutes: 10
#-----------------------------------------------------------------------
# Build NuGet packages
- name: Build NuGet packages
run: |
dotnet pack -p:Configuration=Release -o artifacts src\Epoxy.Core.Wpf\Epoxy.Core.Wpf.csproj
dotnet pack -p:Configuration=Release -o artifacts src\Epoxy.Core.Avalonia\Epoxy.Core.Avalonia.csproj
dotnet pack -p:Configuration=Release -o artifacts src\Epoxy.Core.Avalonia11\Epoxy.Core.Avalonia11.csproj
dotnet pack -p:Configuration=Release -o artifacts src\Epoxy.Core.Maui\Epoxy.Core.Maui.csproj
msbuild -t:pack -p:Configuration=Release -p:PackageOutputPath=..\..\artifacts src\Epoxy.Core.OpenSilver\Epoxy.Core.OpenSilver.csproj
dotnet pack -p:Configuration=Release -o artifacts src\Epoxy.Build\Epoxy.Build.csproj
dotnet pack -p:Configuration=Release -o artifacts src\Epoxy.Wpf\Epoxy.Wpf.csproj
dotnet pack -p:Configuration=Release -o artifacts src\Epoxy.Avalonia\Epoxy.Avalonia.csproj
dotnet pack -p:Configuration=Release -o artifacts src\Epoxy.Avalonia11\Epoxy.Avalonia11.csproj
dotnet pack -p:Configuration=Release -o artifacts src\Epoxy.Maui\Epoxy.Maui.csproj
msbuild -t:pack -p:Configuration=Release -p:PackageOutputPath=..\..\artifacts src\Epoxy.OpenSilver\Epoxy.OpenSilver.csproj
dotnet pack -p:Configuration=Release -o artifacts src\FSharp.Epoxy.Wpf\FSharp.Epoxy.Wpf.fsproj
dotnet pack -p:Configuration=Release -o artifacts src\FSharp.Epoxy.Avalonia\FSharp.Epoxy.Avalonia.fsproj
dotnet pack -p:Configuration=Release -o artifacts src\FSharp.Epoxy.Avalonia11\FSharp.Epoxy.Avalonia11.fsproj
msbuild -t:pack -p:Configuration=Release -p:PackageOutputPath=..\..\artifacts src\FSharp.Epoxy.OpenSilver\FSharp.Epoxy.OpenSilver.fsproj
#-----------------------------------------------------------------------
# Deploy packages (develop)
- name: Deploy NuGet package (develop/ref1)
if: startsWith( github.ref, 'refs/tags/' )
run: |
dotnet nuget push artifacts\Epoxy.Core.Wpf.*.nupkg --source ref1
dotnet nuget push artifacts\Epoxy.Core.Avalonia.*.nupkg --source ref1
dotnet nuget push artifacts\Epoxy.Core.Avalonia11.*.nupkg --source ref1
dotnet nuget push artifacts\Epoxy.Core.OpenSilver.*.nupkg --source ref1
dotnet nuget push artifacts\Epoxy.Core.Maui.*.nupkg --source ref1
dotnet nuget push artifacts\Epoxy.Build.*.nupkg --source ref1
dotnet nuget push artifacts\Epoxy.Wpf.*.nupkg --source ref1
dotnet nuget push artifacts\Epoxy.Avalonia.*.nupkg --source ref1
dotnet nuget push artifacts\Epoxy.Avalonia11.*.nupkg --source ref1
dotnet nuget push artifacts\Epoxy.OpenSilver.*.nupkg --source ref1
dotnet nuget push artifacts\Epoxy.Maui.*.nupkg --source ref1
dotnet nuget push artifacts\FSharp.Epoxy.Wpf.*.nupkg --source ref1
dotnet nuget push artifacts\FSharp.Epoxy.Avalonia.*.nupkg --source ref1
dotnet nuget push artifacts\FSharp.Epoxy.Avalonia11.*.nupkg --source ref1
dotnet nuget push artifacts\FSharp.Epoxy.OpenSilver.*.nupkg --source ref1
#-----------------------------------------------------------------------
# Deploy packages (main)
#- name: Deploy NuGet package (main/ref2)
# if: (startsWith( github.ref, 'refs/tags/' )) && (endsWith(steps.extract_branch_name.outputs.branch_name, 'main'))
# run: |
# dotnet nuget push artifacts\Epoxy.Core.Wpf.*.nupkg --source ref2 --api-key ${{secrets.GH_NUGET_APIKEY}}
# dotnet nuget push artifacts\Epoxy.Core.Avalonia.*.nupkg --source ref2 --api-key ${{secrets.GH_NUGET_APIKEY}}
# dotnet nuget push artifacts\Epoxy.Core.Avalonia11.*.nupkg --source ref2 --api-key ${{secrets.GH_NUGET_APIKEY}}
# dotnet nuget push artifacts\Epoxy.Core.OpenSilver.*.nupkg --source ref2 --api-key ${{secrets.GH_NUGET_APIKEY}}
# dotnet nuget push artifacts\Epoxy.Core.Maui.*.nupkg --source ref2 --api-key ${{secrets.GH_NUGET_APIKEY}}
# dotnet nuget push artifacts\Epoxy.Build.*.nupkg --source ref2 --api-key ${{secrets.GH_NUGET_APIKEY}}
# dotnet nuget push artifacts\Epoxy.Wpf.*.nupkg --source ref2 --api-key ${{secrets.GH_NUGET_APIKEY}}
# dotnet nuget push artifacts\Epoxy.Avalonia.*.nupkg --source ref2 --api-key ${{secrets.GH_NUGET_APIKEY}}
# dotnet nuget push artifacts\Epoxy.Avalonia11.*.nupkg --source ref2 --api-key ${{secrets.GH_NUGET_APIKEY}}
# dotnet nuget push artifacts\Epoxy.OpenSilver.*.nupkg --source ref2 --api-key ${{secrets.GH_NUGET_APIKEY}}
# dotnet nuget push artifacts\Epoxy.Maui.*.nupkg --source ref2 --api-key ${{secrets.GH_NUGET_APIKEY}}
# dotnet nuget push artifacts\FSharp.Epoxy.Wpf.*.nupkg --source ref2 --api-key ${{secrets.GH_NUGET_APIKEY}}
# dotnet nuget push artifacts\FSharp.Epoxy.Avalonia.*.nupkg --source ref2 --api-key ${{secrets.GH_NUGET_APIKEY}}
# dotnet nuget push artifacts\FSharp.Epoxy.Avalonia11.*.nupkg --source ref2 --api-key ${{secrets.GH_NUGET_APIKEY}}
# dotnet nuget push artifacts\FSharp.Epoxy.OpenSilver.*.nupkg --source ref2 --api-key ${{secrets.GH_NUGET_APIKEY}}