A GitHub action that calculates the size of your psalm baseline. Allowing you to track the progress of your baseline over time.
The score is the total number of occurrences of <code></code>
blocks in the baseline
Note: All inputs are optional and the defaults should work in most cases
Input | Default | Description |
---|---|---|
base_ref | ${{ github.event.pull_request.base.sha }} | git ref to use for calculating the base_score |
head_ref | 'HEAD' | git ref to use for calculating the head_score |
path_to_baseline | './psalm-baseline.xml' | Path to the baseline file |
template_decreased | See Templates | Template to use when the baseline has decreased (See Templates) |
template_increased | See Templates | Template to use when the baseline has grown (See Templates) |
template_no_change | See Templates | Template to use when the baseline score hasn't changed (See Templates) |
Output | Description |
---|---|
base_score | Baseline score at base_ref |
head_score | Baseline score at head_ref |
score_diff | Difference between the two scores (head_score - base_score) |
score_diff_string | Same a score_diff , with a + prepended for positive numbers |
output_message | Parsed output based on the template_* inputs (See Templates) |
The template_* inputs allow you to specify different templates for when the score increases/decreases/remains the same.
These templates are parsed by envsubst
, with valid substitutions being: $BASE_SCORE
, $HEAD_SCORE
, $SCORE_DIFF
& $SCORE_DIFF_STRING
The relevant template is parsed and output to output_message
for you to use.
- id: baseline-scores
uses: annervisser/psalm-baseline-progress-action@v1
with:
template_decreased: 'Baseline decreased! from $BASE_SCORE to $HEAD_SCORE'
template_increased: |
The baseline has increased!
Old score: $BASE_SCORE
New score: $HEAD_SCORE
Difference: $SCORE_DIFF_STRING
template_no_change: 'Nothing''s changed!'
-
🍀 Psalm baseline has decreased: **$BASE_SCORE** → **$HEAD_SCORE** _(**${SCORE_DIFF}**)_
🍀 Psalm baseline has decreased: 500 → 490 (-10) -
📛 Psalm baseline has increased: **$BASE_SCORE** → **$HEAD_SCORE** _(**+${SCORE_DIFF}**)_
📛 Psalm baseline has increased: 500 → 510 (+10) -
Psalm baseline score remained the same: **$HEAD_SCORE**
Psalm baseline score remained the same: 500
See Templates for customizing the output_message
on:
pull_request:
jobs:
comment-psalm-baseline-progress:
runs-on: ubuntu-latest
permissions:
contents: read # Default permission when no others are specified, needed for actions/checkout
pull-requests: write # Needed to post a comment on a pull request
steps:
- uses: actions/checkout@v4
- id: baseline-scores
uses: annervisser/psalm-baseline-progress-action@v1
- uses: thollander/actions-comment-pull-request@v3
with:
message: ${{ steps.psalm-baseline-progress-action.outputs.output_message }}
comment-tag: 'psalm_baseline_score_comment' # Add marker so existing comment can be updated
create-if-not-exists: ${{ steps.psalm-baseline-progress-action.outputs.score_diff != 0 }} # Only create comment when baseline score changed, but always update existing comment
# github-token: <a GitHub PAT> # Only needed to comment on pull requests coming from forks
on:
pull_request:
jobs:
reject-psalm-baseline-increases:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- id: baseline-scores
uses: annervisser/psalm-baseline-progress-action@v1
- if: steps.baseline-scores.outputs.score_diff > 0
run: |
echo ::error::Baseline has grown by ${{ steps.baseline-scores.score_diff }}
exit 1