diff --git a/internal/pipe/nfpm/nfpm.go b/internal/pipe/nfpm/nfpm.go index fa99067bca8..f8719b1be1a 100644 --- a/internal/pipe/nfpm/nfpm.go +++ b/internal/pipe/nfpm/nfpm.go @@ -82,7 +82,10 @@ func (Pipe) Run(ctx *context.Context) error { func doRun(ctx *context.Context, fpm config.NFPM) error { filters := []artifact.Filter{ artifact.ByType(artifact.Binary), - artifact.ByGoos("linux"), + artifact.Or( + artifact.ByGoos("linux"), + artifact.ByGoos("ios"), + ), } if len(fpm.Builds) > 0 { filters = append(filters, artifact.ByIDs(fpm.Builds...)) @@ -136,6 +139,10 @@ func create(ctx *context.Context, fpm config.NFPM, format string, binaries []*ar // TODO: improve mips handling on nfpm infoArch := binaries[0].Goarch + binaries[0].Goarm + binaries[0].Gomips // key used for the ConventionalFileName et al arch := infoArch + binaries[0].Goamd64 // unique arch key + infoPlatform := binaries[0].Goos + if infoPlatform == "ios" { + infoPlatform = "iphoneos-arm64" + } bindDir := fpm.Bindir if format == termuxFormat { @@ -266,7 +273,7 @@ func create(ctx *context.Context, fpm config.NFPM, format string, binaries []*ar info := &nfpm.Info{ Arch: infoArch, - Platform: "linux", + Platform: infoPlatform, Name: fpm.PackageName, Version: ctx.Version, Section: fpm.Section, diff --git a/internal/pipe/nfpm/nfpm_test.go b/internal/pipe/nfpm/nfpm_test.go index cdae7aab5d7..742d2b16b93 100644 --- a/internal/pipe/nfpm/nfpm_test.go +++ b/internal/pipe/nfpm/nfpm_test.go @@ -159,8 +159,11 @@ func TestRunPipe(t *testing.T) { }) ctx.Version = "1.0.0" ctx.Git = context.GitInfo{CurrentTag: "v1.0.0"} - for _, goos := range []string{"linux", "darwin"} { + for _, goos := range []string{"linux", "darwin", "ios"} { for _, goarch := range []string{"amd64", "386", "arm64", "arm", "mips"} { + if goos == "ios" && goarch != "arm64" { + continue + } switch goarch { case "arm": for _, goarm := range []string{"6", "7"} { @@ -220,7 +223,7 @@ func TestRunPipe(t *testing.T) { } require.NoError(t, Pipe{}.Run(ctx)) packages := ctx.Artifacts.Filter(artifact.ByType(artifact.LinuxPackage)).List() - require.Len(t, packages, 36) + require.Len(t, packages, 40) for _, pkg := range packages { format := pkg.Format() require.NotEmpty(t, format) @@ -234,7 +237,11 @@ func TestRunPipe(t *testing.T) { if pkg.Gomips != "" { arch += "_" + pkg.Gomips } - require.Equal(t, "foo_1.0.0_Tux_"+arch+"-10-20."+format, pkg.Name) + if pkg.Goos == "linux" { + require.Equal(t, "foo_1.0.0_Tux_"+arch+"-10-20."+format, pkg.Name) + } else { + require.Equal(t, "foo_1.0.0_ios_arm64-10-20."+format, pkg.Name) + } require.Equal(t, "someid", pkg.ID()) require.ElementsMatch(t, []string{ "./testdata/testfile.txt",