DEWY: The application server for automated deployment with polling a repository.
To install, use go get
:
$ go get -d github.com/linyows/dewy
When the application functions as a server:
$ cd /opt/yourapp
$ env GITHUB_TOKEN=xxx... SLACK_TOKEN=xxx... \
dewy server --repository yourname/yourapp \
--artifact yourapp_linux_amd64.tar.gz \
--port 3000 \
-- /opt/yourapp/current/yourapp
When the application and server are separated, or when the server is unnecessary:
$ cd /opt/yourapp
$ env GITHUB_TOKEN=xxx... SLACK_TOKEN=xxx... \
dewy assets --repository yourname/yourapp \
--artifact yourapp_linux_amd64.tar.gz
Dewy has 3 abstract backends and can be used according to the user"s environment.
- Remote repository backend
- Notification backend
- Storage backend
Dewy shares the polling history within the cluster in storage so that it does not communicate excessively to remote repair acquisition.
Process right after startup:
$ ps axf
/usr/bin/dewy server ...(main process)
\_ /opt/your-app/current/your-app --args server (child process)
When deployment is started, a new child process is created and the old one is gracefully killed.
$ ps axf
/usr/bin/dewy server ...(main process)
\_ /opt/your-app/current/your-app --args server (old child process) <-- kill
\_ /opt/your-app/current/your-app --args server (current child process)
- Chef cookbook - https://github.com/linyows/dewy-cookbook
- Puppet module - https://github.com/takumakume/puppet-dewy
- github release
- git repo
- file
- memory
- redis
- consul
- etcd
- slack
- Fork (https://github.com/linyows/dewy/fork)
- Create a feature branch
- Commit your changes
- Rebase your local changes against the master branch
- Run test suite with the
go test ./...
command and confirm that it passes - Run
gofmt -s
- Create a new Pull Request