mirror of
https://github.com/unpoller/unpoller.git
synced 2026-03-31 06:33:57 -04:00
The elves did a little winter cleaning! They are making room for all the features and bug fixes coming soon, I can almost hear the jolly old ho ho ho!
This commit is contained in:
@@ -6,50 +6,33 @@ Lets talk about how the software gets built for our users before we talk about
|
||||
making changes to it.
|
||||
|
||||
|
||||
## TravisCI
|
||||
## Github Actions
|
||||
|
||||
This repo is tested, built and deployed by [Travis-CI](https://travis-ci.org/unifi-poller/unifi-poller).
|
||||
This repo is tested, built and deployed by [Github Actions](https://github.com/unpoller/unpoller/actions).
|
||||
|
||||
The [.travis.yml](.travis.yml) file in this repo coordinates the entire process.
|
||||
As long as this document is kept up to date, this is what the travis file does:
|
||||
The [.github/](.github/) directory in this repo coordinates the entire process.
|
||||
As long as this document is kept up to date, this is what github does:
|
||||
|
||||
- Creates a go-capable build environment on a Linux host, some debian variant.
|
||||
- Install ruby-devel to get rubygems.
|
||||
- Installs other build tools including rpm and fpm from rubygems.
|
||||
- Starts docker, builds the docker container and runs it.
|
||||
- Tests that the Docker container ran and produced expected output.
|
||||
- Makes a release. `make release`: This does a lot of things, controlled by the [Makefile](Makefile).
|
||||
- Runs go tests and go linters.
|
||||
- Compiles the application binaries for Windows, Linux and macOS.
|
||||
- Compiles a man page that goes into the packages.
|
||||
- Creates rpm and deb packages using fpm.
|
||||
- Puts the packages, gzipped binaries and files containing the SHA256s of each asset into a release folder.
|
||||
- Builds and Tests code changes
|
||||
- Lints code changes
|
||||
- On Release (through git tags) it uses goreleaser-pro to build and release:
|
||||
- Linux, Mac and Windows Binaries
|
||||
- Provides a packaged source copy
|
||||
- Builds Debian, RedHat packages
|
||||
- Builds Mac universal binary
|
||||
- Builds Windows executable
|
||||
- Builds numerous platform docker images and uploads them
|
||||
|
||||
After the release is built and Docker image tested:
|
||||
- Deploys the release assets to the tagged release on GitHub using an encrypted GitHub Token (api key).
|
||||
- Runs [another script](scripts/formula-deploy.sh) to create and upload a Homebrew formula to [golift/homebrew-mugs](https://github.com/golift/homebrew-mugs).
|
||||
- Uses an encrypted SSH key to upload the updated formula to the repo.
|
||||
- Travis does nothing else with Docker; it just makes sure the thing compiles and runs.
|
||||
- Deploys the release assets to the tagged release on [GitHub releases](https://github.com/unpoller/unpoller/releases)
|
||||
|
||||
### Homebrew
|
||||
|
||||
it's a mac thing.
|
||||
|
||||
[Homebrew](https://brew.sh) is all I use at home. Please don't break the homebrew
|
||||
formula stuff; it took a lot of pain to get it just right. I am very interested
|
||||
in how it works for you.
|
||||
it's a mac thing. [Homebrew](https://brew.sh)
|
||||
|
||||
### Docker
|
||||
|
||||
Docker is built automatically by Docker Cloud using the Dockerfile in the path
|
||||
[init/docker/Dockerfile](init/docker/Dockerfile). Some of the configuration is
|
||||
done in the Cloud service under my personal account `golift`, but the majority
|
||||
happens in the build files in the [init/docker/hooks/](init/docker/hooks/) directory.
|
||||
|
||||
If you have need to change the Dockerfile, please clearly explain what problem your
|
||||
changes are solving, and how it has been tested and validated. As far as I'm
|
||||
concerned this file should never need to change again, but I'm not a Docker expert;
|
||||
you're welcome to prove me wrong.
|
||||
Docker is built automatically and uploaded to ghcr.io by the release github action.
|
||||
|
||||
# Contributing
|
||||
|
||||
|
||||
Reference in New Issue
Block a user