11name : OpenSilver Build
2- env :
3- next-release-version : ' 3.4.0'
4- current-release-version : ' 3.3.0'
2+
53on :
64 push :
75 branches :
86 - develop
7+
8+ workflow_dispatch :
9+ inputs :
10+ version :
11+ description : ' OpenSilver.MvvmLight package version'
12+ required : false
13+ default : ' '
14+ publish-myget :
15+ description : ' Publish to MyGet.org'
16+ required : false
17+ type : boolean
18+ default : true
19+ publish-nuget-org :
20+ description : ' Publish to NuGet.org'
21+ required : false
22+ type : boolean
23+ default : false
24+
25+ env :
26+ NEXT_RELEASE_VERSION : ' 3.4.0'
27+ VERSION : ${{ github.event_name == 'workflow_dispatch' && inputs.version || '' }}
28+ PUBLISH_MYGET : ${{ github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && inputs['publish-myget']) }}
29+ PUBLISH_NUGET_ORG : ${{ github.event_name == 'workflow_dispatch' && inputs['publish-nuget-org'] || false }}
30+
931jobs :
1032 OpenSilver-Build :
11- # We should not run these steps on the forks by default.
12- if : github.repository_owner == 'OpenSilver'
33+ if : github.repository_owner == 'barjonp'
1334 runs-on : windows-latest
1435 steps :
1536 - uses : microsoft/setup-msbuild@v1.1
@@ -19,37 +40,56 @@ jobs:
1940 with :
2041 dotnet-version : ' 10.x'
2142 dotnet-quality : ' ga'
43+
2244 - name : Clone OpenSilver repo
23- uses : actions/checkout@v2
45+ uses : actions/checkout@v3
2446 with :
2547 ref : ${{ github.ref }}
48+
2649 - name : Restore Packages
2750 run : ./restore-packages-opensilver.bat
51+
2852 - name : Update compiler
2953 run : ./build/update-nuget-packages.bat
30- - name : Format Version Suffix
31- id : format-suffix
32- run : echo "suffix=$(date +'%Y-%m-%d-%H%M%S')-${{ env.GITHUB_SHA_SHORT }}" >> $env:GITHUB_OUTPUT
54+
3355 - name : Format Package Version
34- id : format-version
35- run : echo "version=${{ env.next-release-version }}-preview-${{ steps.format-suffix.outputs.suffix }}" >> $env:GITHUB_OUTPUT
56+ id : version
57+ shell : pwsh
58+ run : |
59+ $v = "${{ env.VERSION }}"
60+ if ([string]::IsNullOrWhiteSpace($v))
61+ {
62+ $timestamp = Get-Date -Format "yyyy-MM-dd-HHmmss"
63+ $v = "$env:NEXT_RELEASE_VERSION-preview-$timestamp-$env:GITHUB_SHA_SHORT"
64+ }
65+ "value=$v" >> $env:GITHUB_OUTPUT
66+
3667 - name : Build OpenSilver NuGet package
37- run : ./build/build-nuget-package-OpenSilver.bat ${{ steps.format-version.outputs.version }}
68+ run : ./build/build-nuget-package-OpenSilver.bat ${{ steps.version.outputs.value }}
69+
3870 - name : Build OpenSilver.Simulator NuGet package
39- run : ./build/build-nuget-package-OpenSilver.Simulator.bat ${{ steps.format-version.outputs.version }}
71+ run : ./build/build-nuget-package-OpenSilver.Simulator.bat ${{ steps.version.outputs.value }}
72+
4073 - name : Build OpenSilver.WebAssembly NuGet package
41- run : ./build/build-nuget-package-OpenSilver.Wasm.bat ${{ steps.format-version.outputs.version }}
74+ run : ./build/build-nuget-package-OpenSilver.Wasm.bat ${{ steps.version.outputs.value }}
75+
4276 - name : Build OpenSilver.MauiHybrid NuGet package
43- run : ./build/build-nuget-package-OpenSilver.MauiHybrid.bat ${{ steps.format-version.outputs.version }}
77+ run : ./build/build-nuget-package-OpenSilver.MauiHybrid.bat ${{ steps.version.outputs.value }}
78+
4479 - name : Build OpenSilver.Photino NuGet package
45- run : ./build/build-nuget-package-OpenSilver.Photino.bat ${{ steps.format-version.outputs.version }}
46- - uses : actions/upload-artifact@v4
47- with :
48- name : OpenSilver
49- path : " build/output/OpenSilver"
50- - name : Upload packages
80+ run : ./build/build-nuget-package-OpenSilver.Photino.bat ${{ steps.version.outputs.value }}
81+
82+ - name : Show effective values
5183 run : |
52- dotnet nuget push "build\output\OpenSilver\*.nupkg" -k ${{ secrets.GITHUB_TOKEN }} -s https://nuget.pkg.github.com/${{ env.GITHUB_REPOSITORY_OWNER_PART }}/index.json
84+ echo "VERSION=${VERSION}"
85+ echo "PUBLISH_MYGET=${PUBLISH_MYGET}"
86+ echo "PUBLISH_NUGET_ORG=${PUBLISH_NUGET_ORG}"
87+ echo "PKG_VERSION=${{ steps.version.outputs.value }}"
88+
5389 - name : Upload packages to MyGet
54- run : |
55- dotnet nuget push "build\output\OpenSilver\*.nupkg" -k ${{ secrets.MYGET_TOKEN }} -s https://www.myget.org/F/opensilver/api/v2/package
90+ if : ${{ env.PUBLISH_MYGET == 'true' }}
91+ run : echo "Uploading packages to MyGet..."
92+
93+ - name : Upload packages to NuGet.org
94+ if : ${{ env.PUBLISH_NUGET_ORG == 'true' }}
95+ run : echo "Uploading packages to NuGet.org..."
0 commit comments