feat: add docker image push to ghcr
This commit is contained in:
@@ -5,11 +5,18 @@ on:
|
|||||||
# run only against tags
|
# run only against tags
|
||||||
tags:
|
tags:
|
||||||
- '*'
|
- '*'
|
||||||
# workflow_dispatch: #
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
version:
|
||||||
|
description: 'Release version tag (e.g., v1.2.3).'
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
# release:
|
||||||
|
# types: [published]
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
# packages: write
|
packages: write
|
||||||
# issues: write
|
# issues: write
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
@@ -31,13 +38,20 @@ jobs:
|
|||||||
- name: Set up QEMU
|
- name: Set up QEMU
|
||||||
uses: docker/setup-qemu-action@v3
|
uses: docker/setup-qemu-action@v3
|
||||||
|
|
||||||
- name: Docker Login
|
- name: Docker Login to Docker Hub
|
||||||
uses: docker/login-action@v3
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
registry: docker.io
|
registry: docker.io
|
||||||
username: ${{ secrets.DOCKER_USER }}
|
username: ${{ secrets.DOCKER_USER }}
|
||||||
password: ${{ secrets.DOCKER_PASSWD }}
|
password: ${{ secrets.DOCKER_PASSWD }}
|
||||||
|
|
||||||
|
- name: Docker Login to GitHub Container Registry
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
with:
|
||||||
|
registry: ghcr.io
|
||||||
|
username: ${{ github.actor }}
|
||||||
|
password: ${{ secrets.REPO_GITHUB_TOKEN }}
|
||||||
|
|
||||||
- uses: actions/setup-go@main
|
- uses: actions/setup-go@main
|
||||||
with:
|
with:
|
||||||
go-version: '>=1.20.2'
|
go-version: '>=1.20.2'
|
||||||
@@ -61,7 +75,12 @@ jobs:
|
|||||||
|
|
||||||
- name: Get Release version
|
- name: Get Release version
|
||||||
id: get_version
|
id: get_version
|
||||||
run: echo "VERSION=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_OUTPUT
|
run: |
|
||||||
|
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
|
||||||
|
echo "VERSION=${{ github.event.inputs.version }}" >> $GITHUB_OUTPUT
|
||||||
|
else
|
||||||
|
echo "VERSION=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_OUTPUT
|
||||||
|
fi
|
||||||
|
|
||||||
- name: Update Local Version File
|
- name: Update Local Version File
|
||||||
run: echo ${{ steps.get_version.outputs.VERSION }} > .release_version
|
run: echo ${{ steps.get_version.outputs.VERSION }} > .release_version
|
||||||
@@ -76,6 +95,7 @@ jobs:
|
|||||||
args: release --clean
|
args: release --clean
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.REPO_GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.REPO_GITHUB_TOKEN }}
|
||||||
|
GORELEASER_CURRENT_TAG: ${{ steps.get_version.outputs.VERSION }}
|
||||||
# Your GoReleaser Pro key, if you are using the 'goreleaser-pro'
|
# Your GoReleaser Pro key, if you are using the 'goreleaser-pro'
|
||||||
# distribution:
|
# distribution:
|
||||||
# GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }}
|
# GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }}
|
||||||
|
|||||||
+14
-2
@@ -22,7 +22,9 @@ builds:
|
|||||||
binary: "{{ .Env.CUSTOM_PROJ_NAME }}"
|
binary: "{{ .Env.CUSTOM_PROJ_NAME }}"
|
||||||
|
|
||||||
dockers:
|
dockers:
|
||||||
- image_templates: [ "docker.io/engigu/{{ .Env.DOCKER_IMAGE_NAME }}:{{ .Version }}-amd64" ]
|
- image_templates:
|
||||||
|
- "docker.io/engigu/{{ .Env.DOCKER_IMAGE_NAME }}:{{ .Version }}-amd64"
|
||||||
|
- "ghcr.io/engigu/{{ .Env.DOCKER_IMAGE_NAME }}:{{ .Version }}-amd64"
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
extra_files:
|
extra_files:
|
||||||
- LICENSE
|
- LICENSE
|
||||||
@@ -38,7 +40,9 @@ dockers:
|
|||||||
- --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
|
- --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
|
||||||
- --label=org.opencontainers.image.revision={{ .FullCommit }}
|
- --label=org.opencontainers.image.revision={{ .FullCommit }}
|
||||||
- --label=org.opencontainers.image.licenses=MIT
|
- --label=org.opencontainers.image.licenses=MIT
|
||||||
- image_templates: [ "docker.io/engigu/{{ .Env.DOCKER_IMAGE_NAME }}:{{ .Version }}-arm64v8" ]
|
- image_templates:
|
||||||
|
- "docker.io/engigu/{{ .Env.DOCKER_IMAGE_NAME }}:{{ .Version }}-arm64v8"
|
||||||
|
- "ghcr.io/engigu/{{ .Env.DOCKER_IMAGE_NAME }}:{{ .Version }}-arm64v8"
|
||||||
goarch: arm64
|
goarch: arm64
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
extra_files:
|
extra_files:
|
||||||
@@ -64,6 +68,14 @@ docker_manifests:
|
|||||||
image_templates:
|
image_templates:
|
||||||
- docker.io/engigu/{{ .Env.DOCKER_IMAGE_NAME }}:{{ .Version }}-amd64
|
- docker.io/engigu/{{ .Env.DOCKER_IMAGE_NAME }}:{{ .Version }}-amd64
|
||||||
- docker.io/engigu/{{ .Env.DOCKER_IMAGE_NAME }}:{{ .Version }}-arm64v8
|
- docker.io/engigu/{{ .Env.DOCKER_IMAGE_NAME }}:{{ .Version }}-arm64v8
|
||||||
|
- name_template: ghcr.io/engigu/{{ .Env.DOCKER_IMAGE_NAME }}:{{ .Version }}
|
||||||
|
image_templates:
|
||||||
|
- ghcr.io/engigu/{{ .Env.DOCKER_IMAGE_NAME }}:{{ .Version }}-amd64
|
||||||
|
- ghcr.io/engigu/{{ .Env.DOCKER_IMAGE_NAME }}:{{ .Version }}-arm64v8
|
||||||
|
- name_template: ghcr.io/engigu/{{ .Env.DOCKER_IMAGE_NAME }}:latest
|
||||||
|
image_templates:
|
||||||
|
- ghcr.io/engigu/{{ .Env.DOCKER_IMAGE_NAME }}:{{ .Version }}-amd64
|
||||||
|
- ghcr.io/engigu/{{ .Env.DOCKER_IMAGE_NAME }}:{{ .Version }}-arm64v8
|
||||||
|
|
||||||
archives:
|
archives:
|
||||||
- format: tar.gz
|
- format: tar.gz
|
||||||
|
|||||||
Reference in New Issue
Block a user