Skip to content

Commit bc954d0

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

File tree

1 file changed

+55
-36
lines changed

1 file changed

+55
-36
lines changed

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

Lines changed: 55 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,20 @@ on:
66

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

14+
# export docker_tag from this job
15+
outputs:
16+
docker_tag: ${{ steps.build_image.outputs.tag }}
17+
1518
env:
1619
GENERATORS_VERSION_PROPERTY: ""
1720
MAVEN_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
1821
MAVEN_PASSWORD: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
22+
1923
steps:
2024
- uses: actions/checkout@v4
2125
name: git checkout 3.0.0
@@ -33,62 +37,77 @@ jobs:
3337
- name: Add Central-Portal snapshot repo to settings.xml
3438
3539
with:
36-
repositories: '[{"id":"central-portal-snapshots","name":"Sonatype Central Portal snapshots","url":"https://central.sonatype.com/repository/maven-snapshots/","releases":{"enabled":false},"snapshots":{"enabled":true}}]'
37-
servers: '[{"id":"central","username":"${{ secrets.MAVEN_CENTRAL_USERNAME }}","password":"${{ secrets.MAVEN_CENTRAL_PASSWORD }}"}]'
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+
]
3858
3959
- name: preliminary checks
4060
run: |
4161
docker login --username=${{ secrets.DOCKERHUB_SB_USERNAME }} --password=${{ secrets.DOCKERHUB_SB_PASSWORD }}
4262
set -e
43-
# fail if templates/generators contain carriage return '\r'
4463
/bin/bash ./bin/utils/detect_carriage_return.sh
45-
# fail if generators contain merge conflicts
4664
/bin/bash ./bin/utils/detect_merge_conflict.sh
47-
# fail if generators contain tab '\t'
4865
/bin/bash ./bin/utils/detect_tab_in_java_class.sh
4966
5067
- name: Build with Maven
5168
if: ${{ matrix.java != 8 }}
5269
run: |
53-
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`
54-
echo "POM VERSION" ${MY_POM_VERSION}
55-
export GENERATORS_VERSION=`sed -n 's/<swagger\-codegen\-generators\-version>\([^\s]*\)<\/swagger\-codegen\-generators\-version>/\1/p' pom.xml`
56-
export GENERATORS_VERSION=`echo ${GENERATORS_VERSION} | tr -d '[:space:]'`
57-
echo "GENERATORS_VERSION" ${GENERATORS_VERSION}
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+
5878
export GENERATORS_VERSION_PROPERTY=""
59-
if [[ ! $MY_POM_VERSION =~ ^.*SNAPSHOT$ ]];
60-
then
61-
if [[ ! $GENERATORS_VERSION =~ ^.*SNAPSHOT$ ]];
62-
then
63-
# check release version exists
64-
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`
65-
export GENERATORS_FOUND=`echo ${GENERATORS_FOUND_JSON} | jq '.response.numFound'`
66-
echo "GENERATORS_FOUND" ${GENERATORS_FOUND}
67-
if [[ $GENERATORS_FOUND == '0' ]];
68-
then
69-
echo "generators version not found"
70-
rm -f maven-metadata.xml
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
7187
SNAP_API="https://central.sonatype.com/repository/maven-snapshots"
7288
ARTIFACT_PATH="io/swagger/codegen/v3/swagger-codegen-generators"
73-
ROOT_META="${SNAP_API}/${ARTIFACT_PATH}/maven-metadata.xml"
74-
export LAST_SNAP=$(curl -s "$ROOT_META" | grep -oP '(?<=<version>)1\.[^<]+' | sort -V | tail -n1)
75-
echo "LAST_SNAP $LAST_SNAP"
76-
export GENERATORS_VERSION_PROPERTY=-Dswagger-codegen-generators-version=$LAST_SNAP
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"
7792
fi
7893
fi
7994
fi
80-
echo "GENERATORS_VERSION_PROPERTY ${GENERATORS_VERSION_PROPERTY}"
95+
96+
echo "GENERATORS_VERSION_PROPERTY=${GENERATORS_VERSION_PROPERTY}"
8197
echo "GENERATORS_VERSION_PROPERTY=${GENERATORS_VERSION_PROPERTY}" >> $GITHUB_ENV
82-
mvn clean verify -U -DJETTY_TEST_HTTP_PORT=8070 -DJETTY_TEST_STOP_PORT=8069 ${GENERATORS_VERSION_PROPERTY}
98+
99+
mvn clean verify -U -DJETTY_TEST_HTTP_PORT=8070 \
100+
-DJETTY_TEST_STOP_PORT=8069 ${GENERATORS_VERSION_PROPERTY}
83101
84-
- name: Build Docker Image
102+
- name: Build Docker image
103+
id: build_image
85104
run: |
86-
docker build -t swagger-codegen:latest .
87-
docker tag swagger-codegen:latest swagger-codegen:${{ github.sha }}
88-
89-
- name: Set docker tag output
90-
id: docker_tag
91-
run: echo "tag=swagger-codegen:${{ github.sha }}" >> $GITHUB_OUTPUT
105+
# construct a unique tag: repo:pr-<number>-java<version>
106+
TAG="${{ github.repository }}:pr-${{ github.event.pull_request.number }}-java${{ matrix.java }}"
107+
docker build -t "$TAG" .
108+
# export as both step output and env for downstream
109+
echo "::set-output name=tag::$TAG"
110+
echo "IMAGE_TAG=$TAG" >> $GITHUB_ENV
92111
93112
scan-with-wiz:
94113
name: Trigger Wiz Scanning

0 commit comments

Comments
 (0)