Merge pull request #51 from moorereason/focus

Remove webhook-contrib content and update README
This commit is contained in:
Adnan Hajdarević 2015-11-11 09:44:05 +01:00
commit 3080fd115b
6 changed files with 7 additions and 389 deletions

View file

@ -1,30 +0,0 @@
branches:
only:
- master
notifications:
email:
on_success: never
on_failure: always
sudo: required
services:
- docker
before_install:
- echo "deb http://us.archive.ubuntu.com/ubuntu trusty main universe" | sudo tee -a /etc/apt/sources.list
- sudo apt-get update
- docker pull fedora:22
before_script:
- docker run -i --privileged -d -v $HOME/build/$TRAVIS_REPO_SLUG:$HOME/build/$TRAVIS_REPO_SLUG --name test_fedora fedora:22 bash
- docker exec -i test_fedora bash -c "dnf install -y rpmdevtools make mock git python-pip"
- docker exec -i test_fedora bash -c "dnf install -y go-compilers-golang-compiler"
- docker exec -i test_fedora bash -c "dnf install -y https://kojipkgs.fedoraproject.org//packages/golang-github-go-fsnotify-fsnotify/1.2.0/0.1.git96c060f.fc22/noarch/golang-github-go-fsnotify-fsnotify-devel-1.2.0-0.1.git96c060f.fc22.noarch.rpm"
- docker exec -i test_fedora bash -c "dnf install -y https://kojipkgs.fedoraproject.org//packages/golang-github-codegangsta-negroni/0.1/1.gitc7477ad.fc22/noarch/golang-github-codegangsta-negroni-devel-0.1-1.gitc7477ad.fc22.noarch.rpm"
- docker exec -i test_fedora bash -c "dnf install -y https://kojipkgs.fedoraproject.org//packages/golang-github-gorilla-mux/0/0.18.git8096f47.fc22/noarch/golang-github-gorilla-mux-devel-0-0.18.git8096f47.fc22.noarch.rpm"
- docker exec -i test_fedora bash -c "useradd -g root fedora; usermod -a -G mock fedora"
- docker exec -i test_fedora bash -c "pip install git+https://github.com/shawnsi/docker-rpmbuild"
script:
- docker exec -i test_fedora bash -c "pip install git+https://github.com/shawnsi/docker-rpmbuild"
- docker exec -u fedora -i test_fedora bash -c "cd $HOME/build/$TRAVIS_REPO_SLUG ; make build_rpm"

View file

