|
1 | 1 | name: OpenSilver.ControlsKit Build |
| 2 | + |
2 | 3 | env: |
3 | | - next-release-version: '3.4.0' |
4 | | - opensilver-package-source: 'https://www.myget.org/F/opensilver/api/v3/index.json' |
5 | | - suffix: 'preview' |
| 4 | + NEXT_RELEASE_VERSION: '3.4.0' |
| 5 | + |
6 | 6 | on: |
7 | 7 | push: |
8 | 8 | branches: |
9 | 9 | - master |
10 | 10 | workflow_dispatch: |
11 | 11 | inputs: |
12 | | - opensilver-version: |
13 | | - description: 'OpenSilver package version' |
14 | | - default: 'latest' |
15 | | - required: true |
| 12 | + opensilver-version: |
| 13 | + description: 'OpenSilver version' |
| 14 | + required: true |
| 15 | + version: |
| 16 | + description: 'OpenSilver.ControlsKit package version' |
| 17 | + required: false |
| 18 | + default: '' |
| 19 | + publish-myget: |
| 20 | + description: 'Publish to MyGet.org' |
| 21 | + required: false |
| 22 | + type: boolean |
| 23 | + default: true |
| 24 | + publish-nuget-org: |
| 25 | + description: 'Publish to NuGet.org' |
| 26 | + required: false |
| 27 | + type: boolean |
| 28 | + default: false |
| 29 | + |
16 | 30 | jobs: |
17 | 31 | OpenSilver-ControlsKit-Build: |
18 | | - #We should not run these steps on the forks by default. |
19 | 32 | if: github.repository_owner == 'OpenSilver' |
20 | 33 | runs-on: windows-latest |
21 | 34 | steps: |
22 | | - - name: Add msbuild to PATH |
23 | | - uses: microsoft/setup-msbuild@v1.1.3 |
| 35 | + - uses: microsoft/setup-msbuild@v1.1.3 |
24 | 36 | - name: Inject slug/short variables |
25 | 37 | uses: rlespinasse/github-slug-action@v4.x |
26 | | - - name: Install DotNet |
27 | | - uses: actions/setup-dotnet@v3 |
| 38 | + - uses: actions/setup-dotnet@v5 |
28 | 39 | with: |
29 | | - dotnet-version: '9.0.102' |
30 | | - - name: Clone repo |
| 40 | + dotnet-version: '10.x' |
| 41 | + dotnet-quality: 'ga' |
| 42 | + |
| 43 | + - name: Clone OpenSilver.ControlsKit repo |
31 | 44 | uses: actions/checkout@v3 |
32 | 45 | with: |
33 | 46 | ref: ${{ github.ref }} |
34 | | - - name: Fill vars |
35 | | - id: vars |
| 47 | + |
| 48 | + - name: Format Package Version |
| 49 | + id: version |
| 50 | + shell: pwsh |
36 | 51 | run: | |
37 | | - $version = "${{ github.event.inputs.opensilver-version }}" |
38 | | - $source = "${{ env.opensilver-package-source }}" |
39 | | - if ($version -eq "latest" -or $version -eq "") { |
40 | | - $version = nuget list -Source $source -Prerelease | ? { $_ -match "^OpenSilver\s+(.*)" } | ForEach { $_.split(" ")[1] } |
| 52 | + $v = "${{ github.event.inputs.version }}" |
| 53 | + if ([string]::IsNullOrWhiteSpace($v)) |
| 54 | + { |
| 55 | + $timestamp = Get-Date -Format "yyyy-MM-dd-HHmmss" |
| 56 | + $v = "$env:NEXT_RELEASE_VERSION-preview-$timestamp-$env:GITHUB_SHA_SHORT" |
41 | 57 | } |
42 | | - echo "Version: $version" |
43 | | - echo "opensilver-version=$version" >> $env:GITHUB_OUTPUT |
44 | | - echo "package-version=${{ env.next-release-version }}-${{ env.suffix }}-$(date +'%Y-%m-%d-%H%M%S')-${{ env.GITHUB_SHA_SHORT }}" >> $env:GITHUB_OUTPUT |
45 | | - - name: Build OpenSilver.ControlsKit package |
| 58 | + "value=$v" >> $env:GITHUB_OUTPUT |
| 59 | +
|
| 60 | + - name: Build OpenSilver.ControlsKit NuGet package |
46 | 61 | working-directory: src\build |
47 | 62 | run: | |
48 | | - ./build-nuget-package.bat ${{ steps.vars.outputs.package-version }} ${{ steps.vars.outputs.opensilver-version }} |
49 | | - - name: Upload artifacts |
50 | | - uses: actions/upload-artifact@v4 |
51 | | - with: |
52 | | - name: ControlsKit |
53 | | - path: src\build\output\ControlsKit\*.nupkg |
| 63 | + ./build-nuget-package.bat ${{ steps.version.outputs.value }} ${{ github.event.inputs.opensilver-version }} |
| 64 | +
|
54 | 65 | - name: Upload packages to MyGet |
| 66 | + if: ${{ inputs['publish-myget'] }} |
| 67 | + run: | |
| 68 | + dotnet nuget push "src\build\output\ControlsKit\*.nupkg" -k ${{ secrets.MYGET_TOKEN }} -s https://www.myget.org/F/opensilver/api/v2/package |
| 69 | +
|
| 70 | + - name: Upload packages to NuGet.org |
| 71 | + if: ${{ inputs['publish-nuget-org'] }} |
55 | 72 | run: | |
56 | | - dotnet nuget push "src\build\output\ControlsKit\*.nupkg" -k ${{ secrets.MYGET_TOKEN }} -s ${{ secrets.MYGET_PUBLIC_FEED }} |
| 73 | + dotnet nuget push "src\build\output\ControlsKit\*.nupkg" -k ${{ secrets.NUGET_ORG_API_KEY }} -s https://api.nuget.org/v3/index.json |
0 commit comments