mirror of
https://github.com/foomo/gotsrpc.git
synced 2025-10-16 12:35:35 +00:00
feat: add docker build
This commit is contained in:
parent
b41cebcea3
commit
401407617a
2
.dockerignore
Normal file
2
.dockerignore
Normal file
@ -0,0 +1,2 @@
|
||||
gotsrpc
|
||||
dist
|
||||
@ -6,32 +6,40 @@ on:
|
||||
- v*.*.*
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
GOFLAGS: -mod=readonly
|
||||
GOPROXY: https://proxy.golang.org
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
goreleaser:
|
||||
release:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- uses: actions/setup-go@v5
|
||||
- uses: jdx/mise-action@v3
|
||||
|
||||
- uses: actions/setup-go@v6
|
||||
with:
|
||||
check-latest: true
|
||||
go-version-file: go.mod
|
||||
|
||||
- uses: docker/setup-qemu-action@v3
|
||||
|
||||
- uses: docker/setup-buildx-action@v3
|
||||
|
||||
- id: app_token
|
||||
uses: tibdex/github-app-token@v2
|
||||
with:
|
||||
app_id: ${{ secrets.TOKEN_APP_ID }}
|
||||
private_key: ${{ secrets.TOKEN_APP_PRIVATE_KEY }}
|
||||
|
||||
- name: Login to docker.io
|
||||
run: docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
- uses: goreleaser/goreleaser-action@v6
|
||||
with:
|
||||
version: latest
|
||||
version: '~> v2'
|
||||
args: release --clean
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ steps.app_token.outputs.token }}
|
||||
6
.gitignore
vendored
6
.gitignore
vendored
@ -17,6 +17,9 @@ tmp/
|
||||
## Editorconfig
|
||||
!.editorconfig
|
||||
|
||||
## Docker
|
||||
!.dockerignore
|
||||
|
||||
## Husky
|
||||
!.husky/
|
||||
!.husky.yaml
|
||||
@ -32,3 +35,6 @@ tmp/
|
||||
/go.work.sum
|
||||
!.golangci.yaml
|
||||
!.goreleaser.yaml
|
||||
|
||||
## Mise
|
||||
!.mise.toml
|
||||
|
||||
103
.goreleaser.yml
103
.goreleaser.yml
@ -1,10 +1,20 @@
|
||||
version: 2
|
||||
|
||||
project_name: gotsrpc
|
||||
|
||||
builds:
|
||||
- binary: gotsrpc
|
||||
main: ./cmd/gotsrpc/gotsrpc.go
|
||||
env:
|
||||
- CGO_ENABLED=0
|
||||
flags:
|
||||
- -trimpath
|
||||
- -tags=safe
|
||||
ldflags:
|
||||
- -s -w
|
||||
- -X cmd/gotsrpc/gotsrpc.version={{.Version}}
|
||||
- -X cmd/gotsrpc/gotsrpc.commitHash={{.FullCommit}}
|
||||
- -X cmd/gotsrpc/gotsrpc.buildTimestamp={{.Timestamp}}
|
||||
goos:
|
||||
- windows
|
||||
- darwin
|
||||
@ -12,22 +22,16 @@ builds:
|
||||
goarch:
|
||||
- amd64
|
||||
- arm64
|
||||
goarm:
|
||||
- 7
|
||||
flags:
|
||||
- -trimpath
|
||||
ldflags:
|
||||
- -s -w -X cmd/gotsrpc/gotsrpc.version={{.Version}}
|
||||
|
||||
archives:
|
||||
- formats: [ tar.gz ]
|
||||
format_overrides:
|
||||
- goos: windows
|
||||
formats: [ zip ]
|
||||
|
||||
release:
|
||||
prerelease: auto
|
||||
|
||||
archives:
|
||||
- format: tar.gz
|
||||
format_overrides:
|
||||
- goos: windows
|
||||
format: zip
|
||||
|
||||
changelog:
|
||||
use: github-native
|
||||
|
||||
@ -35,6 +39,77 @@ brews:
|
||||
- repository:
|
||||
owner: foomo
|
||||
name: homebrew-tap
|
||||
caveats: "gotsrpc gotsrpc.yml"
|
||||
caveats: "gotsrpc"
|
||||
homepage: "https://github.com/foomo/gotsrpc"
|
||||
description: "CLI utility to generate go and typescript RPC calls easily"
|
||||
description: "CLI utility to generate go and typescript RPC calls easily"
|
||||
|
||||
dockers:
|
||||
- use: buildx
|
||||
goos: linux
|
||||
goarch: amd64
|
||||
dockerfile: Dockerfile
|
||||
image_templates:
|
||||
- '{{ if eq .Prerelease "" }}foomo/gotsrpc:latest-amd64{{ end }}'
|
||||
- 'foomo/gotsrpc:{{ .Version }}-amd64'
|
||||
- '{{ if eq .Prerelease "" }}foomo/gotsrpc:{{ .Major }}-amd64{{ end }}'
|
||||
- '{{ if eq .Prerelease "" }}foomo/gotsrpc:{{ .Major }}.{{ .Minor }}-amd64{{ end }}'
|
||||
build_flag_templates:
|
||||
- '--pull'
|
||||
# https://github.com/opencontainers/image-spec/blob/main/annotations.md#pre-defined-annotation-keys
|
||||
- '--label=org.opencontainers.image.title={{.ProjectName}}'
|
||||
- '--label=org.opencontainers.image.description=CLI utility to generate go and typescript RPC calls easily'
|
||||
- '--label=org.opencontainers.image.source={{.GitURL}}'
|
||||
- '--label=org.opencontainers.image.url={{.GitURL}}'
|
||||
- '--label=org.opencontainers.image.documentation={{.GitURL}}'
|
||||
- '--label=org.opencontainers.image.created={{.Date}}'
|
||||
- '--label=org.opencontainers.image.revision={{.FullCommit}}'
|
||||
- '--label=org.opencontainers.image.version={{.Version}}'
|
||||
- '--platform=linux/amd64'
|
||||
|
||||
- use: buildx
|
||||
goos: linux
|
||||
goarch: arm64
|
||||
dockerfile: Dockerfile
|
||||
image_templates:
|
||||
- '{{ if eq .Prerelease "" }}foomo/gotsrpc:latest-arm64{{ end }}'
|
||||
- 'foomo/gotsrpc:{{ .Version }}-arm64'
|
||||
- '{{ if eq .Prerelease "" }}foomo/gotsrpc:{{ .Major }}-arm64{{ end }}'
|
||||
- '{{ if eq .Prerelease "" }}foomo/gotsrpc:{{ .Major }}.{{ .Minor }}-arm64{{ end }}'
|
||||
build_flag_templates:
|
||||
- '--pull'
|
||||
# https://github.com/opencontainers/image-spec/blob/main/annotations.md#pre-defined-annotation-keys
|
||||
- '--label=org.opencontainers.image.title={{.ProjectName}}'
|
||||
- '--label=org.opencontainers.image.description=Project Oriented SHELL'
|
||||
- '--label=org.opencontainers.image.source={{.GitURL}}'
|
||||
- '--label=org.opencontainers.image.url={{.GitURL}}'
|
||||
- '--label=org.opencontainers.image.documentation={{.GitURL}}'
|
||||
- '--label=org.opencontainers.image.created={{.Date}}'
|
||||
- '--label=org.opencontainers.image.revision={{.FullCommit}}'
|
||||
- '--label=org.opencontainers.image.version={{.Version}}'
|
||||
- '--platform=linux/arm64'
|
||||
|
||||
docker_manifests:
|
||||
# basic
|
||||
- name_template: 'foomo/gotsrpc:latest'
|
||||
image_templates:
|
||||
- 'foomo/gotsrpc:latest-amd64'
|
||||
- 'foomo/gotsrpc:latest-arm64'
|
||||
skip_push: auto
|
||||
|
||||
- name_template: 'foomo/gotsrpc:{{ .Version }}'
|
||||
image_templates:
|
||||
- 'foomo/gotsrpc:{{ .Version }}-amd64'
|
||||
- 'foomo/gotsrpc:{{ .Version }}-arm64'
|
||||
skip_push: auto
|
||||
|
||||
- name_template: 'foomo/gotsrpc:{{ .Major }}'
|
||||
image_templates:
|
||||
- 'foomo/gotsrpc:{{ .Major }}-amd64'
|
||||
- 'foomo/gotsrpc:{{ .Major }}-arm64'
|
||||
skip_push: auto
|
||||
|
||||
- name_template: 'foomo/gotsrpc:{{ .Major }}.{{ .Minor }}'
|
||||
image_templates:
|
||||
- 'foomo/gotsrpc:{{ .Major }}.{{ .Minor }}-amd64'
|
||||
- 'foomo/gotsrpc:{{ .Major }}.{{ .Minor }}-arm64'
|
||||
skip_push: auto
|
||||
|
||||
12
Dockerfile
Normal file
12
Dockerfile
Normal file
@ -0,0 +1,12 @@
|
||||
FROM alpine:latest
|
||||
|
||||
RUN apk --no-cache add ca-certificates
|
||||
|
||||
RUN adduser -D -u 1001 -g 1001 gotsrpc
|
||||
|
||||
COPY gotsrpc /usr/bin/
|
||||
|
||||
USER gotsrpc
|
||||
WORKDIR /home/gotsrpc
|
||||
|
||||
ENTRYPOINT ["gotsrpc"]
|
||||
Loading…
Reference in New Issue
Block a user