-
-
Notifications
You must be signed in to change notification settings - Fork 471
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
GitHub Releases requires a tag #20
Comments
A few things to note
It looks like the push that is triggering these runs is a push of a commit.
You can use a custom command to pass env variables between workflow steps I will try and follow up on this with documentation on a strategy for creating tags within a workflow run |
I'm also struggled with that problem, trying to fix it somehow. |
I notice same error in https://github.com/diofant/diofant/commit/6740f83761a14a06f44ab0b1d001907f70bcba0e/checks?check_suite_id=262644565 |
I'm using gitversion for versioning, which handles versioning based on branches... It doesn't work when checking out a tag instead of a branch so I can't use a github workflow triggered by a pushed tag. I've currently got the following steps: - name: Tag
if: startsWith(github.ref, 'refs/heads/release/')
run: |
git tag "v$env:GitVersion_SemVer"
git push origin "v$env:GitVersion_SemVer"
- name: Release
if: startsWith(github.ref, 'refs/heads/release/')
uses: softprops/action-gh-release@v1
with:
name: v${{ env.GitVersion_SemVer }}
prerelease: ${{ env.GitVersion_PreReleaseLabel != '' }}
files: ./artifacts/sidekick-*.zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} Couldn't |
+1 to this confusion; see no reason that I can't specify a tag name and this Action tags & releases all in one go. |
+1 same here |
+1 |
Is this still an issue? I'm triggering release process based on a pull request merge for branches prefixed with If @softprops is inactive I may look elsewhere. It's unfortunate because it's hard to find an action that will also allow you to upload artifacts. |
anyone managed to get passed this? example would be appreciated. |
I swithed to another action that does it easy. |
same here |
@roslovets If you did, please mention the name here to help others out. Thank you. |
I use ncipollo/release-action to create release just after tagging in the same workflow. Example |
In fact, as @softprops said, you need a tag to create a release. Regarding what @Septias said, it still doesn't work after adding the tag, I think it may be that the tag is not pushed to github, for more discussion on this see: Push git commits & tags simultaneously This issue is basically related to
The following example specifies a tag named "test": - name: Release user files
uses: softprops/action-gh-release@v1
with:
tag_name: test
files: |
file1
file2 Specifying a tag for each commit is annoying. As in the example given by @roslovets, you can use version number control for the tag. Another example is to specify a tag name for each nightly build version: - name: Generate release tag
id: tag
run: |
echo "::set-output name=release_tag::UserBuild_$(date +"%Y.%m.%d_%H-%M")"
- name: Release user firmware
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ steps.tag.outputs.release_tag }}
files: |
file1
file2
|
Thank you for the clarity and your example approaches, #20 (comment) |
Thanks for this amazing example @windowsair . |
I used another action to get the previous tag - name: 'Get Previous tag'
id: previous_tag
uses: "WyriHaximus/github-action-get-previous-tag@v1"
with:
fallback: 1.0.0
- name: Release
uses: softprops/action-gh-release@v1
with:
tag_name: ${{steps.previous_tag.outputs.tag}}
files: ${{steps.sign_app.outputs.signedReleaseFile}} |
Previous github release failed with "Error:⚠️ GitHub Releases requires a tag" softprops/action-gh-release#20 (comment)
Same issue here despite having tags fetched in a seperate step to checkout. You can also do this by specifying depth: 0 but it also pulls all history. The check if a tag exists is done against the github ref, Which regardless if a tag is associated/pointing at that commit will refer to the branch name if it's a branch (the Github documentation on this has evolved over the years and not always been accurate!) Here the ref is checked rather then if a tag is pointing at the commit sha, Which is the way GHA documents it. action-gh-release/src/github.ts Lines 193 to 197 in fe9a9bd
I'm not sure what is right or wrong here as based on long running discrepancies in GHA documentation and actual behavior. Most of the advice on the interwebs is to check this ref for a tag type of ref. To use any tagging at all in my workflow I had to do it this way:
Going to use the mentioned |
The approach used by all these actions is horrible. All are built around pushing a tag to have a build. It kind of defeats a primary goal of continuous integration - build on every code change. Instead, it's - build on every tag release. I'm just leaving this comment here with hope it will be helpful as I came up with what I think is an elegant solution. I believe a lot of folks don't realize that all these actions are built using either REST API or nice little utility from GitHub called hub (which I guess is using REST API too): https://hub.github.com. The good thing about it is that it's automatically available on your runners and it's literally 1-line command to create your release which can automatically create a tag for you and upload your packages. Instead of using action, you can use something like: - name: 'Create Release'
run: hub release create release_name -m release_message -a your_build_artifact.zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} The only thing you have to do to make it work is to add permissions to your GitHub token to be able to create releases, that can be done in your repository options. My full workflow example is slightly more complicated but here it is for the reference: |
build ≠ release |
Yes, but you want your build deployable one way or another. If you ever used GitHub artifact storage, you're well aware of it's limitation. |
Yes, but having to manually trigger a tag release to do a release is not what I would call continuous automation. Even a manual trigger of your deploy workflow (which you may want to do) will not work, and any other automation that is not creating a tag will not work either. |
I solved the problem. https://github.com/ramazansancar/gnojus_wedl-go/blob/master/.github/workflows/release.yaml It works flawlessly for this place. All I did was on the command line, respectively: git tag v1.0.9
git push origin v1.0.9
# Create Tag
git tag <tag>
# Last commit connection the tag
git push origin <tag> Before: https://github.com/ramazansancar/gnojus_wedl-go/actions/runs/8681675249 After: https://github.com/ramazansancar/gnojus_wedl-go/actions/runs/8681705139 |
Specify release tag explicitly as this action doesn't seem to be able to pick it up from the repo. See softprops/action-gh-release#20 (comment)
I keep getting this error that my git tag has not been set, tried multiple ways to do that from the command line and from bash inside of the action. Could not get promising results hence this issue.
Here is my main.yaml
The text was updated successfully, but these errors were encountered: