66
77jobs :
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
32373338 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