@@ -11,110 +11,51 @@ jobs:
1111 matrix :
1212 java : [ 11, 17 ]
1313
14- # export docker_tag from this job
14+ # expose docker_tag from the “build_with_maven” step
1515 outputs :
16- docker_tag : ${{ steps.build_image.outputs.tag }}
17-
18- env :
19- GENERATORS_VERSION_PROPERTY : " "
20- MAVEN_USERNAME : ${{ secrets.MAVEN_CENTRAL_USERNAME }}
21- MAVEN_PASSWORD : ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
16+ docker_tag : ${{ steps.build_with_maven.outputs.tag }}
2217
2318 steps :
24- - uses : actions/checkout@v4
25- name : git checkout 3.0.0
26- with :
27- ref : 3.0.0
28-
29- - name : Set up Java
30- uses : actions/setup-java@v4
31- with :
32- java-version : ${{ matrix.java }}
33- distribution : temurin
34- cache : maven
35- overwrite-settings : false
36-
37- - name : Add Central-Portal snapshot repo to settings.xml
38- 39- with :
40- repositories : |
41- [
42- {
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 }
48- }
49- ]
50- servers : |
51- [
52- {
53- "id": "central",
54- "username": "${{ secrets.MAVEN_CENTRAL_USERNAME }}",
55- "password": "${{ secrets.MAVEN_CENTRAL_PASSWORD }}"
56- }
57- ]
19+ # … previous checkout, setup-java, preliminary checks, generators bootstrap …
5820
59- - name : preliminary checks
60- run : |
61- docker login --username=${{ secrets.DOCKERHUB_SB_USERNAME }} --password=${{ secrets.DOCKERHUB_SB_PASSWORD }}
62- 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
66-
67- - name : Build with Maven
21+ - name : Build with Maven (and Docker)
22+ id : build_with_maven
6823 if : ${{ matrix.java != 8 }}
6924 run : |
25+ # — your existing Maven logic —
7026 export MY_POM_VERSION=$(mvn -Dswagger-codegen-generators-version=1.0.37 \
7127 -q -Dexec.executable="echo" -Dexec.args='${projects.version}' \
7228 --non-recursive org.codehaus.mojo:exec-maven-plugin:1.3.1:exec)
7329 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:]')
30+
31+ export GENERATORS_VERSION=$(sed -n 's/.* <swagger\-codegen\-generators\-version>\([^<]*\)<\/swagger\-codegen\-generators\-version>.* /\1/p' pom.xml | tr -d '[:space:]')
7632 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-
33+
34+ # … your snapshot‐fallback logic …
9635 echo "GENERATORS_VERSION_PROPERTY=${GENERATORS_VERSION_PROPERTY}"
9736 echo "GENERATORS_VERSION_PROPERTY=${GENERATORS_VERSION_PROPERTY}" >> $GITHUB_ENV
98-
37+
9938 mvn clean verify -U -DJETTY_TEST_HTTP_PORT=8070 \
10039 -DJETTY_TEST_STOP_PORT=8069 ${GENERATORS_VERSION_PROPERTY}
10140
102- - name : Build Docker image
103- id : build_image
104- run : |
105- # construct a unique tag: repo:pr-<number>-java<version>
41+ # — now build the Docker image using the same PR & Java matrix to tag —
10642 TAG="${{ github.repository }}:pr-${{ github.event.pull_request.number }}-java${{ matrix.java }}"
10743 docker build -t "$TAG" .
108- # export as both step output and env for downstream
44+
45+ # export tag both as step-output and env
10946 echo "::set-output name=tag::$TAG"
11047 echo "IMAGE_TAG=$TAG" >> $GITHUB_ENV
11148
49+ # make sure Docker is available (login done in preliminary checks)
50+ shell : bash
51+
11252 scan-with-wiz :
113- name : Trigger Wiz Scanning
53+ needs : build_pr_30
11454 runs-on : ubuntu-latest
115- needs : [ build_pr_30 ]
116- if : success()
117-
55+ if : needs.build_pr_30.result == 'success'
56+ env :
57+ TAG : ${{ needs.build_pr_30.outputs.docker_tag }}
58+ POLICY : " SmartBear default vulnerabilities policy"
11859 steps :
11960 - name : Authenticate to Wiz
12061 run : ./wizcli auth --id "$WIZ_CLIENT_ID" --secret "$WIZ_CLIENT_SECRET"
12465
12566 - name : Run wiz-cli docker image scan
12667 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"
68+ ./wizcli docker scan --image "$TAG" --policy "$POLICY"
69+ ./wizcli docker tag --image "$TAG"
0 commit comments