mirror of
https://github.com/shazow/ssh-chat.git
synced 2025-04-30 07:11:33 +03:00
Merge 06f78b4f8c7fdac49a9f4cc190e7f0c7a0a32ee3 into df72223a5fbd08673232a862567dcb44c6089cfc
This commit is contained in:
commit
e654688162
48
.github/workflows/release.yml
vendored
Normal file
48
.github/workflows/release.yml
vendored
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
name: Release
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- 'v*.*'
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
packages: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
goreleaser:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
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 GitHub Container Registry
|
||||||
|
uses: docker/login-action@v1
|
||||||
|
with:
|
||||||
|
registry: ghcr.io
|
||||||
|
username: ${{ github.repository_owner }}
|
||||||
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Run GoReleaser
|
||||||
|
uses: goreleaser/goreleaser-action@v2
|
||||||
|
with:
|
||||||
|
distribution: goreleaser
|
||||||
|
version: latest
|
||||||
|
args: release --rm-dist
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Upload assets
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: ssh-chat
|
||||||
|
path: dist/*.*
|
4
.gitignore
vendored
4
.gitignore
vendored
@ -4,4 +4,8 @@ host_key.pub
|
|||||||
ssh-chat
|
ssh-chat
|
||||||
*.log
|
*.log
|
||||||
.*
|
.*
|
||||||
|
!.goreleaser.yml
|
||||||
|
!.github
|
||||||
vendor/
|
vendor/
|
||||||
|
dist
|
||||||
|
sshchat
|
165
.goreleaser.yml
Normal file
165
.goreleaser.yml
Normal file
@ -0,0 +1,165 @@
|
|||||||
|
project_name: ssh-chat
|
||||||
|
|
||||||
|
env:
|
||||||
|
- GO111MODULE=on
|
||||||
|
- CGO_ENABLED=0
|
||||||
|
|
||||||
|
before:
|
||||||
|
hooks:
|
||||||
|
- go mod download
|
||||||
|
|
||||||
|
builds:
|
||||||
|
- id: "ssh-chat"
|
||||||
|
dir: "./cmd/ssh-chat"
|
||||||
|
binary: "ssh-chat"
|
||||||
|
ldflags: -X main.Version={{ .Version }} -extldflags "-static"
|
||||||
|
goos:
|
||||||
|
- linux
|
||||||
|
- windows
|
||||||
|
- freebsd
|
||||||
|
- darwin
|
||||||
|
goarch:
|
||||||
|
- amd64
|
||||||
|
- 386
|
||||||
|
- arm
|
||||||
|
- arm64
|
||||||
|
goarm:
|
||||||
|
- 6
|
||||||
|
- 7
|
||||||
|
ignore:
|
||||||
|
- goos: darwin
|
||||||
|
goarch: 386
|
||||||
|
- goos: darwin
|
||||||
|
goarch: arm
|
||||||
|
- goos: freebsd
|
||||||
|
goarch: 386
|
||||||
|
- goos: freebsd
|
||||||
|
goarch: arm
|
||||||
|
- goos: freebsd
|
||||||
|
goarch: arm64
|
||||||
|
- goos: windows
|
||||||
|
goarch: arm
|
||||||
|
- goos: windows
|
||||||
|
goarch: arm64
|
||||||
|
|
||||||
|
dockers:
|
||||||
|
- image_templates:
|
||||||
|
- "ghcr.io/shazow/{{ .ProjectName }}:latest-amd64"
|
||||||
|
- "ghcr.io/shazow/{{ .ProjectName }}:{{ .Version }}-amd64"
|
||||||
|
ids: [ssh-chat]
|
||||||
|
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/shazow/{{ .ProjectName }}
|
||||||
|
- --label=org.opencontainers.image.source=https://github.com/shazow/{{ .ProjectName }}
|
||||||
|
- --label=org.opencontainers.image.version={{ .Version }}
|
||||||
|
- --label=org.opencontainers.image.created={{ .Date }}
|
||||||
|
- --label=org.opencontainers.image.revision={{ .FullCommit }}
|
||||||
|
- --label=org.opencontainers.image.licenses=MIT
|
||||||
|
dockerfile: Dockerfile.goreleaser
|
||||||
|
use: buildx
|
||||||
|
- image_templates:
|
||||||
|
- "ghcr.io/shazow/{{ .ProjectName }}:latest-arm64v8"
|
||||||
|
- "ghcr.io/shazow/{{ .ProjectName }}:{{ .Version }}-arm64v8"
|
||||||
|
ids: [ssh-chat]
|
||||||
|
goarch: arm64
|
||||||
|
build_flag_templates:
|
||||||
|
- --platform=linux/arm64/v8
|
||||||
|
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
||||||
|
- --label=org.opencontainers.image.description={{ .ProjectName }}
|
||||||
|
- --label=org.opencontainers.image.url=https://github.com/shazow/{{ .ProjectName }}
|
||||||
|
- --label=org.opencontainers.image.source=https://github.com/shazow/{{ .ProjectName }}
|
||||||
|
- --label=org.opencontainers.image.version={{ .Version }}
|
||||||
|
- --label=org.opencontainers.image.created={{ .Date }}
|
||||||
|
- --label=org.opencontainers.image.revision={{ .FullCommit }}
|
||||||
|
- --label=org.opencontainers.image.licenses=MIT
|
||||||
|
dockerfile: Dockerfile.goreleaser
|
||||||
|
use: buildx
|
||||||
|
- image_templates:
|
||||||
|
- "ghcr.io/shazow/{{ .ProjectName }}:latest-arm32v6"
|
||||||
|
- "ghcr.io/shazow/{{ .ProjectName }}:{{ .Version }}-arm32v6"
|
||||||
|
ids: [ssh-chat]
|
||||||
|
goarch: arm
|
||||||
|
goarm: 6
|
||||||
|
build_flag_templates:
|
||||||
|
- --platform=linux/arm/v6
|
||||||
|
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
||||||
|
- --label=org.opencontainers.image.description={{ .ProjectName }}
|
||||||
|
- --label=org.opencontainers.image.url=https://github.com/shazow/{{ .ProjectName }}
|
||||||
|
- --label=org.opencontainers.image.source=https://github.com/shazow/{{ .ProjectName }}
|
||||||
|
- --label=org.opencontainers.image.version={{ .Version }}
|
||||||
|
- --label=org.opencontainers.image.created={{ .Date }}
|
||||||
|
- --label=org.opencontainers.image.revision={{ .FullCommit }}
|
||||||
|
- --label=org.opencontainers.image.licenses=MIT
|
||||||
|
dockerfile: Dockerfile.goreleaser
|
||||||
|
use: buildx
|
||||||
|
- image_templates:
|
||||||
|
- "ghcr.io/shazow/{{ .ProjectName }}:latest-arm32v7"
|
||||||
|
- "ghcr.io/shazow/{{ .ProjectName }}:{{ .Version }}-arm32v7"
|
||||||
|
ids: [ssh-chat]
|
||||||
|
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/shazow/{{ .ProjectName }}
|
||||||
|
- --label=org.opencontainers.image.source=https://github.com/shazow/{{ .ProjectName }}
|
||||||
|
- --label=org.opencontainers.image.version={{ .Version }}
|
||||||
|
- --label=org.opencontainers.image.created={{ .Date }}
|
||||||
|
- --label=org.opencontainers.image.revision={{ .FullCommit }}
|
||||||
|
- --label=org.opencontainers.image.licenses=MIT
|
||||||
|
dockerfile: Dockerfile.goreleaser
|
||||||
|
use: buildx
|
||||||
|
|
||||||
|
docker_manifests:
|
||||||
|
- name_template: ghcr.io/shazow/{{ .ProjectName }}:latest
|
||||||
|
image_templates:
|
||||||
|
- ghcr.io/shazow/{{ .ProjectName }}:latest-amd64
|
||||||
|
- ghcr.io/shazow/{{ .ProjectName }}:latest-arm64v8
|
||||||
|
- ghcr.io/shazow/{{ .ProjectName }}:latest-arm32v7
|
||||||
|
- ghcr.io/shazow/{{ .ProjectName }}:latest-arm32v6
|
||||||
|
- name_template: ghcr.io/shazow/{{ .ProjectName }}:{{ .Version }}
|
||||||
|
image_templates:
|
||||||
|
- ghcr.io/shazow/{{ .ProjectName }}:{{ .Version }}-amd64
|
||||||
|
- ghcr.io/shazow/{{ .ProjectName }}:{{ .Version }}-arm64v8
|
||||||
|
- ghcr.io/shazow/{{ .ProjectName }}:{{ .Version }}-arm32v7
|
||||||
|
- ghcr.io/shazow/{{ .ProjectName }}:{{ .Version }}-arm32v6
|
||||||
|
|
||||||
|
nfpms:
|
||||||
|
- maintainer: Andrey Petrov <andrey.petrov@shazow.net>
|
||||||
|
description: "{{ .ProjectName }}"
|
||||||
|
homepage: https://github.com/shazow/{{ .ProjectName }}
|
||||||
|
license: MIT
|
||||||
|
formats:
|
||||||
|
- deb
|
||||||
|
- rpm
|
||||||
|
|
||||||
|
archives:
|
||||||
|
- id: ssh-chat
|
||||||
|
builds:
|
||||||
|
- ssh-chat
|
||||||
|
format: tar.gz
|
||||||
|
format_overrides:
|
||||||
|
- goos: windows
|
||||||
|
format: zip
|
||||||
|
files:
|
||||||
|
- LICENSE*
|
||||||
|
- README*
|
||||||
|
- CHANGELOG*
|
||||||
|
|
||||||
|
release:
|
||||||
|
github:
|
||||||
|
owner: shazow
|
||||||
|
name: ssh-chat
|
||||||
|
ids: [ssh-chat]
|
||||||
|
prerelease: auto
|
||||||
|
|
||||||
|
changelog:
|
||||||
|
sort: asc
|
||||||
|
filters:
|
||||||
|
exclude:
|
||||||
|
- '^docs:'
|
||||||
|
- typo
|
21
Dockerfile
21
Dockerfile
@ -1,21 +0,0 @@
|
|||||||
FROM golang:alpine AS builder
|
|
||||||
|
|
||||||
WORKDIR /usr/src/app
|
|
||||||
|
|
||||||
COPY . .
|
|
||||||
RUN apk add make openssh
|
|
||||||
RUN make build
|
|
||||||
|
|
||||||
|
|
||||||
FROM alpine
|
|
||||||
|
|
||||||
RUN apk add openssh
|
|
||||||
RUN mkdir /root/.ssh
|
|
||||||
WORKDIR /root/.ssh
|
|
||||||
RUN ssh-keygen -t rsa -C "chatkey" -f id_rsa
|
|
||||||
|
|
||||||
WORKDIR /usr/local/bin
|
|
||||||
|
|
||||||
COPY --from=builder /usr/src/app/ssh-chat .
|
|
||||||
RUN chmod +x ssh-chat
|
|
||||||
CMD ["/usr/local/bin/ssh-chat"]
|
|
6
Dockerfile.goreleaser
Normal file
6
Dockerfile.goreleaser
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
FROM scratch
|
||||||
|
|
||||||
|
COPY ssh-chat /usr/local/bin/ssh-chat
|
||||||
|
WORKDIR /sshchat
|
||||||
|
|
||||||
|
ENTRYPOINT [ "/usr/local/bin/ssh-chat" ]
|
@ -1,7 +1,15 @@
|
|||||||
version: '3'
|
version: '3.7'
|
||||||
services:
|
services:
|
||||||
app:
|
ssh-chat:
|
||||||
build: .
|
image: ghcr.io/shazow/ssh-chat:latest
|
||||||
ports:
|
ports:
|
||||||
- 2022:2022
|
- 2022:2022
|
||||||
restart: always
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- ./sshchat:/sshchat
|
||||||
|
command:
|
||||||
|
- --verbose
|
||||||
|
- --identity=id
|
||||||
|
- --bind=":2022"
|
||||||
|
- --admin=admins
|
||||||
|
- --motd=motd
|
||||||
|
Loading…
x
Reference in New Issue
Block a user