@@ -5,7 +5,10 @@ description: |
55
66inputs :
77 rule-api-version :
8- description : Version of the rule-api tooling to be used for the workflow.
8+ description : |
9+ Version of the rule-api tooling to be used for the workflow.
10+ Leave empty to use the latest.
11+ required : false
912 sonarpedia-files :
1013 description : |
1114 Comma-separated list of sonarpedia files to be updated.
@@ -19,6 +22,15 @@ inputs:
1922 Branch of the rspec repository to be used.
2023 If not specified, the 'master' branch of the rspec repository will be used.
2124 default : master
25+ labels :
26+ description : ' Labels to add to the PR'
27+ default : skip-qa
28+ post-update :
29+ description : ' Additional commands to run after rule-api.jar update'
30+ required : false
31+ rspec-token-suffix :
32+ description : ' Suffix for the RSpec token if different from "rspec-read".'
33+ required : false
2234
2335outputs :
2436 has-changes :
@@ -44,26 +56,42 @@ runs:
4456 secrets : |
4557 development/artifactory/token/{REPO_OWNER_NAME_DASH}-private-reader access_token | ARTIFACTORY_ACCESS_TOKEN;
4658 development/artifactory/token/{REPO_OWNER_NAME_DASH}-private-reader role | ARTIFACTORY_ROLE;
47- development/github/token/{REPO_OWNER_NAME_DASH}-rspec-read token | GITHUB_TOKEN;
59+ development/github/token/{REPO_OWNER_NAME_DASH}-${{ inputs. rspec-token-suffix || 'rspec- read' }} token | GITHUB_TOKEN;
4860
4961 - name : Cache rule-api jar
5062 id : cache-rule-api
63+ if : ${{ inputs.rule-api-version != '' }}
5164 uses : actions/cache@v4
5265 with :
5366 path : rule-api.jar
54- key : rule-api-${{ inputs.rule-api-version || '2.18.0.5734' }}
67+ key : rule-api-${{ inputs.rule-api-version }}
68+
69+ - name : Setup JFrog
70+ if : ${{ inputs.rule-api-version == '' }}
71+ uses : SonarSource/jfrog-setup-wrapper@v3
72+ with :
73+ artifactoryRoleSuffix : private-reader
5574
5675 - name : Download rule-api jar
76+ id : download
5777 if : ${{ steps.cache-rule-api.outputs.cache-hit != 'true' }}
5878 env :
5979 REPOX_USER : vault-${{ fromJSON(steps.secrets.outputs.vault).ARTIFACTORY_ROLE }}
6080 REPOX_PASS : ${{ fromJSON(steps.secrets.outputs.vault).ARTIFACTORY_ACCESS_TOKEN }}
61- RULE_API_VERSION : ${{ inputs.rule-api-version || '2.18.0.5734' }}
81+ RULE_API_VERSION : ${{ inputs.rule-api-version }}
6282 shell : bash
6383 run : |
64- echo "Downloading rule-api.jar version '$RULE_API_VERSION' from Artifactory"
65- curl -u $REPOX_USER:$REPOX_PASS -o rule-api.jar "https://repox.jfrog.io/artifactory/sonarsource-private-releases/com/sonarsource/rule-api/rule-api/$RULE_API_VERSION/rule-api-$RULE_API_VERSION.jar"
66- echo "Downloaded rule-api.jar ($(ls -lh rule-api.jar | awk '{print $5}'))"
84+ if [[ -n "$RULE_API_VERSION" ]]; then
85+ echo "Downloading rule-api.jar version '$RULE_API_VERSION' from Artifactory"
86+ curl -u $REPOX_USER:$REPOX_PASS -o rule-api.jar "https://repox.jfrog.io/artifactory/sonarsource-private-releases/com/sonarsource/rule-api/rule-api/$RULE_API_VERSION/rule-api-$RULE_API_VERSION.jar"
87+ echo "Downloaded rule-api.jar ($(ls -lh rule-api.jar | awk '{print $5}'))"
88+ echo "rule-api-version=$RULE_API_VERSION" >> $GITHUB_OUTPUT
89+ else
90+ echo "Downloading the latest rule-api release."
91+ jfrog rt curl -sLf "sonarsource-private-releases/com/sonarsource/rule-api/rule-api/%5BRELEASE%5D/rule-api-%5BRELEASE%5D.jar" -o rule-api.jar
92+ jar xf rule-api.jar META-INF/MANIFEST.MF
93+ grep 'Implementation-Version' META-INF/MANIFEST.MF | sed 's/Implementation-Version: /rule-api-version=/' >> $GITHUB_OUTPUT
94+ fi
6795
6896 - name : Install Java to run rule-api
6997 uses : actions/setup-java@v4
@@ -157,6 +185,11 @@ runs:
157185 fi
158186 done <<< "$sonarpedia_dirs"
159187
188+ - name : Run Post Update Script
189+ if : ${{ inputs.post-update }}
190+ shell : bash
191+ run : ${{ inputs.post-update }}
192+
160193 - name : Remove rule-api jar
161194 shell : bash
162195 run : |
@@ -192,6 +225,8 @@ runs:
192225 echo "| **Total** | **${total_rules}** |" >> "$summary_file"
193226 fi
194227
228+ echo "\nRule API Version: ${{ steps.download.outputs.rule-api-version }}" >> "$summary_file"
229+
195230 # Write summary to output using delimiter to preserve newlines
196231 if [[ "$has_entries" == "false" ]]; then
197232 echo "summary=Update rule metadata" >> $GITHUB_OUTPUT
@@ -242,4 +277,4 @@ runs:
242277 base : ${{ inputs.branch }}
243278 branch : bot/update-rule-metadata
244279 branch-suffix : timestamp
245- labels : skip-qa
280+ labels : ${{ inputs.labels }}
0 commit comments