`make release` is actually just a shortcut to execute `make release-dirs release-windows release-linux release-darwin release-copy release-check release-os-package release-zip`.
*`release-dirs` creates all directories needed
*`release-windows`/`release-linux`/`release-darwin` execute xgo to build for their respective platforms
*`release-copy` bundles binaries with a copy of `templates/` to then be zipped
*`release-check` creates sha256 checksums for each binary which will be included in the zip file
*`release-os-package` bundles a binary with a copy of the `templates/` folder, the `sha256` checksum file, a sample `config.yml` and a copy of the license in a folder for each architecture
*`release-zip` makes a zip file for the files created by `release-os-package`
### Build debian packages
{{<highlightbash>}}
make build-deb
{{</highlight>}}
Will build a `.deb` package into the current folder. You need to have [fpm](https://fpm.readthedocs.io/en/latest/intro.html) installed to be able to do this.
#### Make a debian repo
{{<highlightbash>}}
make reprepro
{{</highlight>}}
Takes an already built debian package and creates a debian repo structure around it.
Used to be run inside a [docker container](https://git.kolaente.de/konrad/reprepro-docker) in the CI process when releasing.
### Generate swagger definitions from code comments
{{<highlightbash>}}
make do-the-swag
{{</highlight>}}
Generates swagger definitions from the comments in the code.
#### Check if swagger generation is needed
{{<highlightbash>}}
make got-swag
{{</highlight>}}
This command is currently more an experiment, use it with caution.
It may bring up wrong results.
### Code-Checks
*`misspell-check`: Checks for commonly misspelled words
*`ineffassign-check`: Checks for ineffectual assignments in the code using [ineffassign](https://github.com/gordonklaus/ineffassign).
*`gocyclo-check`: Calculates cyclomatic complexities of functions using [gocyclo](https://github.com/fzipp/gocyclo).
*`static-check`: Analyzes the code for bugs, improvements and more using [staticcheck](https://staticcheck.io/docs/).
*`gosec-check`: Inspects source code for security problems by scanning the Go AST using the [gosec tool](https://github.com/securego/gosec).
*`goconst-check`: Finds repeated strings that could be replaced by a constant using [goconst](https://github.com/jgautheron/goconst/).