Skip to content

Commit 1868803

Browse files
github-actions[bot]petesramekPete Sramek
authored
Promote develop/1.0 to preview/1.0 (#59)
Co-authored-by: Pete Sramek <me@petesramek.com> Co-authored-by: Pete Sramek <petr.sramek@dropoutcoder.com>
1 parent 3bfeedb commit 1868803

File tree

3 files changed

+260
-41
lines changed

3 files changed

+260
-41
lines changed

.github/workflows/build.yml

Lines changed: 0 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,6 @@ name: Build
22

33
on:
44
workflow_dispatch:
5-
pull_request_target:
6-
branches:
7-
- 'preview/**'
8-
- 'release/**'
9-
paths:
10-
- 'src/**'
115
push:
126
branches:
137
- '**'
@@ -221,41 +215,6 @@ jobs:
221215
working-directory: ${{ runner.temp }}/${{ env.nuget-packages-directory }}
222216
dotnet-sdk-version: ${{ env.dotnet-sdk-version }}'
223217

224-
# benchmark:
225-
# if: ${{ github.env.is_release || vars.BENCHMARKDOTNET_RUN_OVERRIDE == 'true' }}
226-
# name: Benchmark with .NET CLI on ${{ matrix.os }}
227-
# needs: [build]
228-
# strategy:
229-
# matrix:
230-
# os: [ubuntu-latest, windows-latest, macos-latest]
231-
# runs-on: ${{ matrix.os }}
232-
# steps:
233-
# - name: 'Checkout ${{ github.head_ref || github.ref }}'
234-
# uses: actions/checkout@v5
235-
# - name: Install .NET SDK
236-
# uses: actions/setup-dotnet@v4
237-
# with:
238-
# dotnet-version: |
239-
# 8.x
240-
# 9.x
241-
# - name: Download Build
242-
# uses: actions/download-artifact@v5
243-
# with:
244-
# name: build
245-
# - name: Benchmark
246-
# working-directory: ${{ vars.BENCHMARKDOTNET_WORKING_DIRECTORY }}
247-
# run: dotnet run --configuration ${{ env.build-configuration }} /p:Platform=${{ env.build-platform }} --framework ${{ vars.DEFAULT_BUILD_FRAMEWORK }} --runtimes ${{ vars.BENCHMARKDOTNET_RUNTIMES }} --filter ${{ vars.BENCHMARKDOTNET_FILTER }} --artifacts ${{ runner.temp }}/benchmarks/ --exporters GitHub --memory --iterationTime 100 --join
248-
# - name: Upload Benchmark Results
249-
# uses: actions/upload-artifact@v4
250-
# with:
251-
# name: benchmark-${{ matrix.os }}
252-
# path: |
253-
# ${{ runner.temp }}/benchmarks/**/*-report-github.md
254-
# - name: Write Benchmark Summary
255-
# shell: bash
256-
# run: cat **/*-report-github.md > $GITHUB_STEP_SUMMARY
257-
# working-directory: ${{ runner.temp }}/benchmarks/
258-
259218
generate-assembly-metadata:
260219
name: 'Generate assembly metadata'
261220
needs: [versioning, build]

.github/workflows/promote-branch.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,15 @@ jobs:
171171
echo "Default branch is '${{ env.base-branch }}'"
172172
echo "Current branch is '${{ env.current-branch }}'"
173173
exit 1
174+
175+
- name: 'Validate target and current branch'
176+
if: ${{ env.target-branch == env.current-branch }}
177+
run: |
178+
echo "Default and target branch cannot be the same."
179+
echo "Default branch is '${{ env.target-branch }}'"
180+
echo "Current branch is '${{ env.current-branch }}'"
181+
exit 1
182+
174183
- name: 'Validate pull request'
175184
if: ${{ env.pull-request-exists == 'true' }}
176185
run: |

.github/workflows/pull-request.yml

Lines changed: 251 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,251 @@
1+
name: Build
2+
3+
on:
4+
pull_request_target:
5+
branches:
6+
- 'preview/**'
7+
- 'release/**'
8+
paths:
9+
- '**'
10+
11+
permissions:
12+
actions: read
13+
pages: write
14+
id-token: write
15+
contents: write
16+
17+
concurrency:
18+
group: build-${{ github.head_ref || github.ref }}
19+
cancel-in-progress: false
20+
21+
env:
22+
dotnet-sdk-version: '9.x'
23+
build-configuration: 'Release'
24+
build-platform: 'Any CPU'
25+
git-version: '6.0.x'
26+
test-result-directory: 'test-results'
27+
nuget-packages-directory: 'nuget-packages'
28+
29+
jobs:
30+
workflow-variables:
31+
name: 'Set workflow variables'
32+
runs-on: ubuntu-latest
33+
34+
outputs:
35+
is-release: ${{ startsWith(github.ref_name, 'release') }}
36+
is-preview: ${{ startsWith(github.ref_name, 'preview') }}
37+
38+
steps:
39+
- name: 'Set workflow variables'
40+
id: github
41+
run: |
42+
echo "is-release:${{ startsWith(github.ref_name, 'release') }}"
43+
echo "is-preview:${{ startsWith(github.ref_name, 'preview') }}"
44+
45+
versioning:
46+
name: 'Extract version from branch'
47+
runs-on: ubuntu-latest
48+
outputs:
49+
friendly-version: ${{ steps.format-version.outputs.friendly-version }}
50+
assembly-version: ${{ steps.format-version.outputs.assembly-version }}
51+
assembly-informational-version: ${{ steps.format-version.outputs.assembly-informational-version }}
52+
file-version: ${{ steps.format-version.outputs.file-version }}
53+
package-version: ${{ steps.format-version.outputs.package-version }}
54+
steps:
55+
- name: 'Checkout ${{ github.head_ref || github.ref }}'
56+
uses: actions/checkout@v5
57+
- name: 'Setup .NET ${{ env.dotnet-sdk-version }}'
58+
uses: actions/setup-dotnet@v4
59+
with:
60+
dotnet-version: ${{ env.dotnet-sdk-version }}
61+
- name: 'Extract version from branch name'
62+
id: extract-version
63+
uses: './.github/actions/extract-version'
64+
with:
65+
branch-name: ${{ github.ref_name }}
66+
- name: 'Create pre-release tag'
67+
shell: bash
68+
id: create-pre-release-tag
69+
run: |
70+
if [[ '${{ needs.workflow-variables.outputs.is-release }}' == 'true' ]]; then
71+
echo "pre-release-tag=" >> $GITHUB_OUTPUT
72+
else
73+
pre_release_tag=$(echo ${{ github.ref_name }} | tr '/' '.' | tr '-' '.'| tr '_' '.')
74+
echo "pre-release-tag=$pre_release_tag" >> $GITHUB_OUTPUT
75+
fi
76+
- name: 'Create build number'
77+
shell: bash
78+
id: create-build-number
79+
run: |
80+
git fetch --unshallow --filter=tree:0
81+
build_number=$(git rev-list --count origin/${{ github.ref_name }} ^origin/main)
82+
echo "build-number=$build_number" >> $GITHUB_OUTPUT
83+
- name: 'Format version'
84+
id: format-version
85+
uses: ./.github/actions/format-version
86+
with:
87+
version: ${{ steps.extract-version.outputs.version }}
88+
patch: ${{ github.run_number }}
89+
build-number: ${{ steps.create-build-number.outputs.build-number }}
90+
sha: ${{ github.sha }}
91+
pre-release-tag: ${{ steps.create-pre-release-tag.outputs.pre-release-tag }}
92+
93+
build:
94+
name: 'Compile source code'
95+
needs: [workflow-variables, versioning]
96+
runs-on: ubuntu-latest
97+
98+
env:
99+
assembly-version: ${{ needs.versioning.outputs.assembly-version }}
100+
assembly-informational-version: ${{ needs.versioning.outputs.assembly-informational-version }}
101+
file-version: ${{ needs.versioning.outputs.file-version }}
102+
103+
steps:
104+
- name: 'Checkout ${{ github.head_ref || github.ref }}'
105+
uses: actions/checkout@v5
106+
107+
- name: 'Compile source code'
108+
uses: ./.github/actions/compile
109+
with:
110+
project-path: '**/PolylineAlgorithm.csproj'
111+
assembly-version: ${{ env.assembly-version }}
112+
assembly-informational-version: ${{ env.assembly-informational-version }}
113+
file-version: ${{ env.file-version }}
114+
treat-warnins-as-error: ${{ needs.workflow-variables.outputs.is-release }}
115+
116+
test:
117+
name: 'Run tests'
118+
needs: [build]
119+
runs-on: ubuntu-latest
120+
steps:
121+
- name: 'Checkout ${{ github.head_ref || github.ref }}'
122+
uses: actions/checkout@v5
123+
124+
- name: 'Setup .NET'
125+
uses: actions/setup-dotnet@v4
126+
with:
127+
dotnet-version: ${{ env.dotnet-sdk-version }}
128+
129+
- name: 'Run tests'
130+
uses: ./.github/actions/test
131+
with:
132+
project-path: '**/PolylineAlgorithm.Tests.csproj'
133+
test-results-directory: '${{ runner.temp }}/${{ env.test-result-directory }}/'
134+
code-coverage-settings-file: '${{ github.workspace}}/code-coverage-settings.xml'
135+
136+
- name: 'Generate test report'
137+
uses: ./.github/actions/test-report
138+
id: test-report
139+
with:
140+
test-result-folder: '${{ runner.temp }}/${{ env.test-result-directory }}/'
141+
142+
- name: Write test report summary
143+
run: cat ${{ steps.test-report.outputs.test-report-file }} >> $GITHUB_STEP_SUMMARY
144+
145+
- name: 'Generate code coverage'
146+
uses: ./.github/actions/code-coverage
147+
id: code-coverage-report
148+
with:
149+
test-result-folder: '${{ runner.temp }}/${{ env.test-result-directory }}/'
150+
151+
- name: Write code coverage report summary
152+
run: cat ${{ steps.code-coverage-report.outputs.code-coverage-report-file }} >> $GITHUB_STEP_SUMMARY
153+
154+
pack:
155+
name: 'Package binaries'
156+
needs: [versioning, build]
157+
runs-on: ubuntu-latest
158+
env:
159+
assembly-version: ${{ needs.versioning.outputs.assembly-version }}
160+
assembly-informational-version: ${{ needs.versioning.outputs.assembly-informational-version }}
161+
file-version: ${{ needs.versioning.outputs.file-version }}
162+
package-version: ${{ needs.versioning.outputs.package-version }}
163+
package-artifact-name: package
164+
outputs:
165+
package-artifact-name: ${{ env.package-artifact-name }}
166+
steps:
167+
- name: 'Checkout ${{ github.head_ref || github.ref }}'
168+
uses: actions/checkout@v5
169+
170+
- name: Setup .NET
171+
uses: actions/setup-dotnet@v4
172+
with:
173+
dotnet-version: ${{ env.dotnet-sdk-version }}
174+
175+
- name: Download Build
176+
uses: actions/download-artifact@v5
177+
with:
178+
name: build
179+
180+
- name: Pack with .NET
181+
run: |
182+
dotnet pack ${{ vars.SRC_DEFAULT_GLOB_PATTERN }} --configuration ${{ env.build-configuration }} /p:Platform="${{ env.build-platform }}" /p:PackageVersion=${{ env.package-version }} /p:Version=${{ env.assembly-version }} /p:AssemblyInformationalVersion=${{ env.assembly-informational-version }} /p:FileVersion=${{ env.file-version }} --output ${{ runner.temp }}/${{ env.nuget-packages-directory }}
183+
184+
- name: Upload Package
185+
uses: actions/upload-artifact@v4
186+
with:
187+
name: ${{ env.package-artifact-name }}
188+
path: |
189+
${{ runner.temp }}/${{ env.nuget-packages-directory }}/**/*.nupkg
190+
${{ runner.temp }}/${{ env.nuget-packages-directory }}/**/*.snupkg
191+
192+
publish-package:
193+
name: 'Publish development package'
194+
needs: [pack]
195+
env:
196+
package-artifact-name: ${{ needs.pack.outputs.package-artifact-name }}
197+
runs-on: ubuntu-latest
198+
environment: 'Development'
199+
steps:
200+
- name: 'Checkout ${{ github.head_ref || github.ref }}'
201+
uses: actions/checkout@v5
202+
203+
- name: Setup .NET
204+
uses: actions/setup-dotnet@v4
205+
with:
206+
dotnet-version: ${{ env.dotnet-sdk-version }}
207+
208+
- name: 'Publish package to Azure Artifact feed'
209+
uses: ./.github/actions/publish-nuget-package
210+
with:
211+
package-artifact-name: ${{ env.package-artifact-name }}
212+
nuget-feed-url: ${{ vars.NUGET_PACKAGE_FEED_URL }}
213+
nuget-feed-api-key: ${{ secrets.NUGET_PACKAGE_FEED_API_KEY }}
214+
nuget-feed-server: 'AzureArtifacts'
215+
working-directory: ${{ runner.temp }}/${{ env.nuget-packages-directory }}
216+
dotnet-sdk-version: ${{ env.dotnet-sdk-version }}'
217+
218+
# benchmark:
219+
# if: ${{ github.env.is_release || vars.BENCHMARKDOTNET_RUN_OVERRIDE == 'true' }}
220+
# name: Benchmark with .NET CLI on ${{ matrix.os }}
221+
# needs: [build]
222+
# strategy:
223+
# matrix:
224+
# os: [ubuntu-latest, windows-latest, macos-latest]
225+
# runs-on: ${{ matrix.os }}
226+
# steps:
227+
# - name: 'Checkout ${{ github.head_ref || github.ref }}'
228+
# uses: actions/checkout@v5
229+
# - name: Install .NET SDK
230+
# uses: actions/setup-dotnet@v4
231+
# with:
232+
# dotnet-version: |
233+
# 8.x
234+
# 9.x
235+
# - name: Download Build
236+
# uses: actions/download-artifact@v5
237+
# with:
238+
# name: build
239+
# - name: Benchmark
240+
# working-directory: ${{ vars.BENCHMARKDOTNET_WORKING_DIRECTORY }}
241+
# run: dotnet run --configuration ${{ env.build-configuration }} /p:Platform=${{ env.build-platform }} --framework ${{ vars.DEFAULT_BUILD_FRAMEWORK }} --runtimes ${{ vars.BENCHMARKDOTNET_RUNTIMES }} --filter ${{ vars.BENCHMARKDOTNET_FILTER }} --artifacts ${{ runner.temp }}/benchmarks/ --exporters GitHub --memory --iterationTime 100 --join
242+
# - name: Upload Benchmark Results
243+
# uses: actions/upload-artifact@v4
244+
# with:
245+
# name: benchmark-${{ matrix.os }}
246+
# path: |
247+
# ${{ runner.temp }}/benchmarks/**/*-report-github.md
248+
# - name: Write Benchmark Summary
249+
# shell: bash
250+
# run: cat **/*-report-github.md > $GITHUB_STEP_SUMMARY
251+
# working-directory: ${{ runner.temp }}/benchmarks/

0 commit comments

Comments
 (0)