-
Notifications
You must be signed in to change notification settings - Fork 10
144 lines (123 loc) · 8.1 KB
/
build.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
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@v3
with:
fetch-depth: 0
# lfs: true
#- name: Checkout LFS objects
# run: git lfs checkout
#-----------------------------------------------------------------------
# Setup environments
- name: Setup .NET
uses: actions/setup-dotnet@v3
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@v1.0.3
- 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.Xamarin.Forms\Epoxy.Core.Xamarin.Forms.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
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.Xamarin.Forms\Epoxy.Xamarin.Forms.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
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
dotnet build -p:Configuration=Release templates\Epoxy.Templates.csproj
dotnet pack -p:Configuration=Release -o artifacts templates\Epoxy.Templates.csproj
#-----------------------------------------------------------------------
# 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.Xamarin.Forms.*.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.Build.*.nupkg --source ref1
dotnet nuget push artifacts\Epoxy.Wpf.*.nupkg --source ref1
dotnet nuget push artifacts\Epoxy.Xamarin.Forms.*.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\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
dotnet nuget push artifacts\Epoxy.Templates.*.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.Xamarin.Forms.*.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.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.Xamarin.Forms.*.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\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}}
# dotnet nuget push artifacts\Epoxy.Templates.*.nupkg --source ref2 --api-key ${{secrets.GH_NUGET_APIKEY}}