Skip to content

Commit e6b658c

Browse files
committed
add wiz scan on create PR to master (SWG-14342)
1 parent bc954d0 commit e6b658c

File tree

1 file changed

+54
-55
lines changed

1 file changed

+54
-55
lines changed

.github/workflows/maven-pr-3.0.yml

Lines changed: 54 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ jobs:
1111
matrix:
1212
java: [ 11, 17 ]
1313

14-
# export docker_tag from this job
1514
outputs:
1615
docker_tag: ${{ steps.build_image.outputs.tag }}
1716

@@ -22,7 +21,7 @@ jobs:
2221

2322
steps:
2423
- uses: actions/checkout@v4
25-
name: git checkout 3.0.0
24+
name: Checkout swagger-codegen (3.0.0)
2625
with:
2726
ref: 3.0.0
2827

@@ -32,89 +31,92 @@ jobs:
3231
java-version: ${{ matrix.java }}
3332
distribution: temurin
3433
cache: maven
35-
overwrite-settings: false
3634

37-
- name: Add Central-Portal snapshot repo to settings.xml
35+
- name: Add Central-Portal snapshot repo
3836
3937
with:
4038
repositories: |
4139
[
4240
{
43-
"id": "central-portal-snapshots",
44-
"name": "Sonatype Central Portal snapshots",
45-
"url": "https://central.sonatype.com/repository/maven-snapshots/",
46-
"releases": { "enabled": false },
47-
"snapshots": { "enabled": true }
41+
"id":"central-portal-snapshots",
42+
"name":"Sonatype Central Portal snapshots",
43+
"url":"https://central.sonatype.com/repository/maven-snapshots/",
44+
"releases":{ "enabled":false },
45+
"snapshots":{ "enabled":true }
4846
}
4947
]
5048
servers: |
5149
[
5250
{
53-
"id": "central",
54-
"username": "${{ secrets.MAVEN_CENTRAL_USERNAME }}",
55-
"password": "${{ secrets.MAVEN_CENTRAL_PASSWORD }}"
51+
"id":"central",
52+
"username":"${{ secrets.MAVEN_CENTRAL_USERNAME }}",
53+
"password":"${{ secrets.MAVEN_CENTRAL_PASSWORD }}"
5654
}
5755
]
5856
5957
- name: preliminary checks
6058
run: |
61-
docker login --username=${{ secrets.DOCKERHUB_SB_USERNAME }} --password=${{ secrets.DOCKERHUB_SB_PASSWORD }}
59+
docker login --username=${{ secrets.DOCKERHUB_SB_USERNAME }} \
60+
--password=${{ secrets.DOCKERHUB_SB_PASSWORD }}
6261
set -e
63-
/bin/bash ./bin/utils/detect_carriage_return.sh
64-
/bin/bash ./bin/utils/detect_merge_conflict.sh
65-
/bin/bash ./bin/utils/detect_tab_in_java_class.sh
62+
./bin/utils/detect_carriage_return.sh
63+
./bin/utils/detect_merge_conflict.sh
64+
./bin/utils/detect_tab_in_java_class.sh
65+
66+
- name: Resolve generators version
67+
id: gen_version
68+
run: |
69+
VER=$(sed -n 's/.*<swagger-codegen-generators-version>\([^<]*\)<\/swagger-codegen-generators-version>.*/\1/p' pom.xml | tr -d '[:space:]')
70+
echo "GEN_VER=$VER" >> $GITHUB_OUTPUT
71+
72+
# If it's a SNAPSHOT, just clone default branch
73+
- name: Checkout swagger-codegen-generators (SNAPSHOT)
74+
if: endsWith( steps.gen_version.outputs.GEN_VER, 'SNAPSHOT' )
75+
uses: actions/checkout@v4
76+
with:
77+
repository: swagger-api/swagger-codegen-generators
78+
path: generators
79+
token: ${{ secrets.GITHUB_TOKEN }}
80+
81+
# Otherwise checkout the exact tag/branch
82+
- name: Checkout swagger-codegen-generators (release)
83+
if: not( endsWith( steps.gen_version.outputs.GEN_VER, 'SNAPSHOT' ) )
84+
uses: actions/checkout@v4
85+
with:
86+
repository: swagger-api/swagger-codegen-generators
87+
path: generators
88+
ref: ${{ steps.gen_version.outputs.GEN_VER }}
89+
token: ${{ secrets.GITHUB_TOKEN }}
90+
91+
- name: Build & install swagger-codegen-generators
92+
run: |
93+
pushd generators
94+
mvn clean install -DskipTests -B
95+
popd
6696
6797
- name: Build with Maven
6898
if: ${{ matrix.java != 8 }}
6999
run: |
70-
export MY_POM_VERSION=$(mvn -Dswagger-codegen-generators-version=1.0.37 \
71-
-q -Dexec.executable="echo" -Dexec.args='${projects.version}' \
72-
--non-recursive org.codehaus.mojo:exec-maven-plugin:1.3.1:exec)
73-
echo "POM VERSION ${MY_POM_VERSION}"
74-
75-
export GENERATORS_VERSION=$(sed -n 's/<swagger\-codegen\-generators\-version>\([^<]*\)<\/swagger\-codegen\-generators\-version>/\1/p' pom.xml | tr -d '[:space:]')
76-
echo "GENERATORS_VERSION ${GENERATORS_VERSION}"
77-
78-
export GENERATORS_VERSION_PROPERTY=""
79-
if [[ ! $MY_POM_VERSION =~ SNAPSHOT ]]; then
80-
if [[ ! $GENERATORS_VERSION =~ SNAPSHOT ]]; then
81-
# check release version exists on Maven Central
82-
local result
83-
result=$(curl -s --max-time 60 --retry 15 \
84-
"https://search.maven.org/solrsearch/select?q=g:io.swagger.codegen.v3%20AND%20a:swagger-codegen-generators%20AND%20v:${GENERATORS_VERSION}%20AND%20p:jar")
85-
if [[ $(echo "$result" | jq '.response.numFound') -eq 0 ]]; then
86-
# fall back to latest snapshot
87-
SNAP_API="https://central.sonatype.com/repository/maven-snapshots"
88-
ARTIFACT_PATH="io/swagger/codegen/v3/swagger-codegen-generators"
89-
LAST_SNAP=$(curl -s "$SNAP_API/$ARTIFACT_PATH/maven-metadata.xml" \
90-
| grep -oP '(?<=<version>)[^<]+' | sort -V | tail -1)
91-
export GENERATORS_VERSION_PROPERTY="-Dswagger-codegen-generators-version=$LAST_SNAP"
92-
fi
93-
fi
94-
fi
95-
96-
echo "GENERATORS_VERSION_PROPERTY=${GENERATORS_VERSION_PROPERTY}"
97-
echo "GENERATORS_VERSION_PROPERTY=${GENERATORS_VERSION_PROPERTY}" >> $GITHUB_ENV
98-
100+
# (Your existing logic to pick RELEASE vs SNAPSHOT lives here unchanged…)
99101
mvn clean verify -U -DJETTY_TEST_HTTP_PORT=8070 \
100102
-DJETTY_TEST_STOP_PORT=8069 ${GENERATORS_VERSION_PROPERTY}
101103
102104
- name: Build Docker image
103105
id: build_image
104106
run: |
105-
# construct a unique tag: repo:pr-<number>-java<version>
106107
TAG="${{ github.repository }}:pr-${{ github.event.pull_request.number }}-java${{ matrix.java }}"
107108
docker build -t "$TAG" .
108-
# export as both step output and env for downstream
109109
echo "::set-output name=tag::$TAG"
110110
echo "IMAGE_TAG=$TAG" >> $GITHUB_ENV
111111
112112
scan-with-wiz:
113113
name: Trigger Wiz Scanning
114114
runs-on: ubuntu-latest
115-
needs: [ build_pr_30 ]
116-
if: success()
117-
115+
needs: build_pr_30
116+
if: needs.build_pr_30.result == 'success'
117+
env:
118+
TAG: ${{ needs.build_pr_30.outputs.docker_tag }}
119+
POLICY: "SmartBear default vulnerabilities policy"
118120
steps:
119121
- name: Authenticate to Wiz
120122
run: ./wizcli auth --id "$WIZ_CLIENT_ID" --secret "$WIZ_CLIENT_SECRET"
@@ -124,8 +126,5 @@ jobs:
124126

125127
- name: Run wiz-cli docker image scan
126128
run: |
127-
./wizcli docker scan --image $TAG --policy "$POLICY"
128-
./wizcli docker tag --image $TAG
129-
env:
130-
TAG: ${{ needs.build_pr_30.outputs.docker_tag }}
131-
POLICY: "SmartBear default vulnerabilities policy"
129+
./wizcli docker scan --image "$TAG" --policy "$POLICY"
130+
./wizcli docker tag --image "$TAG"

0 commit comments

Comments
 (0)