Skip to content

Commit fe08f0f

Browse files
authored
Merge pull request #39 from flyeralarm/feat/release-workflow
🔧 Add CHANGELOG and release workflow for versioning
2 parents 1955205 + 11bc9a8 commit fe08f0f

2 files changed

Lines changed: 121 additions & 0 deletions

File tree

.github/workflows/release.yml

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
name: 📝Release
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
8+
jobs:
9+
release:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- name: Checkout
13+
uses: actions/checkout@v4
14+
with:
15+
fetch-depth: 0
16+
17+
- name: Verify tag is on master
18+
run: |
19+
git fetch origin master
20+
if ! git merge-base --is-ancestor "${{ github.sha }}" origin/master; then
21+
echo "::error::Tag is not on master — skipping release"
22+
exit 1
23+
fi
24+
25+
- name: Extract release notes from CHANGELOG
26+
id: changelog
27+
run: |
28+
VERSION="${{ github.ref_name }}"
29+
VERSION_NUMBER="${VERSION#v}"
30+
31+
RELEASE_NOTES=$(awk -v ver="$VERSION_NUMBER" '
32+
$0 ~ "^## " ver "$" || $0 ~ "^## \\[" ver "\\]" { found=1; next }
33+
found && /^## / { exit }
34+
found { print }
35+
' CHANGELOG.md | sed '/^[[:space:]]*$/{ /./!d }')
36+
37+
if [ -z "$RELEASE_NOTES" ]; then
38+
RELEASE_NOTES="Release ${VERSION_NUMBER}"
39+
fi
40+
41+
# Use multiline output via environment file
42+
{
43+
echo "notes<<EOF"
44+
echo "$RELEASE_NOTES"
45+
echo "EOF"
46+
} >> "$GITHUB_OUTPUT"
47+
48+
- name: Create GitHub Release
49+
env:
50+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
51+
run: |
52+
VERSION="${{ github.ref_name }}"
53+
gh release create "$VERSION" \
54+
--title "$VERSION" \
55+
--notes "${{ steps.changelog.outputs.notes }}"

CHANGELOG.md

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# Changelog
2+
3+
## 4.2.0 — 2026-02-26
4+
5+
- Updated `squizlabs/php_codesniffer` to version 3.13.5.
6+
7+
## 4.1.1 — 2024-12-05
8+
9+
- Added fix for missing array key in the yoda sniff for the do-while check.
10+
11+
## 4.1.0 — 2024-02-21
12+
13+
- Remove obsolete `bin/php-code-validator` from composer.
14+
15+
## 4.0.0 — 2023-07-20
16+
17+
- Removed binary executable as it added maintenance overhead (dependency to composer internals) without enough benefits.
18+
19+
## 3.2.4 — 2023-07-18
20+
21+
- Fixed shell interpreter for non-bash environments.
22+
23+
## 3.2.3 — 2023-03-24
24+
25+
- Add sniff to make and CI to apply code style check on self.
26+
27+
## 3.2.2 — 2023-03-23
28+
29+
- Remove `ReturnTypeSniff` with tests and from rulesets as it was too restrictive; use phpstan instead.
30+
- Add GitHub workflow for testing in CI.
31+
32+
## 3.2.1 — 2022-08-29
33+
34+
- Fixed issue with path on Composer 2.
35+
- Updated Composer to 2.4.1.
36+
37+
## 3.2.0 — 2020-10-15
38+
39+
- Added support for `implements` when checking for fully qualified class names.
40+
- Added support for PHP 7.4 by updating shipped `composer.phar`.
41+
42+
## 3.1.0 — 2020-10-14
43+
44+
- Improvements to `FullyQualifiedSniff`.
45+
46+
## 3.0.0 — 2020-10-05
47+
48+
- Updated from PSR-2 to PSR-12.
49+
50+
## 2.3.0 — 2020-10-02
51+
52+
- No release notes.
53+
54+
## 2.1.0 — 2017-10-13
55+
56+
- Allow execution of tests on Windows machines.
57+
- Switch preferred way of usage from shell script to using phpcs directly.
58+
- Allow usage of simple data type `resource` as return type.
59+
60+
## 1.0.1 — 2017-09-08
61+
62+
- No release notes.
63+
64+
## 1.0.0 — 2017-09-08
65+
66+
- Initial release.

0 commit comments

Comments
 (0)