From 0ad25909743d1baf5613c80857e4e4c6b5642e6f Mon Sep 17 00:00:00 2001 From: Bethuel Mmbaga Date: Wed, 11 Jun 2025 16:28:30 +0300 Subject: [PATCH] [misc] Push all docker images to ghcr in releases (#3954) This PR refactors the release process to push all release images to the GitHub Container Registry. Updated image naming in .goreleaser.yaml to include new registry references. Added a GitHub Actions step in .github/workflows/release.yml to log in to the GitHub Container Registry. --- .github/workflows/release.yml | 7 ++ .goreleaser.yaml | 134 +++++++++++++++++++++++++++++----- 2 files changed, 124 insertions(+), 17 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4806b5676..4fc7f3154 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -65,6 +65,13 @@ jobs: with: username: ${{ secrets.DOCKER_USER }} password: ${{ secrets.DOCKER_TOKEN }} + - name: Log in to the GitHub container registry + if: github.event_name != 'pull_request' + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.CI_DOCKER_PUSH_GITHUB_TOKEN }} - name: Install OS build dependencies run: sudo apt update && sudo apt install -y -q gcc-arm-linux-gnueabihf gcc-aarch64-linux-gnu diff --git a/.goreleaser.yaml b/.goreleaser.yaml index 112659d1c..693fbfe01 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -175,10 +175,11 @@ dockers: - "--label=org.opencontainers.image.title={{.ProjectName}}" - "--label=org.opencontainers.image.version={{.Version}}" - "--label=org.opencontainers.image.revision={{.FullCommit}}" - - "--label=org.opencontainers.image.version={{.Version}}" + - "--label=org.opencontainers.image.source=https://github.com/netbirdio/{{.ProjectName}}" - "--label=maintainer=dev@netbird.io" - image_templates: - netbirdio/netbird:{{ .Version }}-arm + - ghcr.io/netbirdio/netbird:{{ .Version }}-arm ids: - netbird goarch: arm @@ -191,11 +192,12 @@ dockers: - "--label=org.opencontainers.image.title={{.ProjectName}}" - "--label=org.opencontainers.image.version={{.Version}}" - "--label=org.opencontainers.image.revision={{.FullCommit}}" - - "--label=org.opencontainers.image.version={{.Version}}" + - "--label=org.opencontainers.image.source=https://github.com/netbirdio/{{.ProjectName}}" - "--label=maintainer=dev@netbird.io" - image_templates: - netbirdio/netbird:{{ .Version }}-rootless-amd64 + - ghcr.io/netbirdio/netbird:{{ .Version }}-rootless-amd64 ids: - netbird goarch: amd64 @@ -207,9 +209,11 @@ dockers: - "--label=org.opencontainers.image.title={{.ProjectName}}" - "--label=org.opencontainers.image.version={{.Version}}" - "--label=org.opencontainers.image.revision={{.FullCommit}}" + - "--label=org.opencontainers.image.source=https://github.com/netbirdio/{{.ProjectName}}" - "--label=maintainer=dev@netbird.io" - image_templates: - netbirdio/netbird:{{ .Version }}-rootless-arm64v8 + - ghcr.io/netbirdio/netbird:{{ .Version }}-rootless-arm64v8 ids: - netbird goarch: arm64 @@ -221,9 +225,11 @@ dockers: - "--label=org.opencontainers.image.title={{.ProjectName}}" - "--label=org.opencontainers.image.version={{.Version}}" - "--label=org.opencontainers.image.revision={{.FullCommit}}" + - "--label=org.opencontainers.image.source=https://github.com/netbirdio/{{.ProjectName}}" - "--label=maintainer=dev@netbird.io" - image_templates: - netbirdio/netbird:{{ .Version }}-rootless-arm + - ghcr.io/netbirdio/netbird:{{ .Version }}-rootless-arm ids: - netbird goarch: arm @@ -236,10 +242,12 @@ dockers: - "--label=org.opencontainers.image.title={{.ProjectName}}" - "--label=org.opencontainers.image.version={{.Version}}" - "--label=org.opencontainers.image.revision={{.FullCommit}}" + - "--label=org.opencontainers.image.source=https://github.com/netbirdio/{{.ProjectName}}" - "--label=maintainer=dev@netbird.io" - image_templates: - netbirdio/relay:{{ .Version }}-amd64 + - ghcr.io/netbirdio/relay:{{ .Version }}-amd64 ids: - netbird-relay goarch: amd64 @@ -251,10 +259,11 @@ dockers: - "--label=org.opencontainers.image.title={{.ProjectName}}" - "--label=org.opencontainers.image.version={{.Version}}" - "--label=org.opencontainers.image.revision={{.FullCommit}}" - - "--label=org.opencontainers.image.version={{.Version}}" + - "--label=org.opencontainers.image.source=https://github.com/netbirdio/{{.ProjectName}}" - "--label=maintainer=dev@netbird.io" - image_templates: - netbirdio/relay:{{ .Version }}-arm64v8 + - ghcr.io/netbirdio/relay:{{ .Version }}-arm64v8 ids: - netbird-relay goarch: arm64 @@ -266,10 +275,11 @@ dockers: - "--label=org.opencontainers.image.title={{.ProjectName}}" - "--label=org.opencontainers.image.version={{.Version}}" - "--label=org.opencontainers.image.revision={{.FullCommit}}" - - "--label=org.opencontainers.image.version={{.Version}}" + - "--label=org.opencontainers.image.source=https://github.com/netbirdio/{{.ProjectName}}" - "--label=maintainer=dev@netbird.io" - image_templates: - netbirdio/relay:{{ .Version }}-arm + - ghcr.io/netbirdio/relay:{{ .Version }}-arm ids: - netbird-relay goarch: arm @@ -282,10 +292,11 @@ dockers: - "--label=org.opencontainers.image.title={{.ProjectName}}" - "--label=org.opencontainers.image.version={{.Version}}" - "--label=org.opencontainers.image.revision={{.FullCommit}}" - - "--label=org.opencontainers.image.version={{.Version}}" + - "--label=org.opencontainers.image.source=https://github.com/netbirdio/{{.ProjectName}}" - "--label=maintainer=dev@netbird.io" - image_templates: - netbirdio/signal:{{ .Version }}-amd64 + - ghcr.io/netbirdio/signal:{{ .Version }}-amd64 ids: - netbird-signal goarch: amd64 @@ -297,10 +308,11 @@ dockers: - "--label=org.opencontainers.image.title={{.ProjectName}}" - "--label=org.opencontainers.image.version={{.Version}}" - "--label=org.opencontainers.image.revision={{.FullCommit}}" - - "--label=org.opencontainers.image.version={{.Version}}" + - "--label=org.opencontainers.image.source=https://github.com/netbirdio/{{.ProjectName}}" - "--label=maintainer=dev@netbird.io" - image_templates: - netbirdio/signal:{{ .Version }}-arm64v8 + - ghcr.io/netbirdio/signal:{{ .Version }}-arm64v8 ids: - netbird-signal goarch: arm64 @@ -312,10 +324,11 @@ dockers: - "--label=org.opencontainers.image.title={{.ProjectName}}" - "--label=org.opencontainers.image.version={{.Version}}" - "--label=org.opencontainers.image.revision={{.FullCommit}}" - - "--label=org.opencontainers.image.version={{.Version}}" + - "--label=org.opencontainers.image.source=https://github.com/netbirdio/{{.ProjectName}}" - "--label=maintainer=dev@netbird.io" - image_templates: - netbirdio/signal:{{ .Version }}-arm + - ghcr.io/netbirdio/signal:{{ .Version }}-arm ids: - netbird-signal goarch: arm @@ -328,10 +341,11 @@ dockers: - "--label=org.opencontainers.image.title={{.ProjectName}}" - "--label=org.opencontainers.image.version={{.Version}}" - "--label=org.opencontainers.image.revision={{.FullCommit}}" - - "--label=org.opencontainers.image.version={{.Version}}" + - "--label=org.opencontainers.image.source=https://github.com/netbirdio/{{.ProjectName}}" - "--label=maintainer=dev@netbird.io" - image_templates: - netbirdio/management:{{ .Version }}-amd64 + - ghcr.io/netbirdio/management:{{ .Version }}-amd64 ids: - netbird-mgmt goarch: amd64 @@ -343,10 +357,11 @@ dockers: - "--label=org.opencontainers.image.title={{.ProjectName}}" - "--label=org.opencontainers.image.version={{.Version}}" - "--label=org.opencontainers.image.revision={{.FullCommit}}" - - "--label=org.opencontainers.image.version={{.Version}}" + - "--label=org.opencontainers.image.source=https://github.com/netbirdio/{{.ProjectName}}" - "--label=maintainer=dev@netbird.io" - image_templates: - netbirdio/management:{{ .Version }}-arm64v8 + - ghcr.io/netbirdio/management:{{ .Version }}-arm64v8 ids: - netbird-mgmt goarch: arm64 @@ -358,10 +373,11 @@ dockers: - "--label=org.opencontainers.image.title={{.ProjectName}}" - "--label=org.opencontainers.image.version={{.Version}}" - "--label=org.opencontainers.image.revision={{.FullCommit}}" - - "--label=org.opencontainers.image.version={{.Version}}" + - "--label=org.opencontainers.image.source=https://github.com/netbirdio/{{.ProjectName}}" - "--label=maintainer=dev@netbird.io" - image_templates: - netbirdio/management:{{ .Version }}-arm + - ghcr.io/netbirdio/management:{{ .Version }}-arm ids: - netbird-mgmt goarch: arm @@ -374,10 +390,11 @@ dockers: - "--label=org.opencontainers.image.title={{.ProjectName}}" - "--label=org.opencontainers.image.version={{.Version}}" - "--label=org.opencontainers.image.revision={{.FullCommit}}" - - "--label=org.opencontainers.image.version={{.Version}}" + - "--label=org.opencontainers.image.source=https://github.com/netbirdio/{{.ProjectName}}" - "--label=maintainer=dev@netbird.io" - image_templates: - netbirdio/management:{{ .Version }}-debug-amd64 + - ghcr.io/netbirdio/management:{{ .Version }}-debug-amd64 ids: - netbird-mgmt goarch: amd64 @@ -389,10 +406,11 @@ dockers: - "--label=org.opencontainers.image.title={{.ProjectName}}" - "--label=org.opencontainers.image.version={{.Version}}" - "--label=org.opencontainers.image.revision={{.FullCommit}}" - - "--label=org.opencontainers.image.version={{.Version}}" + - "--label=org.opencontainers.image.source=https://github.com/netbirdio/{{.ProjectName}}" - "--label=maintainer=dev@netbird.io" - image_templates: - netbirdio/management:{{ .Version }}-debug-arm64v8 + - ghcr.io/netbirdio/management:{{ .Version }}-debug-arm64v8 ids: - netbird-mgmt goarch: arm64 @@ -404,11 +422,12 @@ dockers: - "--label=org.opencontainers.image.title={{.ProjectName}}" - "--label=org.opencontainers.image.version={{.Version}}" - "--label=org.opencontainers.image.revision={{.FullCommit}}" - - "--label=org.opencontainers.image.version={{.Version}}" + - "--label=org.opencontainers.image.source=https://github.com/netbirdio/{{.ProjectName}}" - "--label=maintainer=dev@netbird.io" - image_templates: - netbirdio/management:{{ .Version }}-debug-arm + - ghcr.io/netbirdio/management:{{ .Version }}-debug-arm ids: - netbird-mgmt goarch: arm @@ -421,10 +440,11 @@ dockers: - "--label=org.opencontainers.image.title={{.ProjectName}}" - "--label=org.opencontainers.image.version={{.Version}}" - "--label=org.opencontainers.image.revision={{.FullCommit}}" - - "--label=org.opencontainers.image.version={{.Version}}" + - "--label=org.opencontainers.image.source=https://github.com/netbirdio/{{.ProjectName}}" - "--label=maintainer=dev@netbird.io" - image_templates: - netbirdio/upload:{{ .Version }}-amd64 + - ghcr.io/netbirdio/upload:{{ .Version }}-amd64 ids: - netbird-upload goarch: amd64 @@ -436,10 +456,11 @@ dockers: - "--label=org.opencontainers.image.title={{.ProjectName}}" - "--label=org.opencontainers.image.version={{.Version}}" - "--label=org.opencontainers.image.revision={{.FullCommit}}" - - "--label=org.opencontainers.image.version={{.Version}}" + - "--label=org.opencontainers.image.source=https://github.com/netbirdio/{{.ProjectName}}" - "--label=maintainer=dev@netbird.io" - image_templates: - netbirdio/upload:{{ .Version }}-arm64v8 + - ghcr.io/netbirdio/upload:{{ .Version }}-arm64v8 ids: - netbird-upload goarch: arm64 @@ -451,10 +472,11 @@ dockers: - "--label=org.opencontainers.image.title={{.ProjectName}}" - "--label=org.opencontainers.image.version={{.Version}}" - "--label=org.opencontainers.image.revision={{.FullCommit}}" - - "--label=org.opencontainers.image.version={{.Version}}" + - "--label=org.opencontainers.image.source=https://github.com/netbirdio/{{.ProjectName}}" - "--label=maintainer=dev@netbird.io" - image_templates: - netbirdio/upload:{{ .Version }}-arm + - ghcr.io/netbirdio/upload:{{ .Version }}-arm ids: - netbird-upload goarch: arm @@ -467,7 +489,7 @@ dockers: - "--label=org.opencontainers.image.title={{.ProjectName}}" - "--label=org.opencontainers.image.version={{.Version}}" - "--label=org.opencontainers.image.revision={{.FullCommit}}" - - "--label=org.opencontainers.image.version={{.Version}}" + - "--label=org.opencontainers.image.source=https://github.com/netbirdio/{{.ProjectName}}" - "--label=maintainer=dev@netbird.io" docker_manifests: - name_template: netbirdio/netbird:{{ .Version }} @@ -546,6 +568,84 @@ docker_manifests: - netbirdio/upload:{{ .Version }}-arm64v8 - netbirdio/upload:{{ .Version }}-arm - netbirdio/upload:{{ .Version }}-amd64 + + - name_template: ghcr.io/netbirdio/netbird:{{ .Version }} + image_templates: + - ghcr.io/netbirdio/netbird:{{ .Version }}-arm64v8 + - ghcr.io/netbirdio/netbird:{{ .Version }}-arm + - ghcr.io/netbirdio/netbird:{{ .Version }}-amd64 + + - name_template: ghcr.io/netbirdio/netbird:latest + image_templates: + - ghcr.io/netbirdio/netbird:{{ .Version }}-arm64v8 + - ghcr.io/netbirdio/netbird:{{ .Version }}-arm + - ghcr.io/netbirdio/netbird:{{ .Version }}-amd64 + + - name_template: ghcr.io/netbirdio/netbird:{{ .Version }}-rootless + image_templates: + - ghcr.io/netbirdio/netbird:{{ .Version }}-rootless-arm64v8 + - ghcr.io/netbirdio/netbird:{{ .Version }}-rootless-arm + - ghcr.io/netbirdio/netbird:{{ .Version }}-rootless-amd64 + + - name_template: ghcr.io/netbirdio/netbird:rootless-latest + image_templates: + - ghcr.io/netbirdio/netbird:{{ .Version }}-rootless-arm64v8 + - ghcr.io/netbirdio/netbird:{{ .Version }}-rootless-arm + - ghcr.io/netbirdio/netbird:{{ .Version }}-rootless-amd64 + + - name_template: ghcr.io/netbirdio/relay:{{ .Version }} + image_templates: + - ghcr.io/netbirdio/relay:{{ .Version }}-arm64v8 + - ghcr.io/netbirdio/relay:{{ .Version }}-arm + - ghcr.io/netbirdio/relay:{{ .Version }}-amd64 + + - name_template: ghcr.io/netbirdio/relay:latest + image_templates: + - ghcr.io/netbirdio/relay:{{ .Version }}-arm64v8 + - ghcr.io/netbirdio/relay:{{ .Version }}-arm + - ghcr.io/netbirdio/relay:{{ .Version }}-amd64 + + - name_template: ghcr.io/netbirdio/signal:{{ .Version }} + image_templates: + - ghcr.io/netbirdio/signal:{{ .Version }}-arm64v8 + - ghcr.io/netbirdio/signal:{{ .Version }}-arm + - ghcr.io/netbirdio/signal:{{ .Version }}-amd64 + + - name_template: ghcr.io/netbirdio/signal:latest + image_templates: + - ghcr.io/netbirdio/signal:{{ .Version }}-arm64v8 + - ghcr.io/netbirdio/signal:{{ .Version }}-arm + - ghcr.io/netbirdio/signal:{{ .Version }}-amd64 + + - name_template: ghcr.io/netbirdio/management:{{ .Version }} + image_templates: + - ghcr.io/netbirdio/management:{{ .Version }}-arm64v8 + - ghcr.io/netbirdio/management:{{ .Version }}-arm + - ghcr.io/netbirdio/management:{{ .Version }}-amd64 + + - name_template: ghcr.io/netbirdio/management:latest + image_templates: + - ghcr.io/netbirdio/management:{{ .Version }}-arm64v8 + - ghcr.io/netbirdio/management:{{ .Version }}-arm + - ghcr.io/netbirdio/management:{{ .Version }}-amd64 + + - name_template: ghcr.io/netbirdio/management:debug-latest + image_templates: + - ghcr.io/netbirdio/management:{{ .Version }}-debug-arm64v8 + - ghcr.io/netbirdio/management:{{ .Version }}-debug-arm + - ghcr.io/netbirdio/management:{{ .Version }}-debug-amd64 + + - name_template: ghcr.io/netbirdio/upload:{{ .Version }} + image_templates: + - ghcr.io/netbirdio/upload:{{ .Version }}-arm64v8 + - ghcr.io/netbirdio/upload:{{ .Version }}-arm + - ghcr.io/netbirdio/upload:{{ .Version }}-amd64 + + - name_template: ghcr.io/netbirdio/upload:latest + image_templates: + - ghcr.io/netbirdio/upload:{{ .Version }}-arm64v8 + - ghcr.io/netbirdio/upload:{{ .Version }}-arm + - ghcr.io/netbirdio/upload:{{ .Version }}-amd64 brews: - ids: - default