1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2025-11-06 09:09:29 +02:00

feat(pipe/release): Mark GitHub releases as non-draft only after all artifacts are uploaded. (#4626)

Previously end-users would see missing artifacts if trying to use latest
version while artifacts are being uploaded.

This currently applies only to GitHub releases. GitLab does not support
drafts, and I don't dare to make the change for Gitea since I don't use
it (and can't test easily).

---------

Co-authored-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
This commit is contained in:
Kirill Nikolaev
2024-02-19 13:50:47 +01:00
committed by GitHub
parent 42d2db2021
commit ef90821ee7
8 changed files with 48 additions and 5 deletions

View File

@@ -171,7 +171,11 @@ func doPublish(ctx *context.Context, client client.Client) error {
return upload(ctx, client, releaseID, artifact)
})
}
return g.Wait()
if err := g.Wait(); err != nil {
return err
}
return client.PublishRelease(ctx, releaseID)
}
func upload(ctx *context.Context, cli client.Client, releaseID string, artifact *artifact.Artifact) error {

View File

@@ -117,6 +117,7 @@ func TestRunPipeWithoutIDsThenDoesNotFilter(t *testing.T) {
require.NoError(t, doPublish(ctx, client))
require.True(t, client.CreatedRelease)
require.True(t, client.UploadedFile)
require.True(t, client.ReleasePublished)
require.Contains(t, client.UploadedFileNames, "source.tar.gz")
require.Contains(t, client.UploadedFileNames, "bin.deb")
require.Contains(t, client.UploadedFileNames, "bin.tar.gz")
@@ -192,6 +193,7 @@ func TestRunPipeWithIDsThenFilters(t *testing.T) {
require.NoError(t, doPublish(ctx, client))
require.True(t, client.CreatedRelease)
require.True(t, client.UploadedFile)
require.True(t, client.ReleasePublished)
require.Contains(t, client.UploadedFileNames, "bin.deb")
require.Contains(t, client.UploadedFileNames, "bin.tar.gz")
require.Contains(t, client.UploadedFileNames, "f1")
@@ -215,6 +217,7 @@ func TestRunPipeReleaseCreationFailed(t *testing.T) {
require.Error(t, doPublish(ctx, client))
require.False(t, client.CreatedRelease)
require.False(t, client.UploadedFile)
require.False(t, client.ReleasePublished)
}
func TestRunPipeWithFileThatDontExist(t *testing.T) {
@@ -262,6 +265,7 @@ func TestRunPipeUploadFailure(t *testing.T) {
require.EqualError(t, doPublish(ctx, client), "failed to upload bin.tar.gz after 1 tries: upload failed")
require.True(t, client.CreatedRelease)
require.False(t, client.UploadedFile)
require.False(t, client.ReleasePublished)
}
func TestRunPipeExtraFileNotFound(t *testing.T) {
@@ -330,6 +334,7 @@ func TestRunPipeUploadRetry(t *testing.T) {
require.NoError(t, doPublish(ctx, client))
require.True(t, client.CreatedRelease)
require.True(t, client.UploadedFile)
require.True(t, client.ReleasePublished)
}
func TestDefault(t *testing.T) {