ci: use config files from meta repository

Carlos A Becker created

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>

Change summary

.github/workflows/goreleaser.yml |  54 +-------
.goreleaser.yml                  | 225 +--------------------------------
2 files changed, 19 insertions(+), 260 deletions(-)

Detailed changes

.github/workflows/goreleaser.yml 🔗

@@ -9,52 +9,12 @@ concurrency:
   group: goreleaser
   cancel-in-progress: true
 
-permissions:
-  contents: write
-  packages: write
-
 jobs:
   goreleaser:
-    runs-on: ubuntu-latest
-    env:
-      DOCKER_CLI_EXPERIMENTAL: enabled
-    steps:
-      - name: Checkout
-        uses: actions/checkout@v2
-        with:
-          fetch-depth: 0
-
-      - name: Set up Go
-        uses: actions/setup-go@v2
-        with:
-          go-version: 1.17
-
-      - name: Login to DockerHub
-        uses: docker/login-action@v1
-        with:
-          username: ${{ secrets.DOCKERHUB_USERNAME }}
-          password: ${{ secrets.DOCKERHUB_TOKEN }}
-
-      - name: Login to GitHub Container Registry
-        uses: docker/login-action@v1
-        with:
-          registry: ghcr.io
-          username: ${{ github.repository_owner }}
-          password: ${{ secrets.GITHUB_TOKEN }}
-
-      - name: Set up QEMU
-        uses: docker/setup-qemu-action@v1
-
-      - name: Set up Docker Buildx
-        id: buildx
-        uses: docker/setup-buildx-action@v1
-
-      - name: Run GoReleaser
-        uses: goreleaser/goreleaser-action@v2
-        with:
-          distribution: goreleaser
-          version: latest
-          args: release --rm-dist --skip-sign
-        env:
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-          HOMEBREW_TAP_GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
+    uses: charmbracelet/meta/.github/workflows/goreleaser.yml@main
+    with:
+      secrets:
+        docker_username: ${{ secrets.DOCKERHUB_USERNAME }}
+        docker_token: ${{ secrets.DOCKERHUB_TOKEN }}
+        gh_pat: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
+        goreleaser_key: ${{ secrets.GORELEASER_KEY }}

.goreleaser.yml 🔗

