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
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
38363937 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