You've already forked goreleaser
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:
@@ -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 {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user