Giter Club home page Giter Club logo

gobuilder's Introduction

Go build tool

Introduce

NOTICE: require go version at least 1.18.x

project for Apple Silicon machine. build x86/x64 program on Linux or Windows.

Features

  • support batch build
  • support docker build
  • support host build
  • support insert custom git variable to program
  • version control auto upgrade patch
  • support remote deploy program

TODO

  • remote build
  • before build run go test
  • ...

Usage

packages:
    hello-world: # project name output binary name
        package: gobuilder/cli # go module package like `go build xxx/xxx` 
        # `git` `version` `build` variable info store location
        # internal variable 
        # Version    string
        # BuildStamp string
        # BuildTool  string
        # GitHash    string
        verbose-package: gobuilder/cli/env
        build-flag: [] # custom `go build` suffix
        build-mode: docker # host or docker
        build-os: linux # binary target os
        build-arch: amd64 # binary target arch
        version: # binary version
            major: 1
            minor: 1
            patch: 2 # if `auto-upgrade` == true patch auto increment each build
        dest: bin # binary output directory
        deploy: '127.0.0.1:2030' # remote gobuilder-server
        clean-after-deploy: true # after remote deploy remove local binary file
version: 1.18.3 # expect golang version
parallel: 5 # build how many project in once
auto-upgrade: true # auto increment version.patch
ca: gobuilder-root.pem # remote deploy only cert ca
cert: gobuilder-client.pem # remote deploy only client cert
key: gobuilder-client.key # remote deploy only client key

put code in project-dir/.gobuilder then

go get -u github.com/anonymous5l/gobuilder
$: cd project-dir 
$: gobuilder
$: gobuilder hello-world

Remote deploy

Build

$: go build && mkdir bin && ./gobuilder

or

$: go build gobuilder/server -o gobuilder-server

Usage

generate root ca, server cert & key, client cert & key

$: ./gobuilder-server keygen

server use QUIC protocol base on UDP fast and safe

create server.yaml

address: '<IPAddress>:2030'
ca: gobuilder-root.pem # root ca pem
cert: gobuilder-server.pem # server cert pem
key: gobuilder-server.key # server rsa 2048 key
handler: 128 # max handle in same time use ants goroutine library

packages:
  hello-world:
    before-action: /root/gobuilder/gobuilder-before.sh # running before command
    perm: 0755 # default 0755
    executable: /root/gobuilder/hello-world
    after-action: /root/gobuilder/gobuilder-after.sh # running after update command 
  
  # ...

running gobuilder deploy server

$: ./gobuilder-server
Golang build tool server side

if modify server.yaml config use kill -USR2 <PID> to reload config packages section

gobuilder's People

Contributors

anonymous5l avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.