@@ -99,6 +99,10 @@ inputs:
9999 default : " true"
100100 description : |-
101101 Add a comment to the PR only if the run fails.
102+ replace-comments :
103+ default : " true"
104+ description : |-
105+ Whether to replace previous review comments made by this action. Default is `true`.
102106 debug-level :
103107 default : " 0"
104108 description : |-
@@ -145,6 +149,7 @@ inputs:
145149 description : |-
146150 The version of Vyper to install. Can be latest, or a specific version like 0.3.3.
147151 If not specified, Vyper will not be installed.
152+
148153runs :
149154 using : " composite"
150155 steps :
@@ -232,14 +237,25 @@ runs:
232237 CERTORA_API_SUBDOMAIN="data-api-stg"
233238 fi
234239
235- echo "solc_cache_key=$(md5sum <<< '${{ inputs.solc-versions }}' | awk '{ print $1 }')" >> "$GITHUB_OUTPUT"
240+ echo "solc_cache_key=$(md5sum <<< "'${{ inputs.solc-versions }}'" | awk '{ print $1 }')" >> "$GITHUB_OUTPUT"
241+
242+ # Remove leading spaces, trailing spaces, comments, and empty lines
243+ CERTORA_CONFIGURATIONS_FILE="/tmp/certora-logs/REPORT-${GROUP_ID}-configurations"
244+ sed -r 's/^\s+//; s/\s+$//; /^[[:blank:]]*#/d; s/^#.*//; /^\s*$/d' <<< "$CERTORA_RAW_CONFIGURATIONS" | sort -u > "$CERTORA_CONFIGURATIONS_FILE"
245+
246+ CERTORA_CONFIGURATIONS_HASH="$(md5sum < "$CERTORA_CONFIGURATIONS_FILE" | awk '{ print $1 }')"
236247
237248 echo "CERTORA_ACTION_REF=$CERTORA_ACTION_REF" >> "$GITHUB_ENV"
238249 echo "CERTORA_SUBDOMAIN=$CERTORA_SUBDOMAIN" >> "$GITHUB_ENV"
239250 echo "certora_subdomain=$CERTORA_SUBDOMAIN" >> "$GITHUB_OUTPUT"
240251 echo "CERTORA_API_SUBDOMAIN=$CERTORA_API_SUBDOMAIN" >> "$GITHUB_ENV"
252+ echo "CERTORA_CONFIGURATIONS_FILE=$CERTORA_CONFIGURATIONS_FILE" >> "$GITHUB_ENV"
253+ echo "CERTORA_CONFIGURATIONS_HASH=$CERTORA_CONFIGURATIONS_HASH" >> "$GITHUB_ENV"
254+ echo "certora_configurations_file=$CERTORA_CONFIGURATIONS_FILE" >> "$GITHUB_OUTPUT"
255+ echo "certora_configurations_hash=$CERTORA_CONFIGURATIONS_HASH" >> "$GITHUB_OUTPUT"
241256 env :
242257 CERTORA_ACTION_REF : ${{ github.action_ref }}
258+ CERTORA_RAW_CONFIGURATIONS : " ${{ inputs.configurations }}"
243259
244260 - name : Install uv
245261 uses : astral-sh/setup-uv@v7
@@ -337,14 +353,14 @@ runs:
337353 bash "$RUN_CERTORA"
338354 fi
339355 env :
340- CERTORA_CONFIGURATIONS : " ${{ inputs.configurations }}"
341356 CERTORA_SERVER : " ${{ inputs.server }}"
342357 CERTORAKEY : " ${{ inputs.certora-key }}"
343358 CERTORA_JOB_NAME : " ${{ inputs.job-name }}"
344359 CERTORA_COMPILATION_STEPS_ONLY : " ${{ inputs.compilation-steps-only }}"
345360 CERTORA_ECOSYSTEM : " ${{ inputs.ecosystem }}"
346361 DEBUG_LEVEL : " ${{ inputs.debug-level }}"
347362 CERTORA_USE_HARD_LINKS : " ${{ inputs.use-hard-links }}"
363+ CERTORA_REPLACE_COMMENTS : " ${{ inputs.replace-comments }}"
348364
349365 - name : Add GH Status
350366 if : ${{ steps.certora-run.outputs.total_jobs > 0}}
@@ -381,5 +397,5 @@ runs:
381397 if : ${{ (failure() || inputs.comment-fail-only == 'false') && (steps.certora-run.outputs.total_jobs > 0 || steps.certora-run.outputs.failed_jobs > 0) }}
382398 uses : mshick/add-pr-comment@v2
383399 with :
384- message-id : ${{ steps.setup-env.outputs.group_id }}
400+ message-id : ${{ inputs.replace-comments == 'true' && steps.setup-env.outputs.certora_configurations_hash || steps.setup-env.outputs.group_id }}
385401 message-path : ${{ steps.setup-env.outputs.report_file }}
0 commit comments