uses goreleaser
This commit is contained in:
parent
9efb1042e3
commit
0282d78cd3
62
.drone.yml
62
.drone.yml
@ -4,52 +4,56 @@ name: default
|
|||||||
type: docker
|
type: docker
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
|
||||||
- name: fetch
|
- name: fetch
|
||||||
image: alpine/git
|
image: alpine/git
|
||||||
commands:
|
commands:
|
||||||
- git fetch --tags
|
- git fetch --tags
|
||||||
|
|
||||||
- name: lint
|
- name: lint
|
||||||
image: golangci/golangci-lint:v1.24-alpine
|
image: golangci/golangci-lint:v1.31.0-alpine
|
||||||
commands:
|
commands:
|
||||||
- apk add --no-cache make
|
- apk add --no-cache make
|
||||||
- make lint
|
- make lint
|
||||||
|
|
||||||
- name: test
|
- name: test
|
||||||
image: golang:1.14
|
image: golang
|
||||||
|
pull: always
|
||||||
commands:
|
commands:
|
||||||
- make test
|
- make test
|
||||||
|
|
||||||
- name: build
|
- name: build
|
||||||
image: golang:1.14
|
image: goreleaser/goreleaser
|
||||||
commands:
|
commands:
|
||||||
- (cd /go; go get -v github.com/mitchellh/gox)
|
|
||||||
- (cd /go; go get -v github.com/vektra/mockery/.../)
|
|
||||||
- make build
|
- make build
|
||||||
|
depends_on:
|
||||||
|
- test
|
||||||
|
- lint
|
||||||
|
when:
|
||||||
|
event:
|
||||||
|
exclude:
|
||||||
|
- tag
|
||||||
|
|
||||||
- name: docker
|
- name: release
|
||||||
image: plugins/docker
|
image: golang
|
||||||
settings:
|
environment:
|
||||||
repo: quay.io/xsteadfastx/jitsiexporter
|
GITEA_TOKEN:
|
||||||
registry: quay.io
|
from_secret: gitea_token
|
||||||
auto_tag: true
|
commands:
|
||||||
username:
|
- curl -sL https://git.io/goreleaser | bash
|
||||||
from_secret: username
|
depends_on:
|
||||||
password:
|
- test
|
||||||
from_secret: password
|
- lint
|
||||||
|
|
||||||
- name: publish to github
|
|
||||||
image: plugins/github-release
|
|
||||||
settings:
|
|
||||||
api_key:
|
|
||||||
from_secret: github_token
|
|
||||||
files:
|
|
||||||
- jitsiexporter_darwin_*
|
|
||||||
- jitsiexporter_freebsd_*
|
|
||||||
- jitsiexporter_linux_*
|
|
||||||
- jitsiexporter_netbsd_*
|
|
||||||
- jitsiexporter_openbsd_*
|
|
||||||
- jitsiexporter_windows_*
|
|
||||||
when:
|
when:
|
||||||
event: tag
|
event: tag
|
||||||
|
# - name: docker
|
||||||
|
# image: plugins/docker
|
||||||
|
# settings:
|
||||||
|
# repo: quay.io/xsteadfastx/jitsiexporter
|
||||||
|
# registry: quay.io
|
||||||
|
# auto_tag: true
|
||||||
|
# username:
|
||||||
|
# from_secret: username
|
||||||
|
# password:
|
||||||
|
# from_secret: password
|
||||||
|
# when:
|
||||||
|
# event: tag
|
||||||
|
7
.gitignore
vendored
7
.gitignore
vendored
@ -1,6 +1 @@
|
|||||||
jitsiexporter_darwin_*
|
dist/*
|
||||||
jitsiexporter_freebsd_*
|
|
||||||
jitsiexporter_linux_*
|
|
||||||
jitsiexporter_netbsd_*
|
|
||||||
jitsiexporter_openbsd_*
|
|
||||||
jitsiexporter_windows_*
|
|
||||||
|
60
.goreleaser.yml
Normal file
60
.goreleaser.yml
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
---
|
||||||
|
gitea_urls:
|
||||||
|
api: https://git.xsfx.dev/api/v1/
|
||||||
|
|
||||||
|
builds:
|
||||||
|
- env:
|
||||||
|
- CGO_ENABLED=0
|
||||||
|
goos:
|
||||||
|
- linux
|
||||||
|
- windows
|
||||||
|
- darwin
|
||||||
|
ldflags:
|
||||||
|
- >
|
||||||
|
-s -w
|
||||||
|
-extldflags "-static"
|
||||||
|
-X git.xsfx.dev/prometheus/jitsiexporter/cmd/main.version={{.Version}}
|
||||||
|
-X git.xsfx.dev/prometheus/jitsiexporter/cmd/main.commit={{.ShortCommit}}
|
||||||
|
-X git.xsfx.dev/prometheus/jitsiexporter/cmd/main.date={{.Date}}
|
||||||
|
main: "./cmd/jitsiexporter/main.go"
|
||||||
|
|
||||||
|
archives:
|
||||||
|
- replacements:
|
||||||
|
darwin: macos
|
||||||
|
386: i386
|
||||||
|
format_overrides:
|
||||||
|
- goos: windows
|
||||||
|
format: zip
|
||||||
|
|
||||||
|
dockers:
|
||||||
|
- image_templates:
|
||||||
|
- "quay.io/xsteadfastx/jitsiexporter:latest"
|
||||||
|
- "quay.io/xsteadfastx/jitsiexporter:{{ .Tag }}"
|
||||||
|
- "quay.io/xsteadfastx/jitsiexporter:{{ .Major }}"
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
|
||||||
|
checksum:
|
||||||
|
name_template: "checksums.txt"
|
||||||
|
|
||||||
|
snapshot:
|
||||||
|
name_template: "{{ .Tag }}-next"
|
||||||
|
|
||||||
|
changelog:
|
||||||
|
sort: asc
|
||||||
|
filters:
|
||||||
|
exclude:
|
||||||
|
- "^docs:"
|
||||||
|
- "^test:"
|
||||||
|
- "^Bump version:"
|
||||||
|
- "typo"
|
||||||
|
- "^debug:"
|
||||||
|
|
||||||
|
nfpms:
|
||||||
|
- formats:
|
||||||
|
- apk
|
||||||
|
- deb
|
||||||
|
- rpm
|
||||||
|
replacements:
|
||||||
|
386: i386
|
||||||
|
homepage: https://git.xsfx.dev/prometheus/jitsiexporter
|
||||||
|
maintainer: Marvin Preuss <marvin@xsteadfastx.org>
|
13
Dockerfile
13
Dockerfile
@ -1,15 +1,4 @@
|
|||||||
FROM golang:1.14 AS base
|
|
||||||
RUN set -ex \
|
|
||||||
&& go get github.com/mitchellh/gox \
|
|
||||||
&& go get github.com/vektra/mockery/.../
|
|
||||||
|
|
||||||
FROM base AS builder
|
|
||||||
COPY . /go/src/github.com/xsteadfastx/jitsiexporter
|
|
||||||
WORKDIR /go/src/github.com/xsteadfastx/jitsiexporter
|
|
||||||
RUN set -ex \
|
|
||||||
&& make build
|
|
||||||
|
|
||||||
FROM scratch
|
FROM scratch
|
||||||
COPY --from=builder /go/src/github.com/xsteadfastx/jitsiexporter/jitsiexporter_linux_amd64 /bin/jitsiexporter
|
COPY jitsiexporter /
|
||||||
EXPOSE 9700
|
EXPOSE 9700
|
||||||
ENTRYPOINT ["/bin/jitsiexporter", "-debug=true", "-host=0.0.0.0"]
|
ENTRYPOINT ["/bin/jitsiexporter", "-debug=true", "-host=0.0.0.0"]
|
||||||
|
19
Makefile
19
Makefile
@ -1,22 +1,23 @@
|
|||||||
.PHONY: build clean test lint dep-update
|
.PHONY: generate build release clean test lint dep-update
|
||||||
|
|
||||||
VERSION ?= $(shell git describe --tags --always --dirty --match=v* 2> /dev/null || \
|
generate:
|
||||||
echo v0)
|
GOFLAGS=-mod=vendor go generate ./...
|
||||||
|
|
||||||
build:
|
build:
|
||||||
export GOFLAGS=-mod=vendor ; \
|
goreleaser build --rm-dist --snapshot
|
||||||
go generate ./...; \
|
|
||||||
CGO_ENABLED=0 gox -mod vendor -ldflags '-extldflags "-static" -X "main.version=${VERSION}"' github.com/xsteadfastx/jitsiexporter/cmd/jitsiexporter
|
release:
|
||||||
|
goreleaser release --rm-dist --snapshot --skip-publish
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f jitsiexporter
|
rm -f dist/
|
||||||
|
|
||||||
test:
|
test:
|
||||||
export GOFLAGS=-mod=vendor ; \
|
export GOFLAGS=-mod=vendor ; \
|
||||||
go test ./...
|
go test -v -race -cover ./...
|
||||||
|
|
||||||
lint:
|
lint:
|
||||||
golangci-lint run --enable-all --timeout 5m
|
golangci-lint run --enable-all --disable=godox
|
||||||
|
|
||||||
dep-update:
|
dep-update:
|
||||||
go get -u ./...
|
go get -u ./...
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
// nolint: gochecknoglobals
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
@ -10,7 +11,11 @@ import (
|
|||||||
"github.com/xsteadfastx/jitsiexporter"
|
"github.com/xsteadfastx/jitsiexporter"
|
||||||
)
|
)
|
||||||
|
|
||||||
var version string = "development"
|
var (
|
||||||
|
version = "dev"
|
||||||
|
commit = "none"
|
||||||
|
date = "unknown"
|
||||||
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
ver := flag.Bool("version", false, "Prints version.")
|
ver := flag.Bool("version", false, "Prints version.")
|
||||||
@ -22,7 +27,7 @@ func main() {
|
|||||||
flag.Parse()
|
flag.Parse()
|
||||||
|
|
||||||
if *ver {
|
if *ver {
|
||||||
fmt.Print(version)
|
fmt.Printf("jitsiexporter %s, commit %s, built at %s", version, commit, date)
|
||||||
os.Exit(0)
|
os.Exit(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
2
go.mod
2
go.mod
@ -1,4 +1,4 @@
|
|||||||
module github.com/xsteadfastx/jitsiexporter
|
module git.xsfx.dev/prometheus/jitsiexporter
|
||||||
|
|
||||||
go 1.14
|
go 1.14
|
||||||
|
|
||||||
|
@ -34,7 +34,6 @@ func (m *Metrics) Update() error {
|
|||||||
defer m.mux.Unlock()
|
defer m.mux.Unlock()
|
||||||
|
|
||||||
now, err := m.Stater.Now(m.URL)
|
now, err := m.Stater.Now(m.URL)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
m.Errors.Inc()
|
m.Errors.Inc()
|
||||||
|
|
||||||
@ -95,6 +94,7 @@ func get(ctx context.Context, url string, resp chan Response) {
|
|||||||
req, err := http.NewRequest("GET", url, nil)
|
req, err := http.NewRequest("GET", url, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
resp <- Response{Resp: nil, Error: err}
|
resp <- Response{Resp: nil, Error: err}
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -158,7 +158,7 @@ func collect(m *Metrics) {
|
|||||||
log.Error(err)
|
log.Error(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
time.Sleep(m.Interval) // nolint:gomnd
|
time.Sleep(m.Interval)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user