Cree un proyecto Golang de aspecto formal en GitHub

Prefacio

He estado en contacto con golang durante mucho tiempo, pero comencé a escribir golang recientemente. Aunque no hay mucho que escribir, pero se han visto proyectos de golang pero numerosos, desde  Kubernetes  e istio para participar personalmente en el ecosistema de kustomize y luego en Kubernetes muchos gadgets, como: kubeval , kubedog , etc. Desde la perspectiva de los usuarios y contribuyentes del proyecto, he entrado en contacto con varios proyectos de golang . Como desarrollador, mientras disfruto de la conveniencia de varios proyectos de código abierto, también espero desarrollar un proyecto de golang por mí mismo . Con mi incontable experiencia en proyectos de lectura, entonces debo construir un proyecto de GitHub aparentemente formal .        

 

Configuración de GoLand

Hay muchos tutoriales en línea para instalar el entorno de desarrollo Go , por lo que no los presentaré aquí. Este artículo presenta principalmente la configuración del entorno de desarrollo en GoLand . La configuración aquí se realiza principalmente en MacOS , y otros sistemas pueden ser diferentes.

 

Utilice Goland IDE vgo

vgo  es una herramienta de administración de paquetes basada en la especificación del módulo Go , similar a la herramienta oficial de comando go mod .

  • 开启 vgo GoLand -> Preferencias -> GO -> Módulos Go (vgo)
  • Modificar manualmente  go.mod

Donde la última es la última versión, GoLand descargará el último código de dependencia. Después de que la descarga sea exitosa, modificará  go.mod  y generará un  archivo de análisis de dependencia go.sum  .

module github.com/sunny0826/hamal



go 1.12



require (

    github.com/mitchellh/go-homedir latest

    github.com/spf13/cobra latest

    github.com/spf13/viper latest

)
  • actualización completada

Después de que la actualización sea exitosa, generará el  archivo go.sum  y modificará el  archivo go.mod  .

module github.com/sunny0826/hamal



go 1.12



require (

    github.com/mitchellh/go-homedir v1.1.0

    github.com/spf13/cobra v0.0.5

    github.com/spf13/viper v1.4.0

)
  • Use la tecla de acceso directo  (opción) + (retorno)  o haga clic con el botón derecho del mouse para seleccionar  Sincronizar paquetes de github.com/sunny0826/hamal para importar las dependencias en la importación.

 

Configurar proxy

Si desea elegir la razón más persuasiva para golang , ¡confiar en las descargas definitivamente obtendrá la mayor cantidad de votos! En este momento una escalera adecuada es muy importante, sin esta escalera, el paso anterior no se puede completar en absoluto. Aquí presentamos principalmente la configuración en GoLand , no se introducirá la instalación y configuración de Shadowsocks .

GoLand -> Preferences -> Appearance & Behavior -> System Settings -> HTTP Proxy  está configurado aquí, no olvide hacer clic en  Check connection para  probar si la escalera está construida.

Configurar go fmt , goimports y golangci-lint    

Estas tres herramientas están integradas en GoLand , es muy simple de configurar : GoLand -> Preferencias -> Herramientas -> Observadores de archivos , simplemente haga clic en agregar. Una vez escrito el código , la detección automática de estas 3 herramientas se activará automáticamente. La función de la herramienta:

  • go fmt  : una herramienta de formato de código unificado.
  • golangci-lint  : herramienta de inspección de calidad de código estático para análisis de calidad de paquetes.
  • goimports  : herramienta de paquete de dependencia de importación automática .

 

Instalar y configurar golint 

GoLand no tiene su propia  herramienta Golint  , debe instalarla manualmente:

mkdir -p $GOPATH/src/golang.org/x/

cd $GOPATH/src/golang.org/x/

git clone https://github.com/golang/lint.git

git clone https://github.com/golang/tools.git

cd $GOPATH/src/golang.org/x/lint/golint

go install

Después de que la instalación sea exitosa,  verá el archivo de la herramienta binaria golint generado automáticamente en el directorio $ GOPATH / bin  .  

GoLand configure  golint , modifique las  tres configuraciones de Nombre Programa Argumentos  . Los  argumentos  deben agregar el  parámetro -set_exit_status , como se muestra en la figura:

 

 

Integración continua de Travis CI

Cómo instalar Travis CI en Github , inicie sesión en Travis CI directamente, inicie sesión con GitHub , luego seleccione el proyecto que necesita usar Travis CI y agregue .travis.yml al directorio raíz del proyecto , de la siguiente manera:   

language: go



go:

  - 1.12.5



sudo: required



install:

  - echo "install"



script:

  - echo "script"

Aquí hay solo un ejemplo, cada inserción después del código activará CI , la sintaxis concreta se puede encontrar en la documentación oficial .

Punto clave:  ¿Cree que el uso de Travis CI es para una integración continua? ¡Eso sería ingenuo! Utilice Travis CI, por supuesto, para sus insignias ,  simplemente copie el RESULTADO  en su  archivo README.md  .

 

 

GO Boleta de calificaciones

__ otra tecla __ : Nos Goland instalado en  golint  herramientas tales como las pruebas de la calidad del código, Código de los controles puede llevarse a cabo en línea y el código de tiempo, entonces esto es para una carga a la fuerza. GO Report Card  es un sitio web de detección de código golang , solo necesita completar la dirección de Github . Método Get Badges y Travis CI De manera similar, el contenido de MarkDown copiado en  RERADME.md  similar.

 

 

GoReleaser

Con la integración continua y la inspección del código, aquí se explica cómo lanzar una hermosa versión . Si aún está liberando manualmente la liberación , volverá a estar baja . Utilice el comando de una línea GoReleaser para lanzar una hermosa versión .

Debido al MacOS utilizado, aquí  se  utiliza brew para instalar:

brew install goreleaser

Genere la  configuración .goreleaser.yml  en el directorio raíz del proyecto :

goreleaser init

Después de la configuración, recuerde  agregar dist a .gitignore  , porque goreleaser generará los archivos compilados en el directorio dist de forma predeterminada .   

Después de configurar goreleaser , puede compilarlo y probarlo primero:

goreleaser --skip-validate --skip-publish --snapshot

Nota:  Para configurar GITHUB_TOKEN cuando use goreleaser por primera vez , puede aplicar aquí. Después de aplicar, ejecute el siguiente comando para configurar GITHUB_TOKEN

exportar GITHUB_TOKEN = <YOUR_TOKEN>

Asegúrese de que no haya ningún problema, luego puede operar git y goreleaser para lanzar la versión .

git add .

git commit -m "add goreleaser"

git tag -a v0.0.3 -m "First release"

git push origin master

git push origin v0.0.3

Una vez que todo está hecho, una línea de comando despega:

sangriento

Goreleaser  funciona mejor con CI , por lo que no lo presentaré aquí.

 

 

Las insignias muestran artefactos

Aquí hay un artefacto que muestra insignias : https://shields.io/  . Este sitio web proporciona una variedad de insignias , si lo desea, puede completar su README.md de GitHub y los estudiantes interesados ​​pueden recogerlas .

 

Fuente del manuscrito: Alibaba Cloud Developer Community

 

 

 

Supongo que te gusta

Origin blog.csdn.net/weixin_40050195/article/details/97130032
Recomendado
Clasificación