Release preparations for v7 (#394)

This commit is contained in:
Stefan Zweifel
2025-10-12 16:31:03 +02:00
committed by GitHub
parent 698fd76863
commit 28e16e8177
6 changed files with 56 additions and 49 deletions

View File

@@ -27,7 +27,7 @@ jobs:
latest-version: ${{ github.event.release.name }}
- name: Commit updated CHANGELOG
uses: stefanzweifel/git-auto-commit-action@v6
uses: stefanzweifel/git-auto-commit-action@v7
with:
branch: master
commit_message: Update CHANGELOG

View File

@@ -19,7 +19,7 @@ Adding git-auto-commit to your Workflow only takes a couple lines of code.
2. Add the following step at the end of your job, after other steps that might add or change files.
```yaml
- uses: stefanzweifel/git-auto-commit-action@v6
- uses: stefanzweifel/git-auto-commit-action@v7
```
Your Workflow should look similar to this example.
@@ -39,7 +39,7 @@ jobs:
contents: write
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
ref: ${{ github.head_ref }}
@@ -47,7 +47,7 @@ jobs:
# …
# Commit all changed files back to the repository
- uses: stefanzweifel/git-auto-commit-action@v6
- uses: stefanzweifel/git-auto-commit-action@v7
```
> [!NOTE]
@@ -56,7 +56,7 @@ jobs:
The following is an extended example with all available options.
```yaml
- uses: stefanzweifel/git-auto-commit-action@v6
- uses: stefanzweifel/git-auto-commit-action@v7
with:
# Optional. Commit message for the created commit.
# Defaults to "Apply automatic changes"
@@ -88,11 +88,11 @@ The following is an extended example with all available options.
# Optional. Tag name to be created in the local repository and
# pushed to the remote repository on the defined branch.
# If only one of `tag` or `tagging_message` is provided, the value of the provided field will be used for both tag name and message.
tag: 'v1.0.0'
# If only one of `tag_name` or `tagging_message` is provided, the value of the provided field will be used for both tag name and message.
tag_name: 'v1.0.0'
# Optional. Message to annotate the created tag with.
# If only one of `tag` or `tagging_message` is provided, the value of the provided field will be used for both tag name and message.
# If only one of `tag_name` or `tagging_message` is provided, the value of the provided field will be used for both tag name and message.
tagging_message: 'Codename "Sunshine"'
# Optional. Option used by `git-status` to determine if the repository is
@@ -155,14 +155,14 @@ jobs:
contents: write
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
ref: ${{ github.head_ref }}
- name: Run php-cs-fixer
uses: docker://oskarstark/php-cs-fixer-ga
- uses: stefanzweifel/git-auto-commit-action@v6
- uses: stefanzweifel/git-auto-commit-action@v7
with:
commit_message: Apply php-cs-fixer changes
```
@@ -184,7 +184,7 @@ You can use these outputs to trigger other Actions in your Workflow run based on
### Example
```yaml
- uses: stefanzweifel/git-auto-commit-action@v6
- uses: stefanzweifel/git-auto-commit-action@v7
id: auto-commit-action #mandatory for the output to show up in ${{ steps }}
with:
commit_message: Apply php-cs-fixer changes
@@ -220,7 +220,7 @@ You must use `action/checkout@v2` or later versions to check out the repository.
In non-`push` events, such as `pull_request`, make sure to specify the `ref` to check out:
```yaml
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
ref: ${{ github.head_ref }}
```
@@ -238,7 +238,7 @@ You can change this by creating a new [Personal Access Token (PAT)](https://gith
storing the token as a secret in your repository and then passing the new token to the [`actions/checkout`](https://github.com/actions/checkout#usage) Action step.
```yaml
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
token: ${{ secrets.PAT }}
```
@@ -284,7 +284,7 @@ The example below can be used as a starting point to generate a multiline commit
# Quick and dirty step to get rid of the temporary file holding the commit message
- run: rm -rf commitmessage.txt
- uses: stefanzweifel/git-auto-commit-action@v6
- uses: stefanzweifel/git-auto-commit-action@v7
id: commit
with:
commit_message: ${{ steps.commit_message_step.outputs.commit_message }}
@@ -308,7 +308,7 @@ As git-auto-commit by default does not use **your** username and email when crea
git_commit_gpgsign: true
- name: "Commit and push changes"
uses: stefanzweifel/git-auto-commit-action@v6
uses: stefanzweifel/git-auto-commit-action@v7
with:
commit_author: "${{ steps.import-gpg.outputs.name }} <${{ steps.import-gpg.outputs.email }}>"
commit_user_name: ${{ steps.import-gpg.outputs.name }}
@@ -371,7 +371,7 @@ jobs:
contents: write
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
# Checkout the fork/head-repository and push changes to the fork.
# If you skip this, the base repository will be checked out and changes
@@ -385,7 +385,7 @@ jobs:
- name: Run php-cs-fixer
uses: docker://oskarstark/php-cs-fixer-ga
- uses: stefanzweifel/git-auto-commit-action@v6
- uses: stefanzweifel/git-auto-commit-action@v7
```
For more information about running Actions on forks, see [this announcement from GitHub](https://github.blog/2020-08-03-github-actions-improvements-for-fork-and-pull-request-workflows/).
@@ -420,7 +420,7 @@ The steps in your workflow might look like this:
echo "message=$(git log -1 --pretty=%s)" >> $GITHUB_OUTPUT
echo "author=$(git log -1 --pretty=\"%an <%ae>\")" >> $GITHUB_OUTPUT
- uses: stefanzweifel/git-auto-commit-action@v6
- uses: stefanzweifel/git-auto-commit-action@v7
with:
commit_author: ${{ steps.last-commit.outputs.author }}
commit_message: ${{ steps.last-commit.outputs.message }}
@@ -463,7 +463,7 @@ If you create a personal access token (classic), apply the `repo` and `workflow`
If you create a fine-grained personal access token, apply the `Contents`-permissions.
```yaml
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
# We pass the "PAT" secret to the checkout action; if no PAT secret is available to the workflow runner (eg. Dependabot) we fall back to the default "GITHUB_TOKEN".
token: ${{ secrets.PAT || secrets.GITHUB_TOKEN }}
@@ -477,7 +477,7 @@ You can learn more about Personal Access Token in the [GitHub documentation](htt
If you go the "force pushes" route, you have to enable force pushes to a protected branch (see [documentation](https://help.github.com/en/github/administering-a-repository/enabling-force-pushes-to-a-protected-branch)) and update your Workflow to use force push like this.
```yaml
- uses: stefanzweifel/git-auto-commit-action@v6
- uses: stefanzweifel/git-auto-commit-action@v7
with:
commit_message: Apply php-cs-fixer changes
push_options: --force
@@ -507,7 +507,7 @@ This is due to the fact, that the `*.md`-glob is expanded before sending it to `
To fix this add `disable_globbing: true` to your Workflow.
```yaml
- uses: stefanzweifel/git-auto-commit-action@v6
- uses: stefanzweifel/git-auto-commit-action@v7
with:
file_pattern: '*.md'
disable_globbing: true
@@ -535,7 +535,7 @@ yarn test
We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/stefanzweifel/git-auto-commit-action/tags).
We also provide major version tags to make it easier to always use the latest release of a major version. For example, you can use `stefanzweifel/git-auto-commit-action@v6` to always use the latest release of the current major version.
We also provide major version tags to make it easier to always use the latest release of a major version. For example, you can use `stefanzweifel/git-auto-commit-action@v7` to always use the latest release of the current major version.
(More information about this [here](https://help.github.com/en/actions/building-actions/about-actions#versioning-your-action).)
## Credits

View File

@@ -1,5 +1,12 @@
# Upgrading
## From v6 to v7
The previously removed options `create_branch`, `skip_fetch`, and `skip_checkout` have been reintroduced in git-auto-commit v7. If you had removed these options from your workflows when upgrading to v6, you can now add them back if needed.
Tagging a commit has been reworked. In addition to the existing `tagging_message`-option, a new `tag_name` option has been added. If you were using `tagging_message`, you can continue to do so, but if you want to specify a custom tag name and tag message, you can now use the `tag_name` and `tagging_message` option.
(Specifying a `tagging_message` without a `tag_name` will create a tag with the name and message both set to the value of `tagging_message`.)
## From v5 to v6
The following options have been removed from git-auto-commit and can be removed from your workflows.

View File

@@ -44,7 +44,7 @@ inputs:
description: Value used for the commit author. Defaults to the username of whoever triggered this workflow run.
required: false
default: ${{ github.actor }} <${{ github.actor_id }}+${{ github.actor }}@users.noreply.github.com>
tag:
tag_name:
description: Tag name used for creating a new git tag with the commit. Keep this empty, if no tag should be created.
required: false
default: ''

View File

@@ -176,12 +176,12 @@ _local_commit() {
}
_tag_commit() {
echo "INPUT_TAG: ${INPUT_TAG}"
echo "INPUT_TAG_NAME: ${INPUT_TAG_NAME}"
echo "INPUT_TAGGING_MESSAGE: ${INPUT_TAGGING_MESSAGE}"
if [ -n "$INPUT_TAG" ] || [ -n "$INPUT_TAGGING_MESSAGE" ]; then
INTERNAL_TAG=${INPUT_TAG:-$INPUT_TAGGING_MESSAGE}
INTERNAL_TAGGING_MESSAGE=${INPUT_TAGGING_MESSAGE:-$INPUT_TAG}
if [ -n "$INPUT_TAG_NAME" ] || [ -n "$INPUT_TAGGING_MESSAGE" ]; then
INTERNAL_TAG=${INPUT_TAG_NAME:-$INPUT_TAGGING_MESSAGE}
INTERNAL_TAGGING_MESSAGE=${INPUT_TAGGING_MESSAGE:-$INPUT_TAG_NAME}
_log "debug" "Create tag $INTERNAL_TAG: $INTERNAL_TAGGING_MESSAGE"
git -c user.name="$INPUT_COMMIT_USER_NAME" -c user.email="$INPUT_COMMIT_USER_EMAIL" tag -a "$INTERNAL_TAG" -m "$INTERNAL_TAGGING_MESSAGE"
@@ -202,8 +202,8 @@ _push_to_github() {
if [ -z "$INPUT_BRANCH" ]
then
# Only add `--tags` option, if `$INPUT_TAG` or `$INPUT_TAGGING_MESSAGE` is set
if [ -n "$INPUT_TAG" ] || [ -n "$INPUT_TAGGING_MESSAGE" ]
# Only add `--tags` option, if `$INPUT_TAG_NAME` or `$INPUT_TAGGING_MESSAGE` is set
if [ -n "$INPUT_TAG_NAME" ] || [ -n "$INPUT_TAGGING_MESSAGE" ]
then
_log "debug" "git push origin --tags";
git push origin --follow-tags --atomic ${INPUT_PUSH_OPTIONS:+"${INPUT_PUSH_OPTIONS_ARRAY[@]}"};

View File

@@ -32,7 +32,7 @@ setup() {
export INPUT_COMMIT_USER_NAME="Test Suite"
export INPUT_COMMIT_USER_EMAIL="test@github.com"
export INPUT_COMMIT_AUTHOR="Test Suite <test@users.noreply.github.com>"
export INPUT_TAG=""
export INPUT_TAG_NAME=""
export INPUT_TAGGING_MESSAGE=""
export INPUT_PUSH_OPTIONS=""
export INPUT_SKIP_DIRTY_CHECK=false
@@ -122,7 +122,7 @@ cat_github_output() {
assert_line "INPUT_FILE_PATTERN: ."
assert_line "INPUT_COMMIT_OPTIONS: "
assert_line "::debug::Apply commit options "
assert_line "INPUT_TAG: "
assert_line "INPUT_TAG_NAME: "
assert_line "INPUT_TAGGING_MESSAGE: "
assert_line "Neither tag nor tag message is set. No tag will be added."
assert_line "INPUT_PUSH_OPTIONS: "
@@ -146,7 +146,7 @@ cat_github_output() {
assert_line "INPUT_FILE_PATTERN: ."
assert_line "INPUT_COMMIT_OPTIONS: "
assert_line "::debug::Apply commit options "
assert_line "INPUT_TAG: "
assert_line "INPUT_TAG_NAME: "
assert_line "INPUT_TAGGING_MESSAGE: "
assert_line "Neither tag nor tag message is set. No tag will be added."
assert_line "INPUT_PUSH_OPTIONS: "
@@ -294,7 +294,7 @@ cat_github_output() {
}
@test "It creates a tag with the commit" {
INPUT_TAG="v1.0.0"
INPUT_TAG_NAME="v1.0.0"
INPUT_TAGGING_MESSAGE="MyProduct v1.0.0"
touch "${FAKE_LOCAL_REPOSITORY}"/new-file-{1,2,3}.txt
@@ -303,7 +303,7 @@ cat_github_output() {
assert_success
assert_line "INPUT_TAG: v1.0.0"
assert_line "INPUT_TAG_NAME: v1.0.0"
assert_line "INPUT_TAGGING_MESSAGE: MyProduct v1.0.0"
assert_line "::debug::Create tag v1.0.0: MyProduct v1.0.0"
@@ -394,7 +394,7 @@ cat_github_output() {
@test "It uses existing branch when INPUT_BRANCH is empty and INPUT_TAG is set" {
INPUT_BRANCH=""
INPUT_TAG="v2.0.0"
INPUT_TAG_NAME="v2.0.0"
INPUT_TAGGING_MESSAGE="MyProduct v2.0.0"
@@ -404,7 +404,7 @@ cat_github_output() {
assert_success
assert_line "INPUT_TAG: v2.0.0"
assert_line "INPUT_TAG_NAME: v2.0.0"
assert_line "::debug::Create tag v2.0.0: MyProduct v2.0.0"
assert_line "::debug::git push origin --tags"
@@ -445,7 +445,7 @@ cat_github_output() {
@test "It pushes generated commit and tag to remote and actually updates the commit shas" {
INPUT_BRANCH=""
INPUT_TAG="v2.0.0"
INPUT_TAG_NAME="v2.0.0"
INPUT_TAGGING_MESSAGE="MyProduct v2.0.0"
@@ -455,7 +455,7 @@ cat_github_output() {
assert_success
assert_line "INPUT_TAG: v2.0.0"
assert_line "INPUT_TAG_NAME: v2.0.0"
assert_line "::debug::Create tag v2.0.0: MyProduct v2.0.0"
assert_line "::debug::git push origin --tags"
@@ -480,7 +480,7 @@ cat_github_output() {
git checkout ${FAKE_DEFAULT_BRANCH}
INPUT_BRANCH="a-new-branch"
INPUT_TAG="v2.0.0"
INPUT_TAG_NAME="v2.0.0"
INPUT_TAGGING_MESSAGE="MyProduct v2.0.0"
@@ -490,7 +490,7 @@ cat_github_output() {
assert_success
assert_line "INPUT_TAG: v2.0.0"
assert_line "INPUT_TAG_NAME: v2.0.0"
assert_line "::debug::Create tag v2.0.0: MyProduct v2.0.0"
assert_line "::debug::Push commit to remote branch a-new-branch"
@@ -643,7 +643,7 @@ cat_github_output() {
assert_line "INPUT_FILE_PATTERN: ."
assert_line "INPUT_COMMIT_OPTIONS: "
assert_line "::debug::Apply commit options "
assert_line "INPUT_TAG: "
assert_line "INPUT_TAG_NAME: "
assert_line "INPUT_TAGGING_MESSAGE: "
assert_line "Neither tag nor tag message is set. No tag will be added."
assert_line "INPUT_PUSH_OPTIONS: "
@@ -702,7 +702,7 @@ cat_github_output() {
assert_line "INPUT_FILE_PATTERN: ."
assert_line "INPUT_COMMIT_OPTIONS: "
assert_line "::debug::Apply commit options "
assert_line "INPUT_TAG: "
assert_line "INPUT_TAG_NAME: "
assert_line "INPUT_TAGGING_MESSAGE: "
assert_line "Neither tag nor tag message is set. No tag will be added."
assert_line "INPUT_PUSH_OPTIONS: "
@@ -1035,7 +1035,7 @@ cat_github_output() {
assert_line "INPUT_FILE_PATTERN: ."
assert_line "INPUT_COMMIT_OPTIONS: "
assert_line "::debug::Apply commit options "
assert_line "INPUT_TAG: "
assert_line "INPUT_TAG_NAME: "
assert_line "INPUT_TAGGING_MESSAGE: "
assert_line "Neither tag nor tag message is set. No tag will be added."
assert_line "INPUT_PUSH_OPTIONS: "
@@ -1123,7 +1123,7 @@ END
@test "it creates a tag if create_git_tag_only is set to true and a message has been supplied" {
INPUT_CREATE_GIT_TAG_ONLY=true
INPUT_TAG=v1.0.0
INPUT_TAG_NAME=v1.0.0
INPUT_TAGGING_MESSAGE="MyProduct v1.0.0"
run git_auto_commit
@@ -1153,14 +1153,14 @@ END
@test "it output no tagging message supplied if no tagging message is set but create_git_tag_only is set to true" {
INPUT_CREATE_GIT_TAG_ONLY=true
INPUT_TAG=""
INPUT_TAG_NAME=""
INPUT_TAGGING_MESSAGE=""
run git_auto_commit
assert_success
assert_line "INPUT_TAG: "
assert_line "INPUT_TAG_NAME: "
assert_line "INPUT_TAGGING_MESSAGE: "
assert_line "Neither tag nor tag message is set. No tag will be added."
assert_line "::debug::Create git tag only"
@@ -1452,7 +1452,7 @@ END
assert_success
assert_line "INPUT_TAG: "
assert_line "INPUT_TAG_NAME: "
assert_line "INPUT_TAGGING_MESSAGE: v1.0.0"
assert_line "::debug::Create tag v1.0.0: v1.0.0"
@@ -1474,7 +1474,7 @@ END
}
@test "Set a tag only" {
INPUT_TAG="v1.0.0"
INPUT_TAG_NAME="v1.0.0"
touch "${FAKE_LOCAL_REPOSITORY}"/new-file-{1,2,3}.txt
@@ -1482,7 +1482,7 @@ END
assert_success
assert_line "INPUT_TAG: v1.0.0"
assert_line "INPUT_TAG_NAME: v1.0.0"
assert_line "INPUT_TAGGING_MESSAGE: "
assert_line "::debug::Create tag v1.0.0: v1.0.0"