Skip to content

Commit 34716b9

Browse files
Features for JVM Squad: use latest rule-api and add post-update commands.
1 parent 43fb412 commit 34716b9

File tree

1 file changed

+43
-8
lines changed

1 file changed

+43
-8
lines changed

update-rule-metadata/action.yml

Lines changed: 43 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@ description: |
55
66
inputs:
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

2335
outputs:
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

Comments
 (0)