Skip to content

Commit 1602376

Browse files
committed
add wiz scan on create PR to 3.0.0 (SWG-14342)
1 parent 8f7ae69 commit 1602376

File tree

1 file changed

+60
-38
lines changed

1 file changed

+60
-38
lines changed

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

Lines changed: 60 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -6,93 +6,115 @@ on:
66

77
jobs:
88
build_pr_30:
9-
109
runs-on: ubuntu-latest
1110
strategy:
1211
matrix:
1312
java: [ 11, 17 ]
1413

14+
outputs:
15+
java-version: ${{ matrix.java }}
16+
1517
env:
1618
GENERATORS_VERSION_PROPERTY: ""
1719
MAVEN_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
1820
MAVEN_PASSWORD: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
21+
1922
steps:
2023
- uses: actions/checkout@v4
2124
name: git checkout 3.0.0
2225
with:
2326
ref: 3.0.0
27+
2428
- name: Set up Java
2529
uses: actions/setup-java@v4
2630
with:
2731
java-version: ${{ matrix.java }}
2832
distribution: temurin
2933
cache: maven
3034
overwrite-settings: false
35+
3136
- name: Add Central-Portal snapshot repo to settings.xml
3237
3338
with:
3439
repositories: '[{"id":"central-portal-snapshots","name":"Sonatype Central Portal snapshots","url":"https://central.sonatype.com/repository/maven-snapshots/","releases":{"enabled":false},"snapshots":{"enabled":true}}]'
3540
servers: '[{"id":"central","username":"${{ secrets.MAVEN_CENTRAL_USERNAME }}","password":"${{ secrets.MAVEN_CENTRAL_PASSWORD }}"}]'
41+
3642
- name: preliminary checks
3743
run: |
3844
docker login --username=${{ secrets.DOCKERHUB_SB_USERNAME }} --password=${{ secrets.DOCKERHUB_SB_PASSWORD }}
3945
set -e
40-
# fail if templates/generators contain carriage return '\r'
4146
/bin/bash ./bin/utils/detect_carriage_return.sh
42-
# fail if generators contain merge conflicts
4347
/bin/bash ./bin/utils/detect_merge_conflict.sh
44-
# fail if generators contain tab '\t'
4548
/bin/bash ./bin/utils/detect_tab_in_java_class.sh
49+
4650
- name: Build with Maven
4751
if: ${{ matrix.java != 8 }}
4852
run: |
49-
export MY_POM_VERSION=`mvn -Dswagger-codegen-generators-version=1.0.37 -q -Dexec.executable="echo" -Dexec.args='${projects.version}' --non-recursive org.codehaus.mojo:exec-maven-plugin:1.3.1:exec`
50-
echo "POM VERSION" ${MY_POM_VERSION}
51-
export GENERATORS_VERSION=`sed -n 's/<swagger\-codegen\-generators\-version>\([^\s]*\)<\/swagger\-codegen\-generators\-version>/\1/p' pom.xml`
52-
export GENERATORS_VERSION=`echo ${GENERATORS_VERSION} | tr -d '[:space:]'`
53-
echo "GENERATORS_VERSION" ${GENERATORS_VERSION}
53+
export MY_POM_VERSION=$(mvn -Dswagger-codegen-generators-version=1.0.37 \
54+
-q -Dexec.executable="echo" -Dexec.args='${projects.version}' \
55+
--non-recursive org.codehaus.mojo:exec-maven-plugin:1.3.1:exec)
56+
echo "POM VERSION ${MY_POM_VERSION}"
57+
58+
export GENERATORS_VERSION=$(sed -n 's/<swagger\-codegen\-generators\-version>\([^<]*\)<\/swagger\-codegen\-generators\-version>/\1/p' pom.xml | tr -d '[:space:]')
59+
echo "GENERATORS_VERSION ${GENERATORS_VERSION}"
60+
5461
export GENERATORS_VERSION_PROPERTY=""
55-
if [[ ! $MY_POM_VERSION =~ ^.*SNAPSHOT$ ]];
56-
then
57-
if [[ ! $GENERATORS_VERSION =~ ^.*SNAPSHOT$ ]];
58-
then
59-
# check release version exists
60-
export GENERATORS_FOUND_JSON=`curl -s --max-time 60 --retry 15 --connect-timeout 20 https://search.maven.org/solrsearch/select?q=g:io.swagger.codegen.v3%20AND%20a:swagger-codegen-generators%20AND%20v:${GENERATORS_VERSION}%20AND%20p:jar`
61-
export GENERATORS_FOUND=`echo ${GENERATORS_FOUND_JSON} | jq '.response.numFound'`
62-
echo "GENERATORS_FOUND" ${GENERATORS_FOUND}
63-
if [[ $GENERATORS_FOUND == '0' ]];
64-
then
65-
echo "generators version not found"
66-
rm -f maven-metadata.xml
67-
SNAP_API="https://central.sonatype.com/repository/maven-snapshots"
68-
ARTIFACT_PATH="io/swagger/codegen/v3/swagger-codegen-generators"
69-
ROOT_META="${SNAP_API}/${ARTIFACT_PATH}/maven-metadata.xml"
70-
export LAST_SNAP=$(curl -s "$ROOT_META" | grep -oP '(?<=<version>)1\.[^<]+' | sort -V | tail -n1)
71-
echo "LAST_SNAP $LAST_SNAP"
72-
export GENERATORS_VERSION_PROPERTY=-Dswagger-codegen-generators-version=$LAST_SNAP
73-
fi
62+
if [[ ! $MY_POM_VERSION =~ SNAPSHOT ]] && [[ ! $GENERATORS_VERSION =~ SNAPSHOT ]]; then
63+
export FOUND=$(curl -s "https://search.maven.org/solrsearch/select?q=g:io.swagger.codegen.v3+AND+a:swagger-codegen-generators+AND+v:${GENERATORS_VERSION}+AND+p:jar" | jq '.response.numFound')
64+
if [[ "$FOUND" == "0" ]]; then
65+
echo "generators version not found"
66+
export LAST_SNAP=$(curl -s "https://central.sonatype.com/repository/maven-snapshots/io/swagger/codegen/v3/swagger-codegen-generators/maven-metadata.xml" | grep -oP '(?<=<version>)[^<]+(?=</version>)' | sort -V | tail -n1)
67+
export GENERATORS_VERSION_PROPERTY="-Dswagger-codegen-generators-version=$LAST_SNAP"
68+
echo "Using fallback snapshot: $LAST_SNAP"
7469
fi
7570
fi
76-
echo "GENERATORS_VERSION_PROPERTY ${GENERATORS_VERSION_PROPERTY}"
71+
7772
echo "GENERATORS_VERSION_PROPERTY=${GENERATORS_VERSION_PROPERTY}" >> $GITHUB_ENV
78-
mvn clean verify -U -DJETTY_TEST_HTTP_PORT=8070 -DJETTY_TEST_STOP_PORT=8069 ${GENERATORS_VERSION_PROPERTY}
73+
74+
mvn clean verify -U \
75+
-DJETTY_TEST_HTTP_PORT=8070 \
76+
-DJETTY_TEST_STOP_PORT=8069 \
77+
${GENERATORS_VERSION_PROPERTY}
78+
79+
- name: Upload Maven output for scan
80+
uses: actions/upload-artifact@v4
81+
with:
82+
name: build-output
83+
path: '**/target'
84+
if-no-files-found: ignore
85+
86+
scan_with_wiz:
87+
name: Scan Maven build with Wiz
88+
runs-on: ubuntu-latest
89+
needs: build_pr_30
90+
91+
steps:
92+
- name: Download build output
93+
uses: actions/download-artifact@v4
94+
with:
95+
name: build-output
96+
path: scan-target
7997

