Unverified Commit 72e22191 authored by Elf's avatar Elf Committed by GitHub
Browse files

feat: add release version checkout (#48)

parent 46c3a11f
Showing with 57 additions and 1 deletion
+57 -1
......@@ -15,9 +15,21 @@ jobs:
- run: go mod download
- name: Get tag
id: tag
uses: dawidd6/action-get-tag@v1
- name: Current tag
run: echo ${{steps.tag.outputs.tag}}
- uses: izumin5210/action-go-crossbuild@v1.0.0
with:
goxz-version: v0.6.0
name: lazykube
arch: amd64,386,arm
os: darwin,linux,windows
package: ./cmd/lazykube
ldflags: "-X github.com/TNK-Studio/lazykube/pkg/app.Version=${{steps.tag.outputs.tag}}"
- uses: softprops/action-gh-release@v1
with:
......
......@@ -8,6 +8,7 @@ replace (
)
require (
github.com/Matt-Gleich/release v0.0.0-20201031213446-c4dd80460118
github.com/atotto/clipboard v0.1.2
github.com/docker/distribution v2.7.1+incompatible
github.com/fastly/go-utils v0.0.0-20180712184237-d95a45783239 // indirect
......@@ -31,7 +32,7 @@ require (
golang.org/x/net v0.0.0-20200927032502-5d4f70055728 // indirect
golang.org/x/sys v0.0.0-20200926100807-9d91bd62050c // indirect
google.golang.org/protobuf v1.25.0 // indirect
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776
k8s.io/api v0.19.3
k8s.io/apimachinery v0.19.3
k8s.io/cli-runtime v0.19.3
......
......@@ -35,6 +35,8 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd h1:sjQovDkwrZp8u+gxLtPgKGjk5hCxuy2hrRejBTA9xFU=
github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd/go.mod h1:64YHyfSL2R96J44Nlwm39UHepQbyR5q10x7iYa1ks2E=
github.com/Matt-Gleich/release v0.0.0-20201031213446-c4dd80460118 h1:Wn0M8Zy7MuhYqb2JpepRAc9npqn0mZiWffFLuvj8nus=
github.com/Matt-Gleich/release v0.0.0-20201031213446-c4dd80460118/go.mod h1:bXuZW6gUZgF3PlxKD/PWBXsnvAPnrScC+scuBEGOUUw=
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
......@@ -337,6 +339,8 @@ github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/tebeka/strftime v0.1.5 h1:1NQKN1NiQgkqd/2moD6ySP/5CoZQsKa1d3ZhJ44Jpmg=
github.com/tebeka/strftime v0.1.5/go.mod h1:29/OidkoWHdEKZqzyDLUyC+LmgDgdHo4WAFCDT7D/Ig=
github.com/tj/assert v0.0.3 h1:Df/BlaZ20mq6kuai7f5z2TvPFiwC3xaWJSDQNiIS3Rk=
github.com/tj/assert v0.0.3/go.mod h1:Ne6X72Q+TB1AteidzQncjw9PabbMp4PBMZ1k+vd1Pvk=
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
......@@ -517,6 +521,9 @@ gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10=
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ=
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo=
gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw=
gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk=
......
package app
import (
"fmt"
"github.com/Matt-Gleich/release"
"github.com/TNK-Studio/lazykube/pkg/config"
guilib "github.com/TNK-Studio/lazykube/pkg/gui"
"github.com/TNK-Studio/lazykube/pkg/log"
"github.com/TNK-Studio/lazykube/pkg/utils"
"github.com/gookit/color"
)
const (
githubRepo = "https://github.com/TNK-Studio/lazykube"
)
var (
Version = "No Version Provided"
)
// App lazykube application
type App struct {
version string
ClusterInfo *guilib.View
Namespace *guilib.View
Service *guilib.View
......@@ -23,6 +35,7 @@ type App struct {
// NewApp new lazykube application
func NewApp() *App {
app := &App{
version: Version,
ClusterInfo: ClusterInfo,
Namespace: Namespace,
Service: Service,
......@@ -57,6 +70,18 @@ func NewApp() *App {
return app
}
func (app *App) Version() string {
return app.version
}
func (app *App) CheckRelease() (bool, string, error) {
isOutdated, version, err := release.Check(app.version, githubRepo)
if err != nil {
log.Logger.Error(isOutdated, version, err)
}
return isOutdated, version, err
}
// Run run
func (app *App) Run() {
app.Gui.Run()
......@@ -65,6 +90,17 @@ func (app *App) Run() {
// Stop stop
func (app *App) Stop() {
app.Gui.Close()
isOutdated, version, err := app.CheckRelease()
if err == nil && isOutdated {
fmt.Printf(
"%s 🎉. %s => %s %s/releases/tag/%s\n",
color.Green.Sprint("A new release of lazykube is available"),
color.Yellow.Sprint(app.Version()),
color.Green.Sprint(version),
githubRepo,
version,
)
}
}
// OnRender OnRender
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment