git-webhook-ci/README.md

37 lines
1.3 KiB
Markdown
Raw Normal View History

2023-02-26 10:58:32 +01:00
# git-webhook-ci
Tool to automatize your deploy based on file write changes
2023-02-26 11:07:21 +01:00
## Description
After some change is made in our listener file the script placed on path set on `env` variable called **WEBHOOK_SCRIPT_PATH** will be executed.
2023-02-26 10:58:32 +01:00
## 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.19](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/)
2023-02-26 11:07:21 +01:00
### Environment Vars
As shown in .env.example you have to configure this variables in order to make your binary works right:
```.env
SCRIPT_BINARY_PATH=/bin/bash
WEBHOOK_SCRIPT_PATH=/path/to/mybashscript.sh
FILE_TO_WATCH_PATH=/path/to/myfile.txt
TEST_FILE_TO_WATCH_PATH=./test_monitor.txt
```
**TEST_FILE_TO_WATCH_PATH** is needed just to run tests
## How to use
### Build
To build you can only just `make build` command
```bash
make build
```