mirror of
https://codeberg.org/cunicu/cunicu.git
synced 2025-09-26 21:01:14 +08:00
use goreleaser instead of a Makefile
Signed-off-by: Steffen Vogel <post@steffenvogel.de>
This commit is contained in:
40
.github/workflows/build.yaml
vendored
40
.github/workflows/build.yaml
vendored
@@ -25,15 +25,18 @@ jobs:
|
||||
- name: Setup Go
|
||||
uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: '1.16.6'
|
||||
go-version: 1.17
|
||||
|
||||
# Install all the dependencies
|
||||
- name: Install dependencies
|
||||
run: go get -u golang.org/x/lint/golint
|
||||
|
||||
run: go get -u golang.org/x/lint/golint
|
||||
|
||||
# Run build of the application
|
||||
- name: Run build
|
||||
run: make
|
||||
- name: Run wice build
|
||||
run: go build ./cmd/wice
|
||||
|
||||
- name: Run wicectl build
|
||||
run: go build ./cmd/wicectl
|
||||
|
||||
# Run vet on the code
|
||||
- name: Run vet
|
||||
@@ -54,30 +57,3 @@ jobs:
|
||||
reporter: github-pr-review
|
||||
filter_mode: nofilter
|
||||
fail_on_error: true
|
||||
|
||||
# The "deploy" workflow
|
||||
deploy:
|
||||
# The type of runner that the job will run on
|
||||
runs-on: ubuntu-latest
|
||||
needs: [build] # Only run this workflow when "build" workflow succeeds
|
||||
if: ${{ github.ref == 'refs/heads/master' && github.event_name == 'push' }} # Only run this workflow if it is master branch on push event
|
||||
steps:
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v1
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v1
|
||||
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_TOKEN }}
|
||||
|
||||
- name: Build and push
|
||||
id: docker_build
|
||||
uses: docker/build-push-action@v2
|
||||
with:
|
||||
push: true
|
||||
tags: user/app:latest
|
||||
|
51
.github/workflows/release.yaml
vendored
51
.github/workflows/release.yaml
vendored
@@ -1,23 +1,40 @@
|
||||
name: goreleaser
|
||||
|
||||
on:
|
||||
release:
|
||||
types:
|
||||
- created
|
||||
pull_request:
|
||||
push:
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
linux:
|
||||
goreleaser:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
DOCKER_CLI_EXPERIMENTAL: "enabled"
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: 1.16.6
|
||||
- name: Make Directory with kgctl Binaries to Be Released
|
||||
run: make release
|
||||
- name: Publish Release
|
||||
uses: skx/github-action-publish-binaries@master
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.github_token }}
|
||||
with:
|
||||
args: 'build/wice-*'
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v1
|
||||
- name: Docker Login
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_TOKEN }}
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: 1.17
|
||||
- name: Run GoReleaser
|
||||
uses: goreleaser/goreleaser-action@v2
|
||||
with:
|
||||
# either 'goreleaser' (default) or 'goreleaser-pro'
|
||||
distribution: goreleaser
|
||||
version: latest
|
||||
args: release --rm-dist
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
|
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1,3 +1,5 @@
|
||||
build/
|
||||
test/logs/
|
||||
.vscode/
|
||||
|
||||
dist/
|
||||
|
172
.goreleaser.yaml
Normal file
172
.goreleaser.yaml
Normal file
@@ -0,0 +1,172 @@
|
||||
---
|
||||
project_name: wice
|
||||
|
||||
before:
|
||||
hooks:
|
||||
- go mod tidy
|
||||
- go generate ./...
|
||||
|
||||
builds:
|
||||
- id: wice
|
||||
main: ./cmd/wice
|
||||
binary: wice
|
||||
env:
|
||||
- CGO_ENABLED=0
|
||||
goos:
|
||||
- linux
|
||||
- darwin
|
||||
goarch:
|
||||
- amd64
|
||||
- arm64
|
||||
- arm
|
||||
goarm:
|
||||
- "6"
|
||||
- "7"
|
||||
- id: wicectl
|
||||
main: ./cmd/wicectl
|
||||
binary: wicectl
|
||||
env:
|
||||
- CGO_ENABLED=0
|
||||
goos:
|
||||
- linux
|
||||
- darwin
|
||||
goarch:
|
||||
- amd64
|
||||
- arm64
|
||||
- arm
|
||||
goarm:
|
||||
- "6"
|
||||
- "7"
|
||||
|
||||
archives:
|
||||
- builds:
|
||||
- wice
|
||||
- wicectl
|
||||
|
||||
format_overrides:
|
||||
- goos: windows
|
||||
format: zip
|
||||
|
||||
nfpms:
|
||||
- vendor: stv0g
|
||||
homepage: https://github.com/stv0g/wice/
|
||||
maintainer: Steffen Vogel <post@steffenvogel.de>
|
||||
license: Apache 2.0
|
||||
formats:
|
||||
- apk
|
||||
- deb
|
||||
- rpm
|
||||
contents:
|
||||
# manpages
|
||||
- src: "./manpage/wice*.1"
|
||||
dst: "/usr/share/man/man1"
|
||||
# bash
|
||||
- src: "./contrib/completion/bash/exo"
|
||||
dst: "/usr/share/bash-completion/completions"
|
||||
# zsh
|
||||
- src: "./contrib/completion/zsh/_exo"
|
||||
dst: "/usr/share/zsh/vendor-completions/_exo"
|
||||
|
||||
dockers:
|
||||
- use: buildx
|
||||
dockerfile: Dockerfile.scratch
|
||||
goos: linux
|
||||
goarch: amd64
|
||||
image_templates:
|
||||
- "stv0g/{{ .ProjectName }}:latest-amd64"
|
||||
- "stv0g/{{ .ProjectName }}:v{{ .Major }}-amd64"
|
||||
- "stv0g/{{ .ProjectName }}:v{{ .Major }}.{{ .Minor }}-amd64"
|
||||
- "stv0g/{{ .ProjectName }}:v{{ .Major }}.{{ .Minor }}.{{ .Patch }}-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/stv0g/{{ .ProjectName }}
|
||||
- --label=org.opencontainers.image.source=https://github.com/stv0g/{{ .ProjectName }}
|
||||
- --label=org.opencontainers.image.version={{ .Version }}
|
||||
- --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
|
||||
- --label=org.opencontainers.image.revision={{ .FullCommit }}
|
||||
- --label=org.opencontainers.image.licenses=Apache-2.0
|
||||
|
||||
- use: buildx
|
||||
dockerfile: Dockerfile.scratch
|
||||
goos: linux
|
||||
goarch: arm64
|
||||
image_templates:
|
||||
- "stv0g/{{ .ProjectName }}:latest-arm64v8"
|
||||
- "stv0g/{{ .ProjectName }}:v{{ .Major }}-arm64v8"
|
||||
- "stv0g/{{ .ProjectName }}:v{{ .Major }}.{{ .Minor }}-arm64v8"
|
||||
- "stv0g/{{ .ProjectName }}:v{{ .Major }}.{{ .Minor }}.{{ .Patch }}-arm64v8"
|
||||
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/stv0g/{{ .ProjectName }}
|
||||
- --label=org.opencontainers.image.source=https://github.com/stv0g/{{ .ProjectName }}
|
||||
- --label=org.opencontainers.image.version={{ .Version }}
|
||||
- --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
|
||||
- --label=org.opencontainers.image.revision={{ .FullCommit }}
|
||||
- --label=org.opencontainers.image.licenses=Apache-2.0
|
||||
|
||||
- use: buildx
|
||||
dockerfile: Dockerfile.scratch
|
||||
goos: linux
|
||||
goarch: arm
|
||||
goarm: "6"
|
||||
image_templates:
|
||||
- "stv0g/{{ .ProjectName }}:latest-armv6"
|
||||
- "stv0g/{{ .ProjectName }}:v{{ .Major }}-armv6"
|
||||
- "stv0g/{{ .ProjectName }}:v{{ .Major }}.{{ .Minor }}-armv6"
|
||||
- "stv0g/{{ .ProjectName }}:v{{ .Major }}.{{ .Minor }}.{{ .Patch }}-armv6"
|
||||
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/stv0g/{{ .ProjectName }}
|
||||
- --label=org.opencontainers.image.source=https://github.com/stv0g/{{ .ProjectName }}
|
||||
- --label=org.opencontainers.image.version={{ .Version }}
|
||||
- --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
|
||||
- --label=org.opencontainers.image.revision={{ .FullCommit }}
|
||||
- --label=org.opencontainers.image.licenses=Apache-2.0
|
||||
|
||||
- use: buildx
|
||||
dockerfile: Dockerfile.scratch
|
||||
goos: linux
|
||||
goarch: arm
|
||||
goarm: "7"
|
||||
image_templates:
|
||||
- "stv0g/{{ .ProjectName }}:latest-armv7"
|
||||
- "stv0g/{{ .ProjectName }}:v{{ .Major }}-armv7"
|
||||
- "stv0g/{{ .ProjectName }}:v{{ .Major }}.{{ .Minor }}-armv7"
|
||||
- "stv0g/{{ .ProjectName }}:v{{ .Major }}.{{ .Minor }}.{{ .Patch }}-armv7"
|
||||
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/stv0g/{{ .ProjectName }}
|
||||
- --label=org.opencontainers.image.source=https://github.com/stv0g/{{ .ProjectName }}
|
||||
- --label=org.opencontainers.image.version={{ .Version }}
|
||||
- --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
|
||||
- --label=org.opencontainers.image.revision={{ .FullCommit }}
|
||||
- --label=org.opencontainers.image.licenses=Apache-2.0
|
||||
|
||||
docker_manifests:
|
||||
- name_template: stv0g/{{ .ProjectName }}:{{ .Version }}
|
||||
image_templates:
|
||||
- stv0g/{{ .ProjectName }}:{{ .Version }}-amd64
|
||||
- stv0g/{{ .ProjectName }}:{{ .Version }}-armv6
|
||||
- stv0g/{{ .ProjectName }}:{{ .Version }}-armv7
|
||||
- stv0g/{{ .ProjectName }}:{{ .Version }}-arm64v8
|
||||
|
||||
checksum:
|
||||
name_template: 'checksums.txt'
|
||||
|
||||
snapshot:
|
||||
name_template: "{{ incpatch .Version }}-next"
|
||||
|
||||
changelog:
|
||||
sort: asc
|
||||
filters:
|
||||
exclude:
|
||||
- '^docs:'
|
||||
- '^test:'
|
4
Dockerfile.scratch
Normal file
4
Dockerfile.scratch
Normal file
@@ -0,0 +1,4 @@
|
||||
FROM scratch
|
||||
ENTRYPOINT ["/wice"]
|
||||
COPY wice /
|
||||
COPY wicectl /
|
Reference in New Issue
Block a user