79 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # git-webhook-ci
 | |
| 
 | |
| Tool to automatize your deploy based on file write changes
 | |
| 
 | |
| ## Description
 | |
| 
 | |
| After some change is made in our listener file the script placed on path set on `.yaml` variable called **webhook_script_path** will be executed.
 | |
| 
 | |
| ## Context
 | |
| 
 | |
| As a security risk that could be allow a webhook listener on a VPS for your git repository, I've decided
 | |
| to create this package which is a listener to file changes on write. This will trigger a bash script which
 | |
| you shold place on your server to run desired tasks. In my case I've done this to run a bash deploy command like
 | |
| 
 | |
| - git pull
 | |
| - build
 | |
| - move build to desired dir
 | |
| - restart services like nginx or whatever
 | |
| 
 | |
| ## Installation
 | |
| 
 | |
| ### Requirements
 | |
| 
 | |
| - [Go version > 1.22](https://go.dev/dl/)
 | |
| - [GNU Make 4.3](https://www.gnu.org/software/make/)
 | |
| - [goreportcard-cli](https://github.com/gojp/goreportcard)
 | |
| - [golangci-lint](https://golangci-lint.run/)
 | |
| 
 | |
| ### Environment Vars
 | |
| 
 | |
| As shown in app.example.yml you have to configure this variables in order to make your binary works right:
 | |
| 
 | |
| ```.env
 | |
| script_binary_path: "/bin/bash"
 | |
| webhook_script_path: "./test-script.sh"
 | |
| file_to_watch_path: "./test_monitor.txt"
 | |
| ```
 | |
| 
 | |
| ## How to use
 | |
| 
 | |
| ### Build
 | |
| 
 | |
| To build you can only just `make build` command
 | |
| 
 | |
| ```bash
 | |
| make build
 | |
| ```
 | |
| 
 | |
| ## Tests
 | |
| 
 | |
| ```bash
 | |
| make test-coverage
 | |
| ```
 | |
| 
 | |
| output:
 | |
| 
 | |
| ```terminal
 | |
| coverage: 80.0% of statements
 | |
| ok      gitea.urkob.com/urko/git-webhook-ci/internal/watcher    2.024s  coverage: 80.0% of statements
 | |
| coverage: 100.0% of statements
 | |
| ok      gitea.urkob.com/urko/git-webhook-ci/pkg/watcher 0.017s  coverage: 100.0% of statements
 | |
| ```
 | |
| 
 | |
| ## goreportcard
 | |
| 
 | |
| ```bash
 | |
| ➜  git-webhook-ci git:(main) ✗ make goreportcard 
 | |
| oreportcard-cli -v
 | |
| Grade .......... A+ 100.0%
 | |
| Files .................. 6
 | |
| Issues ................. 0
 | |
| gofmt ............... 100%
 | |
| go_vet .............. 100%
 | |
| gocyclo ............. 100%
 | |
| ineffassign ......... 100%
 | |
| license ............. 100%
 | |
| misspell ............ 100%
 | |
| ```
 |