@@ -1,213 +1,12 @@
-project_name: soft-serve
-
-env:
-  - GO111MODULE=on
-  - CGO_ENABLED=0
-
-before:
-  hooks:
-    - go mod download
-
-builds:
-  - binary: "soft"
-    main: "./cmd/soft"
-    ldflags: -s -w -X main.Version=v{{ .Version }} -X main.CommitSHA={{ .Commit }}
-    goos:
-      - linux
-      - darwin
-      - windows
-      - freebsd
-      - openbsd
-      - netbsd
-    goarch:
-      - amd64
-      - arm64
-      - "386"
-      - arm
-    goarm:
-      - "6"
-      - "7"
-    ignore:
-      - goos: windows
-        goarch: arm64
-      - goos: windows
-        goarm: "6"
-      - goos: windows
-        goarm: "7"
-      - goos: openbsd
-        goarm: "6"
-
-archives:
-  - format_overrides:
-      - goos: windows
-        format: zip
-    replacements:
-      windows: Windows
-      darwin: Darwin
-      386: i386
-      amd64: x86_64
-
-nfpms:
-  - vendor: charmbracelet
-    homepage: "https://charm.sh/"
-    maintainer: "Christian Rocha <christian@charm.sh>"
-    description: "A personal key value store"
-    license: MIT
-    formats:
-      - apk
-      - deb
-      - rpm
-    bindir: /usr/bin
-
-brews:
-  - tap:
-      owner: charmbracelet
-      name: homebrew-tap
-      token: "{{ .Env.HOMEBREW_TAP_GITHUB_TOKEN }}"
-    commit_author:
-      name: "Christian Rocha"
-      email: "christian@charm.sh"
-    homepage: "https://charm.sh/"
-    description: "A personal key value store"
-
-signs:
-  - artifacts: checksum
-
-checksum:
-  name_template: "checksums.txt"
-snapshot:
-  name_template: "{{ incpatch .Version }}-devel"
-changelog:
-  sort: asc
-  filters:
-    exclude:
-      - "^docs:"
-      - "^test:"
-
-release:
-  footer: |
-    * * *
-    Thoughts? Questions? We love hearing from you. Feel free to reach out on [Twitter](https://twitter.com/charmcli) or [The Fediverse](https://mastodon.technology/@charm).
-
-    <a href="https://charm.sh/"><img alt="The Charm logo" src="https://stuff.charm.sh/charm-badge.jpg?1" width="400"></a>
-
-dockers:
-  - image_templates:
-      - "docker.io/charmcli/soft-serve:latest-amd64"
-      - "docker.io/charmcli/soft-serve:v{{ .Major }}.{{ .Minor }}-amd64"
-      - "docker.io/charmcli/soft-serve:v{{ .Version }}-amd64"
-      - "ghcr.io/charmbracelet/soft-serve:latest-amd64"
-      - "ghcr.io/charmbracelet/soft-serve:v{{ .Major }}.{{ .Minor }}-amd64"
-      - "ghcr.io/charmbracelet/soft-serve:v{{ .Version }}-amd64"
-    goarch: amd64
-    build_flag_templates:
-      - --platform=linux/amd64
-      - --label=org.opencontainers.image.title={{ .ProjectName }}
-      - --label=org.opencontainers.image.description={{ .ProjectName }}
-      - --label=org.opencontainers.image.url=https://github.com/charmbracelet/soft-serve
-      - --label=org.opencontainers.image.source=https://github.com/charmbracelet/soft-serve
-      - --label=org.opencontainers.image.version=v{{ .Version }}
-      - --label=org.opencontainers.image.created={{ .Date }}
-      - --label=org.opencontainers.image.revision={{ .FullCommit }}
-      - --label=org.opencontainers.image.licenses=MIT
-    dockerfile: Dockerfile
-    use: buildx
-  - image_templates:
-      - "docker.io/charmcli/soft-serve:latest-i386"
-      - "docker.io/charmcli/soft-serve:v{{ .Major }}.{{ .Minor }}-i386"
-      - "docker.io/charmcli/soft-serve:v{{ .Version }}-i386"
-      - "ghcr.io/charmbracelet/soft-serve:latest-i386"
-      - "ghcr.io/charmbracelet/soft-serve:v{{ .Major }}.{{ .Minor }}-i386"
-      - "ghcr.io/charmbracelet/soft-serve:v{{ .Version }}-i386"
-    goarch: "386"
-    build_flag_templates:
-      - --platform=linux/i386
-      - --label=org.opencontainers.image.title={{ .ProjectName }}
-      - --label=org.opencontainers.image.description={{ .ProjectName }}
-      - --label=org.opencontainers.image.url=https://github.com/charmbracelet/soft-serve
-      - --label=org.opencontainers.image.source=https://github.com/charmbracelet/soft-serve
-      - --label=org.opencontainers.image.version=v{{ .Version }}
-      - --label=org.opencontainers.image.created={{ .Date }}
-      - --label=org.opencontainers.image.revision={{ .FullCommit }}
-      - --label=org.opencontainers.image.licenses=MIT
-    dockerfile: Dockerfile
-    use: buildx
-  - image_templates:
-      - "docker.io/charmcli/soft-serve:latest-arm64"
-      - "docker.io/charmcli/soft-serve:v{{ .Major }}.{{ .Minor }}-arm64"
-      - "docker.io/charmcli/soft-serve:v{{ .Version }}-arm64"
-      - "ghcr.io/charmbracelet/soft-serve:latest-arm64"
-      - "ghcr.io/charmbracelet/soft-serve:v{{ .Major }}.{{ .Minor }}-arm64"
-      - "ghcr.io/charmbracelet/soft-serve:v{{ .Version }}-arm64"
-    goarch: arm64
-    build_flag_templates:
-      - --platform=linux/arm64
-      - --label=org.opencontainers.image.title={{ .ProjectName }}
-      - --label=org.opencontainers.image.description={{ .ProjectName }}
-      - --label=org.opencontainers.image.url=https://github.com/charmbracelet/soft-serve
-      - --label=org.opencontainers.image.source=https://github.com/charmbracelet/soft-serve
-      - --label=org.opencontainers.image.version=v{{ .Version }}
-      - --label=org.opencontainers.image.created={{ .Date }}
-      - --label=org.opencontainers.image.revision={{ .FullCommit }}
-      - --label=org.opencontainers.image.licenses=MIT
-    dockerfile: Dockerfile
-    use: buildx
-  - image_templates:
-      - "docker.io/charmcli/soft-serve:latest-armv7"
-      - "docker.io/charmcli/soft-serve:v{{ .Major }}.{{ .Minor }}-armv7"
-      - "docker.io/charmcli/soft-serve:v{{ .Version }}-armv7"
-      - "ghcr.io/charmbracelet/soft-serve:latest-armv7"
-      - "ghcr.io/charmbracelet/soft-serve:v{{ .Major }}.{{ .Minor }}-armv7"
-      - "ghcr.io/charmbracelet/soft-serve:v{{ .Version }}-armv7"
-    goarch: arm
-    goarm: "7"
-    build_flag_templates:
-      - --platform=linux/arm/v7
-      - --label=org.opencontainers.image.title={{ .ProjectName }}
-      - --label=org.opencontainers.image.description={{ .ProjectName }}
-      - --label=org.opencontainers.image.url=https://github.com/charmbracelet/soft-serve
-      - --label=org.opencontainers.image.source=https://github.com/charmbracelet/soft-serve
-      - --label=org.opencontainers.image.version=v{{ .Version }}
-      - --label=org.opencontainers.image.created={{ .Date }}
-      - --label=org.opencontainers.image.revision={{ .FullCommit }}
-      - --label=org.opencontainers.image.licenses=MIT
-    dockerfile: Dockerfile
-    use: buildx
-
-docker_manifests:
-  - name_template: docker.io/charmcli/soft-serve:latest
-    image_templates:
-      - docker.io/charmcli/soft-serve:latest-amd64
-      - docker.io/charmcli/soft-serve:latest-arm64
-      - docker.io/charmcli/soft-serve:latest-armv7
-      - docker.io/charmcli/soft-serve:latest-i386
-  - name_template: ghcr.io/charmbracelet/soft-serve:latest
-    image_templates:
-      - ghcr.io/charmbracelet/soft-serve:latest-amd64
-      - ghcr.io/charmbracelet/soft-serve:latest-arm64
-      - ghcr.io/charmbracelet/soft-serve:latest-armv7
-      - ghcr.io/charmbracelet/soft-serve:latest-i386
-  - name_template: docker.io/charmcli/soft-serve:v{{ .Major }}.{{ .Minor }}
-    image_templates:
-      - docker.io/charmcli/soft-serve:v{{ .Major }}.{{ .Minor }}-amd64
-      - docker.io/charmcli/soft-serve:v{{ .Major }}.{{ .Minor }}-arm64
-      - docker.io/charmcli/soft-serve:v{{ .Major }}.{{ .Minor }}-armv7
-      - docker.io/charmcli/soft-serve:v{{ .Major }}.{{ .Minor }}-i386
-  - name_template: ghcr.io/charmbracelet/soft-serve:v{{ .Major }}.{{ .Minor }}
-    image_templates:
-      - ghcr.io/charmbracelet/soft-serve:v{{ .Major }}.{{ .Minor }}-amd64
-      - ghcr.io/charmbracelet/soft-serve:v{{ .Major }}.{{ .Minor }}-arm64
-      - ghcr.io/charmbracelet/soft-serve:v{{ .Major }}.{{ .Minor }}-armv7
-      - ghcr.io/charmbracelet/soft-serve:v{{ .Major }}.{{ .Minor }}-i386
-  - name_template: docker.io/charmcli/soft-serve:v{{ .Version }}
-    image_templates:
-      - docker.io/charmcli/soft-serve:v{{ .Version }}-amd64
-      - docker.io/charmcli/soft-serve:v{{ .Version }}-arm64
-      - docker.io/charmcli/soft-serve:v{{ .Version }}-armv7
-      - docker.io/charmcli/soft-serve:v{{ .Version }}-i386
-  - name_template: ghcr.io/charmbracelet/soft-serve:v{{ .Version }}
-    image_templates:
-      - ghcr.io/charmbracelet/soft-serve:v{{ .Version }}-amd64
-      - ghcr.io/charmbracelet/soft-serve:v{{ .Version }}-arm64
-      - ghcr.io/charmbracelet/soft-serve:v{{ .Version }}-armv7
-      - ghcr.io/charmbracelet/soft-serve:v{{ .Version }}-i386
+includes:
+  - from_url:
+      url: charmbracelet/meta/95706854f48e6c525284dcf8d2ca912228f06b0f/goreleaser.yaml
+
+variables:
+  main: "./cmd/soft"
+  binary_name: soft
+  description: "A personal key value store"
+  github_url: "https://github.com/charmbracelet/soft-serve"
+  maintainer: "Christian Rocha <christian@charm.sh>"
+  brew_commit_author_name: "Christian Rocha"
+  brew_commit_author_email: "christian@charm.sh"