1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2025-01-20 03:59:26 +02:00

130 Commits

Author SHA1 Message Date
Carlos Alexandro Becker
5b87a85ee0
feat(nfpm): better support aix (#5075)
building upon the great work done at #4898


closes #4898

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Co-authored-by: Dylan Myers <dylan.myers@bluemedora.com>
2024-08-18 16:58:12 -03:00
Carlos Alexandro Becker
33e0fc4fe2
test(nfpm): improve ipk test 2024-07-11 21:57:50 -03:00
Weston Schmidt
cc114fc8b9
feat(nfpm): add support for ipk package format (#4863)
Adds code to expose the ipk configuration values and registers the ipk
package format with nfpm.

Updates the documentation with how to use the new ipk specific
configuration parameters.

**This isn't ready to merge, but I have some questions**

1. I copied the `TestIPKSpecificConfig()`
([code](https://github.com/goreleaser/goreleaser/compare/main...schmidtw:goreleaser:main#diff-912a4af69daf4d89537b6bea43a1b7fe65683128ea1be66d6ec77046c76d064dR1358))
from the `TestAPKSpecificConfig()` and found it only is really testing
if specific scripts are there or not. Since IPK doesn't have any
additional scripts, just fields in one file do I need this test
function? Is there a better way to validate the output?
2. I have run into issues where the tests expect `goreleaser` to be the
org & repo - is there a way to override this in my fork without changing
the code?
3. Is the `ToNFPAlts()` and `ToNFP()` living in the config.go file ok?
There wasn't much code in that file, so I figured I'd ask if you'd
rather this code be elsewhere.

---------

Co-authored-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-07-11 21:57:33 -03:00
Ralf Steube
cefec7c58b
feat(nfpm): support arm in termux (#4901)
This adds `arm` support for termux (arch needs to be called `arm` as
well).

---

Ok this drove me nuts, but I think I've got it working now:
https://github.com/carapace-sh/carapace-bin/releases/tag/v1.0.3

1.  First of all most of the `android` targets need `CGO_ENABLED=1`.

2. Then there's the need for a [patched
runtime](https://github.com/carapace-sh/go/tree/master/termux) due to
the `/data/data/com.termux/files` prefix (adopted from the [golang
package](https://github.com/termux/termux-packages/tree/master/packages/golang)).

3. Two builds so that for termux the patched `gobinary` can be used.
Then add a `termux` suffix to the archives for clarity.

```yaml
builds:
  - id: default
    env:
      - CGO_ENABLED=0
    goos:
      - linux
      - windows
      - darwin
    main: ./cmd/carapace
    binary: carapace
    tags:
      - release
  - id: termux
    env:
      - CGO_ENABLED=1
    goos:
      - android
    goarch:
      - amd64
      - arm64
      - arm
      - "386"
    main: ./cmd/carapace
    binary: carapace
    tags:
      - release
    gobinary: go-termux
archives:
  - name_template: '{{ .ProjectName }}_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}'
    builds:
     - default
    format_overrides:
      - goos: windows
        format: zip
  - id: termux
    builds:
      - termux
    name_template: '{{ .ProjectName }}_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}.termux'
```

4. Compiling needs the [Android NDK](https://developer.android.com/ndk)
with the `CC` environment variable set. I used a
[script](https://github.com/carapace-sh/go/blob/master/go-termux.sh) for
this (`/usr/local/bin/go-termux`).

```sh
#!/bin/bash

bindir="/opt/android-sdk/ndk/${NDK_VERSION}/toolchains/llvm/prebuilt/linux-x86_64/bin"
[ "$GOARCH" = "amd64" ] && export CC="$bindir/x86_64-linux-android${ANDROID_VERSION}-clang"
[ "$GOARCH" = "arm64" ] && export CC="$bindir/aarch64-linux-android${ANDROID_VERSION}-clang"
[ "$GOARCH" = "arm" ] && export CC="$bindir/armv7a-linux-androideabi${ANDROID_VERSION}-clang"
[ "$GOARCH" = "386" ] && export CC="$bindir/i686-linux-android${ANDROID_VERSION}-clang"

exec /usr/local/go-termux/bin/go "$@"
```

5. There's [termux-apt-repo](https://github.com/termux/termux-apt-repo)
which makes repo creation pretty easy with `gh_pages`. Just needs a
[fix](https://github.com/termux/termux-apt-repo/pull/25) as goreleaser
uses `data.tar.gz`.

related #3333
related #4812 
related https://github.com/termux/termux-apt-repo/pull/25
2024-06-11 09:23:50 -03:00
Carlos Alexandro Becker
ec2db4a727
feat!: rename module to /v2 (#4894)
<!--

Hi, thanks for contributing!

Please make sure you read our CONTRIBUTING guide.

Also, add tests and the respective documentation changes as well.

-->


<!-- If applied, this commit will... -->

...

<!-- Why is this change being made? -->

...

<!-- # Provide links to any relevant tickets, URLs or other resources
-->

...

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-05-26 15:02:57 -03:00
Oleksandr Redko
00a376cc64
refactor: remove unneeded in Go 1.22 loop var copy (#4856)
The PR cleans up unnecessary loop variable copying and enables the
[`copyloopvar`](https://golangci-lint.run/usage/linters/#copyloopvar)
linter for detecting this redundant variable copying.

#### Additional notes

After the project upgraded to Go version 1.22 in #4779, copying
variables inside a `for` loop became unnecessary. See this [blog
post](https://go.dev/blog/loopvar-preview) for a detailed explanation.

The `copyloopvar` linter is only available from `golangci-lint` v1.57
onwards, so we also need to update this tool.
2024-05-12 13:21:13 -03:00
Carlos Alexandro Becker
bf31227b4e
fix(nfpm): termux platform (#4812)
closes #4810 
closes  #4809

---------

Co-authored-by: rsteube <rsteube@users.noreply.github.com>
2024-04-28 20:20:53 -03:00
Carlos Alexandro Becker
7552d0b4e0
fix: lint issues
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-04-22 23:44:28 -03:00
Stepan Rabotkin
d5fc94a81d
refactor: optimize strings replacers (#4788)
Reuse strings replace instead of recreation
2024-04-16 20:56:45 -03:00
Carlos Alexandro Becker
0a272037b3
fix: only build archlinux and aur for supported arches (#4695)
closes #4693

see https://wiki.archlinux.org/title/Frequently_asked_questions
2024-03-16 11:40:57 -03:00
Carlos Alexandro Becker
42d2db2021
feat(nfpm): compression, fields, and predends on debs (#4632)
refs #4630

<!--

Hi, thanks for contributing!

Please make sure you read our CONTRIBUTING guide.

Also, add tests and the respective documentation changes as well.

-->


<!-- If applied, this commit will... -->

...

<!-- Why is this change being made? -->

...

<!-- # Provide links to any relevant tickets, URLs or other resources
-->

...

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-02-19 08:51:36 -03:00
Carlos Alexandro Becker
d9e9e82ca7
feat(nfpm): also allow $NFPM_PASSPHRASE (#4633)
refs #4630

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-02-19 08:51:30 -03:00
Carlos Alexandro Becker
b294759d95
feat(nfpm): add .Format tmpl var
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-01-31 07:31:21 -03:00
Carlos Alexandro Becker
765d534c2e
feat(nfpm): support libraries (#4587)
This adds `nfpm.libdirs` to allow to set where to put libraries built,
as well as include them in the search for artifacts when building the
package.

closes #4346

---

PS: I'm not sure about the default dirs, let me know what you think!

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-01-31 07:26:25 -03:00
Carlos Alexandro Becker
5e9f01e6ea
feat: --skip=nfpm 2024-01-07 23:16:24 -03:00
Carlos Alexandro Becker
ccd8c55b4f
test: run testifylint -fix (#4483)
fix a bunch of tests

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-12-17 15:34:28 -03:00
Carlos Alexandro Becker
3a3cf610f8
docs: conventional file name on armv6
refs https://github.com/charmbracelet/meta/pull/116
2023-11-02 12:32:31 +00:00
Carlos Alexandro Becker
a84f8246c2
test: fix nfpm test after update 2023-09-20 14:15:08 +00:00
Carlos Alexandro Becker
622c426eb3
refactor: --skip=item (#4272)
Laying the ground work to allow skipping more pipes without adding new
flags et al.

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-09-16 17:01:20 -03:00
Carlos Alexandro Becker
bbe2ee7bfb
refactor: properly annotate deprecated options
Removed unused, deprecated stuff.
2023-08-04 14:47:54 +00:00
Carlos Alexandro Becker
51d9fc67a9
feat(deps): use mergo 1.0.0 2023-07-31 16:32:36 +00:00
Carlos Alexandro Becker
3ed6751bb9
feat(nfpm): allow to template scripts names 2023-07-18 00:44:11 +00:00
Carlos Alexandro Becker
8e0b9405f9
fix: use t.TempDir
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-07-17 11:56:06 +00:00
Carlos Alexandro Becker
52792f4a15
fix(nfpm): lintian unix path (#4175)
closes #4174
needs https://github.com/goreleaser/nfpm/pull/690

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-07-13 23:03:40 -03:00
Carlos Alexandro Becker
53ef7fe172
fix(nfpm): rpm.packager binding was missing
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-07-14 01:56:04 +00:00
Carlos Alexandro Becker
cc18ad5184
feat(nfpm): update + rpm prefixes support
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-07-14 01:55:47 +00:00
Tom Payne
c57cdab0c6
refactor: add function to apply template multiple times (#4158)
If applied, this commit simplifies the code required to support
templated fields in configuration files. This should make it easier to
add more templated fields in the future.

As [discussed first on
Discord](https://discord.com/channels/890434333251362866/1032457293687685191/1124033219747127316).
2023-06-30 14:46:53 -03:00
Carlos Alexandro Becker
f33a534825
fix: umask nfpm field (#4136)
nfpm was updated, but we never allowed to configure the umask field in
goreleaser.

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-06-22 09:08:31 -03:00
Carlos Alexandro Becker
66cee9493c
feat: remove deprecated replacements (#4075)
since this will be a late, big release, let's remove the deprecated
stuff that expired

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-06-06 11:46:02 -03:00
Carlos Alexandro Becker
b9e276feca
fix(nfpm): write too long when writing the lintian file (#4039)
The lintian files were being written for every format, whether they were
a deb or not.

Since package name and arches are the same, and packaging runs in
parallel, it could happen that one goroutine is reading while the other
is writing, as we were guaranteeing uniquenes based on package name and
arch only.

This makes it only creates the lintian files when format is deb, so this
shouldn't happen anymore.

It also goes one step further by using the actual format in the filepath
instead of hard-coding "deb".

This also still supports tmux.

closes #4024
2023-05-26 09:59:48 -03:00
Carlos Alexandro Becker
dbd4342078
test(nfpm): fix after update 2023-05-24 12:18:58 +00:00
Carlos Alexandro Becker
95b809dd13
feat: allow to template nfpms.package_name (#3960)
closes https://github.com/goreleaser/goreleaser/issues/3956
2023-04-29 15:30:52 -03:00
Matthew Bamber
ac19f902b4
fix(nfpm): Add extension to produced artifacts (#3940)
Add extension to produced artifacts so that they can be filtered in
later steps

Fixes #3933

Co-authored-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-04-13 11:42:58 -03:00
Carlos Alexandro Becker
82144cb2c0
test: improve file not found checkings (#3831)
using `errors.Is` everywhere, as file not found errors have different
messages on different OSes.
2023-03-04 12:16:26 -03:00
Carlos Alexandro Becker
d5151a6eb0
feat: ConventionalExtension on nFPM (#3822)
closes  #3799

---------

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-03-02 14:35:55 -03:00
Carlos Alexandro Becker
f544c5ce69
test: testctx pkg (#3807)
alternative to #3806 

the idea is that both `context.New` and `context.Context{}` are never
used in tests.

not sure yet how much I like it, so far code does look a bit more
readable though.

---------

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-03-02 00:01:11 -03:00
Carlos Alexandro Becker
1858bace7e
fix: nfpm replacements deprecation (#3793)
closes  #3792

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-02-21 21:54:18 -03:00
Carlos Alexandro Becker
caaf9973ee
fix: only debs should create iphoneos pkgs (#3719)
problem was made evident in the last nfpm update... this should fix it.

refs #3715

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-01-25 15:10:17 -03:00
Carlos A Becker
c747445d0b
test: apk key name template
refs #3667

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-01-11 09:14:03 -03:00
Kalle Møller
1b7dd258ce
feat: allow to template apk keyname (#3667)
To help solve this issue
```
    apk:
      signature:
        key_file: "{{ .Env.ABUILD_KEY_NAME }}.rsa"
        key_name: "{{ .Env.ABUILD_KEY_NAME }}"
```

<!--

Hi, thanks for contributing!

Please make sure you read our CONTRIBUTING guide.

Also, add tests and the respective documentation changes as well.

-->


<!-- If applied, this commit will... -->

Allow that the key_name in apk signature to be templated

<!-- Why is this change being made? -->

The name of the key might not be hardcoded, in a github workflow

<!-- # Provide links to any relevant tickets, URLs or other resources
-->

...
2023-01-11 09:10:31 -03:00
Carlos A Becker
7242733140
test: fix nfpm tests
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-11-29 21:59:38 -03:00
Carlos A Becker
6ff89366ca
fix: improve nfpm error
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-11-29 08:13:53 -03:00
Carlos Alexandro Becker
e54656438b
feat: deprecate replacements (#3589)
The replacements thing was always a bit weird, especially on archives.

We can solve that with templates, so, removing I'm deprecating it.

Also did the same on other places that had it the same feature.

Closes #3588

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-11-25 15:26:14 -03:00
Arsen6331
ad359a4712
feat: implement nfpm archlinux packages (#3470)
<!--

Hi, thanks for contributing!

Please make sure you read our CONTRIBUTING guide.

Also, add tests and the respective documentation changes as well.

-->


<!-- If applied, this commit will... -->

This PR implements the Archlinux packages that were added in nfpm
v2.20.0, as well as tests and documentation for them.

<!-- Why is this change being made? -->

<!-- # Provide links to any relevant tickets, URLs or other resources
-->

goreleaser/nfpm#133
goreleaser/nfpm#543
Fixes #3469

Co-authored-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2022-11-02 15:30:06 -03:00
Arsen6331
f6eb51cb9c
feat: integrate ConventionalExtension from nfpm v2.20.0 (#3468)
<!--

Hi, thanks for contributing!

Please make sure you read our CONTRIBUTING guide.

Also, add tests and the respective documentation changes as well.

-->


<!-- If applied, this commit will... -->

This PR upgrades nFPM to v0.20.0, and integrates the new
`ConventionalExtension` method to use the correct extension for the
packaging format that is being used.

<!-- Why is this change being made? -->

Currently, goreleaser uses the name of the format to determine the
extension. This has worked fine, but with the introduction of Archlinux
packages, goreleaser has to handle packages with extensions that don't
match the name of the format, since Archlinux uses `.pkg.tar.zst` as the
extension.

<!-- # Provide links to any relevant tickets, URLs or other resources
-->

goreleaser/nfpm#546
goreleaser/nfpm#543
2022-10-15 16:57:39 -03:00
Carlos Alexandro Becker
080ccff8db
feat: nfpm for ios (#3436)
Jailbroken iOS can install deb packages, and it seems the only change
needed is to set the OS to `ios` instead of `linux`.

Closes #3410

cc/ @blacktop

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-10-12 21:24:39 -03:00
Carlos Alexandro Becker
d7cf3dd889
docs: update nfpm docs (#3396)
closes #3380

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-09-24 22:42:30 -03:00
Carlos Alexandro Becker
a7c6b14cbf
feat: termux.deb (#3333)
termux support, built from #3258 :

minor code changes
support for 386 as well
docs
tests

closes #3118
closes #3258

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
Co-authored-by: rsteube <rsteube@users.noreply.github.com>
2022-08-22 09:29:55 -03:00
Carlos Alexandro Becker
3f60327964
feat: nfpm changelog support (#3309)
closes #3259

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-08-16 02:05:46 -03:00
Carlos A Becker
fa61448ded
feat: support provides field in nfpm config
refs #3259

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-08-07 12:13:20 -03:00