8098
- name: Download Wiz CLI
81-
run: curl -o wizcli https://downloads.wiz.io/wizcli/latest/wizcli-linux-amd64 && chmod +x wizcli
99+
run: |
100+
curl -sSLo wizcli https://downloads.wiz.io/wizcli/latest/wizcli-linux-amd64
101+
chmod +x wizcli
102+
sudo mv wizcli /usr/local/bin/wizcli
82103
83104
- name: Authenticate to Wiz
84-
run: ./wizcli auth --id "$WIZ_CLIENT_ID" --secret "$WIZ_CLIENT_SECRET"
105+
run: wizcli auth --id "$WIZ_CLIENT_ID" --secret "$WIZ_CLIENT_SECRET"
85106
env:
86107
WIZ_CLIENT_ID: ${{ secrets.WIZ_CLIENT_ID }}
87108
WIZ_CLIENT_SECRET: ${{ secrets.WIZ_CLIENT_SECRET }}
88109

89-
- name: Scan Maven build directory with Wiz
110+
- name: Scan directory with Wiz
90111
run: |
91-
./wizcli dir scan \
92-
--path . \
112+
wizcli dir scan \
113+
--path scan-target \
93114
--policy "$POLICY" \
115+
--quiet \
94116
--tag repo="${{ github.repository }}" \
95-
--tag commit="${{ github.sha }}" \
96-
--tag java="${{ matrix.java }}" > /dev/null 2>&1
117+
--tag pr="${{ github.event.pull_request.number }}" \
118+
--tag commit="${{ github.sha }}" > /dev/null 2>&1
97119
env:
98-
POLICY: "SmartBear default vulnerabilities policy"
120+
POLICY: "SmartBear default vulnerabilities policy"

0 commit comments

Comments
 (0)