Skip to content

Commit c8de41b

Browse files
authored
Merge pull request #3296 from mercedes-benz/feature-3290-release-and-build-pds-prepare
Added build and release steps for pds prepare
2 parents 90cd88c + 84b7bb0 commit c8de41b

3 files changed

+220
-0
lines changed

.github/workflows/_build+publish-pds-solution.yml

+1
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ jobs:
6868
export OWASPZAP_VERSION
6969
export OWASPZAP_SHA256SUM
7070
export OWASPZAP_WRAPPER_VERSION
71+
export PREPARE_WRAPPER_VERSION
7172
export PMD_VERSION
7273
export SCANCODE_VERSION
7374
export SPDX_TOOL_VERSION

.github/workflows/build+publish-all-pds-solutions.yml

+6
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,12 @@ jobs:
6262
pds-solution: owaspzap
6363
pds-version: ${{ inputs.pds-version }}
6464

65+
call_build_pds-prepare:
66+
uses: mercedes-benz/sechub/.github/workflows/_build+publish-pds-solution.yml@develop
67+
with:
68+
pds-solution: prepare
69+
pds-version: ${{ inputs.pds-version }}
70+
6571
call_build-and-publish-pmd:
6672
uses: mercedes-benz/sechub/.github/workflows/_build+publish-pds-solution.yml@develop
6773
with:
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,213 @@
1+
# SPDX-License-Identifier: MIT
2+
name: Release wrapper for Prepare
3+
4+
on:
5+
workflow_dispatch:
6+
inputs:
7+
actor-email:
8+
description: Insert your email address here. It will be used in the generated pull requests
9+
required: true
10+
prepare-wrapper-version:
11+
description: Prepare-wrapper Version (e.g. 1.0.0)
12+
required: true
13+
prepare-wrapper-milestone-number:
14+
description: Prepare-wrapper Milestone number (e.g. 91)
15+
required: true
16+
jobs:
17+
release-version:
18+
name: Create Prepare-wrapper release
19+
runs-on: ubuntu-latest
20+
steps:
21+
- name: "Show Inputs"
22+
run: |
23+
echo "actor-email: '${{ inputs.actor-email }}'"
24+
echo "Prepare-wrapper '${{ inputs.prepare-wrapper-version }}' - Milestone '${{ inputs.prepare-wrapper-milestone-number }}'"
25+
26+
- name: Checkout branch master
27+
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
28+
with:
29+
ref: master
30+
31+
# Create temporary local tags, so we build documentation for this tag...
32+
# The final tag on git server side will be done automatically by the release when the draft is saved as "real" release
33+
- name: Tag Prepare Wrapper version v${{ inputs.prepare-wrapper-version }}-prepare-wrapper (temporarily)
34+
run: git tag v${{ inputs.prepare-wrapper-version }}-prepare-wrapper
35+
36+
# ----------------------
37+
# Setup + Caching
38+
# ----------------------
39+
- name: Set up JDK 17
40+
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9
41+
with:
42+
java-version: 17
43+
distribution: temurin
44+
45+
- name: Set up Gradle
46+
uses: gradle/actions/setup-gradle@dbbdc275be76ac10734476cc723d82dfe7ec6eda
47+
with:
48+
cache-read-only: false
49+
50+
# ----------------------
51+
# Create a pull request if license headers are missing
52+
# ----------------------
53+
- name: run apply-headers.sh
54+
id: apply-headers
55+
run: |
56+
git config user.name "$GITHUB_TRIGGERING_ACTOR (via github-actions)"
57+
git config user.email "${{ inputs.actor-email }}"
58+
./apply-headers.sh
59+
git commit -am "SPDX headers added by SecHub release job @github-actions" || true
60+
COMMITS=`git log --oneline --branches --not --remotes`
61+
echo "commits=$COMMITS" >> $GITHUB_OUTPUT
62+
63+
- name: Create a pull request for SPDX license headers
64+
id: pr_spdx_headers
65+
if: steps.apply-headers.outputs.commits != ''
66+
uses: peter-evans/create-pull-request@6d6857d36972b65feb161a90e484f2984215f83e
67+
with:
68+
branch: release-spdx-headers
69+
branch-suffix: short-commit-hash
70+
delete-branch: true
71+
title: '0 - Before prepare-wrapper release: Add missing SPDX license headers [auto-generated]'
72+
body: |
73+
Auto-generated by Github Actions prepare-wrapper release job.
74+
75+
-> Please review and merge **before** publishing the prepare-wrapper release.
76+
77+
- name: Print PR infos
78+
if: steps.apply-headers.outputs.commits != ''
79+
run: |
80+
echo "Pull Request Number - ${{ steps.pr_spdx_headers.outputs.pull-request-number }}"
81+
echo "Pull Request URL - ${{ steps.pr_spdx_headers.outputs.pull-request-url }}"
82+
83+
- name: Switch back to master branch
84+
run: git checkout master
85+
86+
# -----------------------------------------
87+
# Build SecHub Prepare Wrapper
88+
# -----------------------------------------
89+
- name: Build Prepare Wrapper
90+
run: ./gradlew :sechub-wrapper-prepare:bootjar
91+
92+
# -----------------------------------------
93+
# Upload build artifacts
94+
# -----------------------------------------
95+
- name: Inspect GIT status
96+
if: always()
97+
run: |
98+
mkdir build/reports -p
99+
git status > build/reports/git-status.txt
100+
101+
- name: Archive GIT status
102+
if: always()
103+
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3
104+
with:
105+
name: git-status.txt
106+
path: build/reports/git-status.txt
107+
retention-days: 14
108+
109+
- name: Archive Prepare Wrapper libs directory
110+
if: always()
111+
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3
112+
with:
113+
name: sechub-wrapper-prepare
114+
path: sechub-wrapper-prepare/build/libs
115+
retention-days: 14
116+
117+
- name: Switch back to master branch
118+
run: git checkout master
119+
120+
# -----------------------------------------
121+
# Assert releaseable, so no dirty flags on releases
122+
# even when all artifact creation parts are done!
123+
# -----------------------------------------
124+
- name: Assert releasable
125+
run: ./gradlew assertReleaseable
126+
127+
- name: Create Prepare Wrapper release
128+
id: create_prepare-wrapper_release
129+
uses: actions/create-release@0cb9c9b65d5d1901c1f53e5e66eaf4afd303e70e
130+
env:
131+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
132+
with:
133+
tag_name: v${{ inputs.prepare-wrapper-version }}-prepare-wrapper
134+
commitish: master
135+
release_name: Prepare Wrapper Version ${{ inputs.prepare-wrapper-version }}
136+
body: |
137+
Changes in this Release
138+
- Some minor changes on Prepare Wrapper implementation
139+
140+
For more details please look at [Milestone ${{inputs.prepare-wrapper-milestone-number}}]( https://github.com/mercedes-benz/sechub/milestone/${{inputs.prepare-wrapper-milestone-number}}?closed=1)
141+
draft: true
142+
prerelease: false
143+
144+
# -----------------------------------------
145+
# Upload release artifacts
146+
# -----------------------------------------
147+
- name: Create files and sha256 checksum for Prepare Wrapper jar
148+
run: |
149+
cd sechub-wrapper-prepare/build/libs/
150+
sha256sum sechub-wrapper-prepare-${{ inputs.prepare-wrapper-version }}.jar > sechub-wrapper-prepare-${{ inputs.prepare-wrapper-version }}.jar.sha256sum
151+
152+
- name: Upload asset sechub-wrapper-prepare-${{ inputs.prepare-wrapper-version }}.jar
153+
uses: actions/upload-release-asset@e8f9f06c4b078e705bd2ea027f0926603fc9b4d5
154+
env:
155+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
156+
with:
157+
upload_url: ${{ steps.create_prepare-wrapper_release.outputs.upload_url }}
158+
asset_path: sechub-wrapper-prepare/build/libs/sechub-wrapper-prepare-${{ inputs.prepare-wrapper-version }}.jar
159+
asset_name: sechub-wrapper-prepare-${{ inputs.prepare-wrapper-version }}.jar
160+
asset_content_type: application/zip
161+
162+
- name: Upload asset sechub-wrapper-prepare-${{ inputs.prepare-wrapper-version }}.jar.sha256sum
163+
uses: actions/upload-release-asset@e8f9f06c4b078e705bd2ea027f0926603fc9b4d5
164+
env:
165+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
166+
with:
167+
upload_url: ${{ steps.create_prepare-wrapper_release.outputs.upload_url }}
168+
asset_path: sechub-wrapper-prepare/build/libs/sechub-wrapper-prepare-${{ inputs.prepare-wrapper-version }}.jar.sha256sum
169+
asset_name: sechub-wrapper-prepare-${{ inputs.prepare-wrapper-version }}.jar.sha256sum
170+
asset_content_type: text/plain
171+
172+
# -----------------------------------------
173+
# Create release issue
174+
# -----------------------------------------
175+
- name: Create Prepare Wrapper ${{ inputs.prepare-wrapper-version }} release issue
176+
uses: dacbd/create-issue-action@main
177+
with:
178+
token: ${{ github.token }}
179+
title: Release Prepare Wrapper ${{ inputs.prepare-wrapper-version }}
180+
body: |
181+
See [Milestone ${{inputs.prepare-wrapper-milestone-number}}]( https://github.com/mercedes-benz/sechub/milestone/${{inputs.prepare-wrapper-milestone-number}}?closed=1) for details.
182+
183+
Please close this issue after the release.
184+
milestone: ${{ inputs.prepare-wrapper-milestone-number }}
185+
186+
# -----------------------------------------
187+
# Create a pull request for merging back `master` into `develop`
188+
# -----------------------------------------
189+
- name: pull-request master to develop
190+
id: pr_master_to_develop
191+
continue-on-error: true
192+
uses: repo-sync/pull-request@7e79a9f5dc3ad0ce53138f01df2fad14a04831c5
193+
with:
194+
github_token: ${{ secrets.GITHUB_TOKEN }}
195+
source_branch: "master"
196+
destination_branch: "develop"
197+
pr_allow_empty: true # should allow an empty PR, but seems not to work
198+
pr_title: '2 - After Prepare Wrapper release: Merge master back into develop [auto-generated]'
199+
pr_body: |
200+
Merge master branch back into develop
201+
202+
-> Please merge **after** the release has been published.
203+
204+
- name: Print PR infos if PR was created
205+
if: steps.pr_master_to_develop.outcome == 'success'
206+
run: |
207+
echo "Pull Request Number - ${{ steps.pr_master_to_develop.outputs.pr_number }}"
208+
echo "Pull Request URL - ${{ steps.pr_master_to_develop.outputs.pr_url }}"
209+
210+
- name: Print info if no PR was created
211+
if: steps.pr_master_to_develop.outcome != 'success'
212+
run: |
213+
echo "Nothing to merge - no pull request necessary."

0 commit comments

Comments
 (0)