1111# SPDX-License-Identifier: Apache-2.0
1212# *******************************************************************************/
1313
14- # Create artifacts for project releases
15- # Note: might also include crates.io publication step, if we're confident about our overall workflow
14+ # Create artifacts for project releases
1615
1716name : Release
1817
1918on :
2019 push :
2120 tags :
2221 - v*
23- workflow_dispatch :
24-
22+
2523concurrency :
2624 group : " release-${{ github.head_ref || github.ref }}"
2725 cancel-in-progress : true
@@ -36,53 +34,25 @@ jobs:
3634 coverage :
3735 uses : ./.github/workflows/coverage.yaml
3836
37+ requirements-tracing :
38+ uses : ./.github/workflows/requirements-tracing.yaml
39+ with :
40+ oft-file-patterns : " ${{ vars.UP_SPEC_OPEN_FAST_TRACE_FILE_PATTERNS }} ${{ vars.UP_RUST_OPEN_FAST_TRACE_FILE_PATTERNS }}"
41+
3942 licenses :
4043 # This works off the license declarations in dependent packages/crates, so if these declarations are wrong, this report will contain erroneous information
4144 uses : ./.github/workflows/license-report.yaml
4245
43- release :
44- name : collect workflow artifacts
45- runs-on : ubuntu-latest
46- needs :
47- - check
48- - check-msrv
49- - coverage
50- - licenses
51- steps :
52- - uses : actions/checkout@v4
53- with :
54- submodules : " recursive"
55-
56- - name : Upload README
57- id : upload_readme
58- uses : actions/upload-artifact@v4
59- with :
60- name : readme
61- path : README.md
62-
63- - name : Collect quality artifacts
64- uses :
anotherdaniel/[email protected] 65- id : quevee
66- with :
67- release_url : ${{ github.ref_name }}
68- artifacts_license : ${{ needs.licenses.outputs.license_report_url }}
69- artifacts_readme : ${{ steps.upload_readme.outputs.artifact-url }}
70- artifacts_testing : ${{ needs.check.outputs.test_results_url }},${{ needs.coverage.outputs.test_coverage_url }}
71-
72- - name : Store quality manifest as workflow artifact
73- uses : actions/upload-artifact@v4
74- with :
75- name : quality-artifacts-manifest
76- path : ${{ steps.quevee.outputs.manifest_file }}
77-
7846 tag_release_artifacts :
7947 # This only runs if this workflow is initiated via a tag-push with pattern 'v*'
8048 if : github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
8149 name : collect v-tag release artifacts
8250 runs-on : ubuntu-latest
8351 needs :
8452 - check
53+ - check-msrv
8554 - coverage
55+ - requirements-tracing
8656 - licenses
8757 permissions : write-all
8858 steps :
@@ -105,6 +75,21 @@ jobs:
10575 file_glob : true
10676 tag : ${{ github.ref }}
10777
78+ # Requirements Tracing report - we later need the download_url output of the upload step
79+ - name : Download requirements tracing report
80+ uses : actions/download-artifact@v4
81+ with :
82+ name : tracing-report-html
83+ path : dist/tracing/
84+ - name : Upload requirements tracing report to release
85+ uses : svenstaro/upload-release-action@v2
86+ id : upload_requirements_tracing_report
87+ with :
88+ repo_token : ${{ secrets.GITHUB_TOKEN }}
89+ file : dist/tracing/*
90+ file_glob : true
91+ tag : ${{ github.ref }}
92+
10893 # Test report - we later need the download_url output of the upload step
10994 - name : Download test report
11095 uses : actions/download-artifact@v4
@@ -144,20 +129,33 @@ jobs:
144129 file : README.md
145130 tag : ${{ github.ref }}
146131
132+ - name : Gather uProtocol Specification documents
133+ shell : bash
134+ run : |
135+ tar cvz --file up-spec.tar.gz ${{ vars.UP_SPEC_OPEN_FAST_TRACE_FILE_PATTERNS }}
136+ - name : Upload relevant uProtocol Spec files to release
137+ uses : svenstaro/upload-release-action@v2
138+ id : upload_up_spec
139+ with :
140+ repo_token : ${{ secrets.GITHUB_TOKEN }}
141+ file : up-spec.tar.gz
142+ tag : ${{ github.ref }}
143+
147144 - name : Gets latest created release info
148145 id : latest_release_info
149146 uses : joutvhu/get-release@v1
150147 env :
151148 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
152149
153150 - name : Collect quality artifacts
154- uses : anotherdaniel/quevee@v0.3.0
151+ uses : anotherdaniel/quevee@v0.4.1
155152 id : quevee_manifest
156153 with :
157154 release_url : ${{ steps.latest_release_info.outputs.html_url }}
158155 artifacts_license : ${{ steps.upload_license_report.outputs.browser_download_url }}
159156 artifacts_readme : ${{ steps.upload_readme.outputs.browser_download_url }}
160- artifacts_testing : ${{ steps.upload_test_report.outputs.browser_download_url }},${{ steps.upload_test_coverage.outputs.browser_download_url }}
157+ artifacts_requirements : ${{ steps.upload_up_spec.outputs.browser_download_url }}
158+ artifacts_testing : ${{ steps.upload_test_report.outputs.browser_download_url }},${{ steps.upload_test_coverage.outputs.browser_download_url }},${{ steps.upload_requirements_tracing_report.outputs.browser_download_url }}
161159
162160 - name : Upload manifest to release
163161 uses : svenstaro/upload-release-action@v2
0 commit comments