Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
pre-post-commands
  • Loading branch information
Joslin, Brady W (Brady) committed Aug 7, 2020
1 parent 6531840 commit 93b9408
Show file tree
Hide file tree
Showing 4 changed files with 62 additions and 7 deletions.
7 changes: 6 additions & 1 deletion .github/workflows/deploy.yml
Expand Up @@ -60,6 +60,11 @@ jobs:
secrets: |
SECRET1
SECRET2
preCommands: echo "*** pre command ***"
postCommands: |
echo "*** post commands ***"
wrangler build
echo "******"
env:
SECRET1: ${{ secrets.SECRET1 }}
SECRET2: ${{ secrets.SECRET2 }}
SECRET2: ${{ secrets.SECRET2 }}
18 changes: 17 additions & 1 deletion README.md
Expand Up @@ -110,6 +110,22 @@ jobs:
SECRET2: ${{ secrets.SECRET2 }}
```

If you need to run additional shell commands before or after `wrangler publish`, you can specify them as input to `preCommands` (before publish) or `postCommands` (after publish). These can include additional `wrangler` commands (i.e. `build`, `kv:key put`) or any other commands available inside the `wrangler-action` context.

```yaml
jobs:
deploy:
steps:
uses: cloudflare/wrangler-action@1.2.0
with:
apiToken: ${{ secrets.CF_API_TOKEN }}
preCommands: echo "*** pre command ***"
postCommands: |
echo "*** post commands ***"
wrangler kv:key put --binding=MY_KV key2 value2
echo "******"
```

## Use cases

### Deploying when commits are merged to master
Expand Down Expand Up @@ -228,4 +244,4 @@ jobs:
uses: cloudflare/wrangler-action@1.2.0
with:
apiToken: ${{ secrets.CF_API_TOKEN }}
```
```
6 changes: 6 additions & 0 deletions action.yml
Expand Up @@ -22,3 +22,9 @@ inputs:
secrets:
description: "A new line deliminated string of environment variable names that should be configured as Worker secrets"
required: false
preCommands:
description: "Commands to execute before publishing the Workers project"
required: false
postCommands:
description: "Commands to execute after publishing the Workers project"
required: false
38 changes: 33 additions & 5 deletions entrypoint.sh
@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash

set -e

Expand All @@ -10,6 +10,27 @@ chmod -R 770 "$HOME/.wrangler"

export API_CREDENTIALS=""

# Used to execute any specified pre and post commands
execute_commands() {
COMMANDS=$1
while IFS= read -r COMMAND; do
CHUNKS=()

for CHUNK in $COMMAND; do
CHUNKS+=("$CHUNK")
done

"${CHUNKS[@]}"

CHUNKS=()
done <<< "$COMMANDS"
}

secret_not_found() {
echo "::error::Specified secret \"$1\" not found in environment variables."
exit 1
}

# If an API token is detected as input
if [ -n "$INPUT_APITOKEN" ]
then
Expand Down Expand Up @@ -58,10 +79,11 @@ then
cd "$INPUT_WORKINGDIRECTORY"
fi

secret_not_found() {
echo "::error::Specified secret \"$1\" not found in environment variables."
exit 1
}
# If precommands is detected as input
if [ -n "$INPUT_PRECOMMANDS" ]
then
execute_commands "$INPUT_PRECOMMANDS"
fi

# If an environment is detected as input, for each secret specified get the value of
# the matching named environment variable then configure using wrangler secret put.
Expand All @@ -82,6 +104,12 @@ else
done
fi

# If postcommands is detected as input
if [ -n "$INPUT_POSTCOMMANDS" ]
then
execute_commands "$INPUT_POSTCOMMANDS"
fi

# If a working directory is detected as input, revert to the
# original directory before continuing with the workflow
if [ -n "$INPUT_WORKINGDIRECTORY" ]
Expand Down

0 comments on commit 93b9408

Please sign in to comment.