### Example: Running skaffold lifecycle hooks

[![Open in Cloud Shell](https://gstatic.com/cloudssh/images/open-btn.svg)](https://ssh.cloud.google.com/cloudshell/editor?cloudshell_git_repo=https://github.com/GoogleContainerTools/skaffold&cloudshell_open_in_editor=README.md&cloudshell_workspace=examples/lifecycle-hooks)

This is a simple example to show how to inject skaffold lifecycles with user-defined hooks.

Run:
```
skaffold build --cache-artifacts=false
```

You should see the artifact `hooks-example` being built along with the execution of a `pre-build` hook trigger and a `post-build` hook trigger.

Now with an active kubernetes cluster, run:
```
skaffold dev
```

This will start a pod running the `hooks-example` image. The app simply reads the contents of `hello.txt` file once and stores it and repeatedly prints it out.
```
[hooks-example] Hello World!
[hooks-example] Hello World!
[hooks-example] Hello World!
...
```
If you change the text of `hello.txt` file, say to `Hello World!!`, Skaffold will `sync` it into the running container.
You should also see a `pre-sync` hook that just echoes the filename that has changed, and a `post-sync` hook that sends a `SIGHUP` signal to the app. The app responds accordingly by reloading the modified `hello.txt` file and printing it to the console. 
```
[hooks-example] Hello World!
[hooks-example] Hello World!
[hooks-example] Hello World!
Syncing 1 files for hooks-example:e3c03bbaf0830afb79d586c5a0d5ce7510a027585fb0cbc88db9bd14bfbad139
Starting pre-sync hooks for artifact "hooks-example"...
file changes detected: hello.txt
Completed pre-sync hooks for artifact "hooks-example"
Starting post-sync hooks for artifact "hooks-example"...
[hooks-example] + kill -HUP 1
Completed post-sync hooks for artifact "hooks-example"
Watching for changes...
[hooks-example] Hello World!!
[hooks-example] Hello World!!
[hooks-example] Hello World!!
...
```