@ -1,14 +0,0 @@
FROM alpine
MAINTAINER Adnan Hajdarevic <adnanh@gmail.com>
ENV GOPATH /go
ENV SRCPATH ${GOPATH}/src/github.com/adnanh/webhook
COPY . ${SRCPATH}
RUN apk add --update -t build-deps go git libc-dev gcc libgcc && \
cd ${SRCPATH} && go get -d && go build -o /usr/local/bin/webhook && \
apk del --purge build-deps && \
rm -rf /var/cache/apk/* && \
rm -rf ${GOPATH}
EXPOSE 9000
ENTRYPOINT ["/usr/local/bin/webhook"]

View file

@ -1,18 +0,0 @@
DOCKER_IMAGE_NAME = adnanh/webhook
CONTAINER_NAME = webhook
COMMIT := $(shell git rev-parse HEAD)
SHORTCOMMIT := $(shell git rev-parse HEAD|cut -c-7)
TEMPDIR := $(shell mktemp -d)
docker-build: Dockerfile
docker build --force-rm=true --tag=$(DOCKER_IMAGE_NAME) .
docker-run:
@echo "Here's an example command on how to run a webhook container:"
@echo "docker run -d -p 9000:9000 -v /etc/webhook:/etc/webhook --name=$(CONTAINER_NAME) \\"
@echo " $(DOCKER_IMAGE_NAME) -verbose -hooks=/etc/webhook/hooks.json -hotreload"
build_rpm:
git archive --format=tar.gz --prefix webhook-$(COMMIT)/ --output $(TEMPDIR)/webhook-$(SHORTCOMMIT).tar.gz $(COMMIT)
rpmbuild -ta --define "_commit $(COMMIT)" $(TEMPDIR)/webhook-$(SHORTCOMMIT).tar.gz

View file

@ -62,41 +62,14 @@ However, hook defined like that could pose a security threat to your system, bec
# Examples
Check out [Hook examples page](https://github.com/adnanh/webhook/wiki/Hook-Examples) for more complex examples of hooks.
# Running webhook in Docker
The simplest usage of [adnanh/webhook](https://hub.docker.com/r/adnanh/webhook/) image is for one to host the hooks JSON file on their machine and mount the directory in which those are kept as a volume to the Docker container:
```shell
docker run -d -p 9000:9000 -v /dir/to/hooks/on/host:/etc/webhook --name=webhook \
adnanh/webhook -verbose -hooks=/etc/webhook/hooks.json -hotreload
```
Another method of using this Docker image is to create a simple `Dockerfile`:
```docker
FROM adnanh/webhook
COPY hooks.json.example /etc/webhook/hooks.json
```
This `Dockerfile` and `hooks.json.example` files should be placed inside the same directory. After that run `docker build -t my-webhook-image .` and then start your container:
```shell
docker run -d -p 9000:9000 --name=webhook my-webhook-image -verbose -hooks=/etc/webhook/hooks.json -hotreload
```
Additionally, one can specify the parameters to be passed to [webhook](https://github.com/adnanh/webhook/) in `Dockerfile` simply by adding one more line to the previous example:
```docker
FROM adnanh/webhook
COPY hooks.json.example /etc/webhook/hooks.json
CMD ["-verbose", "-hooks=/etc/webhook/hooks.json", "-hotreload"]
```
Now, after building your Docker image with `docker build -t my-webhook-image .`, you can start your container by running just:
```shell
docker run -d -p 9000:9000 --name=webhook my-webhook-image
```
# Contributing
Any form of contribution is welcome and highly appreciated.
Big thanks to [all the current contributors](https://github.com/adnanh/webhook/graphs/contributors) for their contributions!
# Community Contributions
See the [webhook-contrib][wc] repository for a collections of tools and helpers related to [webhook][w] that have been contributed by the [webhook][w] community.
# License
The MIT License (MIT)
@ -120,3 +93,7 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
[w]: https://github.com/adnanh/webhook
[wc]: https://github.com/adnanh/webhook-contrib

View file

@ -1,186 +0,0 @@
%if 0%{?fedora} || 0%{?rhel} == 6
%global with_devel 1
%global with_bundled 0
%global with_debug 1
%global with_check 1
%global with_unit_test 1
%else
%global with_devel 0
%global with_bundled 0
%global with_debug 0
%global with_check 0
%global with_unit_test 0
%endif
%if 0%{?with_debug}
%global _dwz_low_mem_die_limit 0
%else
%global debug_package %{nil}
%endif
%global provider github
%global provider_tld com
%global project adnanh
%global repo webhook
# https://github.com/adnanh/webhook
%global provider_prefix %{provider}.%{provider_tld}/%{project}/%{repo}
%global import_path %{provider_prefix}
%if 0%{?_commit:1}
# rpmbuild -ba --define "_commit 409b441c31f83279af0db289123eb4b0b14809a6" *.spec
%global commit %{_commit}
%else
%global commit 409b441c31f83279af0db289123eb4b0b14809a6
%endif
%global shortcommit %(c=%{commit}; echo ${c:0:7})
Name: golang-%{provider}-%{project}-%{repo}
Version: 0
Release: 0.1.git%{shortcommit}%{?dist}
Summary: webhook is a lightweight configurable webhook server written in Go
License: MIT
URL: https://%{provider_prefix}
Source0: https://%{provider_prefix}/archive/%{commit}/%{repo}-%{shortcommit}.tar.gz
# e.g. el6 has ppc64 arch without gcc-go, so EA tag is required
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
# If go_compiler is not set to 1, there is no virtual provide. Use golang instead.
BuildRequires: %{?go_compiler:compiler(go-compiler)}%{!?go_compiler:golang}
%if ! 0%{?with_bundled}
BuildRequires: golang(github.com/codegangsta/negroni)
BuildRequires: golang(github.com/gorilla/mux)
#BuildRequires: golang(gopkg.in/fsnotify.v1)
BuildRequires: golang(github.com/go-fsnotify/fsnotify)
%endif
%description
%{summary}
%if 0%{?with_devel}
%package devel
Summary: %{summary}
BuildArch: noarch
%if 0%{?with_check} && ! 0%{?with_bundled}
%endif
Provides: golang(%{import_path}/hook) = %{version}-%{release}
%description devel
%{summary}
This package contains library source intended for
building other packages which use import path with
%{import_path} prefix.
%endif
%if 0%{?with_unit_test} && 0%{?with_devel}
%package unit-test-devel
Summary: Unit tests for %{name} package
%if 0%{?with_check}
#Here comes all BuildRequires: PACKAGE the unit tests
#in %%check section need for running
%endif
# test subpackage tests code from devel subpackage
Requires: %{name}-devel = %{version}-%{release}
%description unit-test-devel
%{summary}
This package contains unit tests for project
providing packages with %{import_path} prefix.
%endif
%prep
%setup -q -n %{repo}-%{commit}
%build
mkdir -p src/github.com/adnanh
ln -s ../../../ src/github.com/adnanh/webhook
%if ! 0%{?with_bundled}
export GOPATH=$(pwd):%{gopath}
%else
export GOPATH=$(pwd):$(pwd)/Godeps/_workspace:%{gopath}
%endif
%gobuild -o bin/webhook %{import_path}
%install
install -d -p %{buildroot}%{_bindir}
install -p -m 0755 bin/webhook %{buildroot}%{_bindir}
install -d -p %{buildroot}%{_initrddir}
install -p -m 0755 webhook.init %{buildroot}%{_initrddir}/webhook
install -d -p %{buildroot}%{_sysconfdir}/webhook/
install -p -m 0640 hooks.json.example %{buildroot}%{_sysconfdir}/webhook/
# source codes for building projects
%if 0%{?with_devel}
install -d -p %{buildroot}/%{gopath}/src/%{import_path}/
echo "%%dir %%{gopath}/src/%%{import_path}/." >> devel.file-list
# find all *.go but no *_test.go files and generate devel.file-list
for file in $(find . -iname "*.go" \! -iname "*_test.go") ; do
echo "%%dir %%{gopath}/src/%%{import_path}/$(dirname $file)" >> devel.file-list
install -d -p %{buildroot}/%{gopath}/src/%{import_path}/$(dirname $file)
cp -pav $file %{buildroot}/%{gopath}/src/%{import_path}/$file
echo "%%{gopath}/src/%%{import_path}/$file" >> devel.file-list
done
%endif
# testing files for this project
%if 0%{?with_unit_test} && 0%{?with_devel}
install -d -p %{buildroot}/%{gopath}/src/%{import_path}/
# find all *_test.go files and generate unit-test-devel.file-list
for file in $(find . -iname "*_test.go" -or -iname "hooks.json.example"); do
echo "%%dir %%{gopath}/src/%%{import_path}/$(dirname $file)" >> devel.file-list
install -d -p %{buildroot}/%{gopath}/src/%{import_path}/$(dirname $file)
cp -pav $file %{buildroot}/%{gopath}/src/%{import_path}/$file
echo "%%{gopath}/src/%%{import_path}/$file" >> unit-test-devel.file-list
done
%endif
%if 0%{?with_devel}
sort -u -o devel.file-list devel.file-list
%endif
%check
%if 0%{?with_check} && 0%{?with_unit_test} && 0%{?with_devel}
%if ! 0%{?with_bundled}
export GOPATH=%{buildroot}/%{gopath}:%{gopath}
%else
export GOPATH=%{buildroot}/%{gopath}:$(pwd)/Godeps/_workspace:%{gopath}
%endif
%gotest %{import_path}/hook
%endif
#define license tag if not already defined
%{!?_licensedir:%global license %doc}
%files
%license LICENSE
%doc README.md hooks.json.example
%config(noreplace)%{_sysconfdir}/webhook/*
%{_bindir}/webhook
%{_initrddir}/webhook
%if 0%{?with_devel}
%files devel -f devel.file-list
%license LICENSE
%doc README.md
%dir %{gopath}/src/%{provider}.%{provider_tld}/%{project}
%endif
%if 0%{?with_unit_test} && 0%{?with_devel}
%files unit-test-devel -f unit-test-devel.file-list
%license LICENSE
%doc README.md
%endif
%changelog
* Thu Oct 29 2015 Tim Hughes - 0-0.1.git409b441
- First package for Fedora

View file

@ -1,111 +0,0 @@
#!/bin/sh
#
# Start the Webhook daemon
#
# chkconfig: 35 82 16
# description: webhook is a lightweight configurable tool written in Go, that \
# allows you to easily create HTTP endpoints (hooks) on your server, which \
# you can use to execute configured commands.
### BEGIN INIT INFO
# Provides: webhook
# Required-Start: $syslog $local_fs
# Required-Stop: $syslog $local_fs
# Should-Start: 0 1 2 6
# Should-Stop: 3 5
# Default-Start: 0 1 2 6
# Default-Stop: 3 5
# Short-Description: webhook allows you to easily create HTTP endpoints (hooks) on your server
# Description: webhook allows you to easily create HTTP endpoints (hooks) on your server
### END INIT INFO
# Source function library.
. /etc/rc.d/init.d/functions
exec="/usr/bin/webhook"
prog="webhook"
config="/etc/webhook/hooks.json"
[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
lockfile=/var/lock/subsys/$prog
pidfile=/var/run/$prog.pid
start() {
[ -x $exec ] || exit 5
[ -f $config ] || exit 6
echo -n $"Starting $prog: "
# if not running, start it up here, usually something like "daemon $exec"
((exec $exec -hooks=$config $OPTIONS &>/dev/null)&)
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
restart() {
stop
start
}
reload() {
restart
}
force_reload() {
restart
}
rh_status() {
# run checks to determine if the service is running or use generic status
status $prog
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
restart
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
exit 2
esac
exit $?