Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add GitHub Actions workflow to automate release creation on tagged pushes #7209

Merged
merged 8 commits into from
Sep 30, 2024

Conversation

YidiDev
Copy link
Contributor

@YidiDev YidiDev commented Sep 27, 2024

  • Do only one thing
  • Non-breaking API changes
  • Tested

What did this pull request do?

This pull request adds a GitHub Actions workflow that automatically creates a GitHub release whenever a new tag is pushed to the repository. This automation ensures that every tagged version has a corresponding release, simplifying the release management process and making it easier for users to access specific versions of the GORM library.

User Case Description

Motivation

Currently, releases may not be consistently created for every tagged version, which can lead to confusion for users looking to download specific versions of GORM. Automating the release creation process ensures that releases are always up-to-date with the latest tags.

Implementation Details

  • Workflow File Added: .github/workflows/release-on-tag.yml
  • Trigger: The workflow triggers on any push to a tag pattern ('*'), i.e., when a new tag is pushed.
  • Actions Used:
    • actions/create-release@v1: Creates a new GitHub release based on the pushed tag.

Benefits

  • Consistency: Ensures that every tag has a corresponding release.
  • Automation: Reduces manual work for maintainers by automating the release process.
  • User Experience: Improves accessibility for users who rely on GitHub releases to download specific versions.

How did you test this code?

  • Forked Repository Testing: Tested the workflow in my forked repository by pushing new tags and verifying that releases are automatically created.
  • Existing Release Handling: Confirmed that the workflow handles the case where a release already exists without failing.
  • Workflow Logs: Monitored the workflow runs to ensure that all steps execute as expected and that appropriate messages are logged.

Additional Notes

  • Non-Breaking Change: This addition does not introduce any breaking changes to the API or existing functionality.
  • Single Responsibility: The pull request focuses solely on adding the release automation workflow.
  • Documentation: Included comments within the workflow file for clarity.
  • Contribution Guidelines: Reviewed the contribution guidelines to ensure compliance.

This workflow automates the release creation process whenever a new
tag is pushed to the repository. It checks if a release for the tag
already exists and creates one if it doesn't, enhancing the release
management and streamlining the deployment process.
Refactor the script to improve checking for existing releases by tag.
Return an object instead of using core.setOutput to streamline the
workflow logic. Also, set result-encoding to string for better
compatibility.
Corrected the output handling in the 'release-on-tag.yml' workflow file
by changing 'result-encoding' to 'outputs'. This ensures that the step
correctly checks if a release exists before attempting to create a new
one, thereby avoiding potential errors during the release process.
Added a blank line for better readability.
Refactored how the release_exists output is set to be compatible with
GitHub Actions syntax. This ensures the workflow reliably detects if
a release already exists, improving the robustness of the release
process.
Improved the way outputs are managed in the 'check_release' step by
returning values instead of direct assignments. This change ensures
better handling of release existence checks and improves code
readability. Added 'result-encoding' to specify string encoding for
results.
Refactored the release existence check to return a simple boolean
string ('true'/'false') rather than an object. Added a step to print
the release existence status for debugging purposes. This ensures
correct conditional evaluation and aids in troubleshooting workflow
issues.
The release-on-tag workflow has been streamlined by eliminating the
redundant steps checking for existing releases. This change reduces
complexity and speeds up the release process by directly creating a
release on every tag push without prior existence verification.
@YidiDev
Copy link
Contributor Author

YidiDev commented Sep 27, 2024

Hi,

I've noticed that the CI tests are failing on this pull request. I've only added a GitHub Actions workflow file to automate release creation on tagged pushes and haven't modified any application code or tests.

I checked the CI logs but couldn't identify how my changes might have caused the failures. It seems the test failures might be unrelated to this PR.

Could someone please take a look or advise me on how to proceed?

Thank you!

@jinzhu jinzhu merged commit 62bd0b9 into go-gorm:master Sep 30, 2024
29 of 32 checks passed
@YidiDev YidiDev deleted the add-release-workflow branch October 5, 2024 20:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants