Compare commits

...

2 Commits

Author SHA1 Message Date
53f5a6952b Add README
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2024-01-05 23:01:57 +01:00
b84634a606 Fix entrypoint 2024-01-05 22:51:16 +01:00
2 changed files with 41 additions and 4 deletions

35
README.md Normal file
View File

@ -0,0 +1,35 @@
# woodpecker-ssg-deploy
A Woodpecker plugin to push outputs created by SSGs into git repositories.
## Usage
```yaml
deploy:
image: git.polynom.me/papatutuwawa/woodpecker-ssg-deploy:latest
# The push token
# NOTE: For gitea, this is currently an access token with Read/Write access
# to repositories.
secrets: [ token ]
settings:
# The EMail to use for the git user that does the pushing
email: "system@example.org"
# The name to use for the git user that does the pushing
name: "example.org CI System"
# The name of the environment variable that contains the push token
token_env: "TOKEN"
# The name of the directory containing the SSG output
output: "public"
# The name of the branch to push into. Defaults to "pages"
branch: "pages"
```
What the plugin does is initialize a new Git repository in the output directory,
add all files in the output directory to the repository and then force push to the original
repository on the specified branch.
For a real-life example [see here](https://git.polynom.me/PapaTutuWawa/blog.polynom.me).
## License
See `LICENSE`.

View File

@ -2,8 +2,10 @@
branch=${PLUGIN_BRANCH:-"pages"} branch=${PLUGIN_BRANCH:-"pages"}
token_env=${PLUGIN_TOKEN_ENV} token_env=${PLUGIN_TOKEN_ENV}
output=${PLUGIN_OUTPUT} output=${PLUGIN_OUTPUT}
if [[ -z "$token_env" ]] || [[ -z "$branch" ]]; then name=${PLUGIN_NAME}
echo "Invalid configuration: Token environment variable name or branch name empty" email=${PLUGIN_EMAIL}
if [[ -z "$token_env" ]] || [[ -z "$branch" ]] || [[ -z "$name"]] || [[ -z "$email" ]]; then
echo "Invalid configuration: Token environment variable name, branch name empty, name, or email"
exit 1 exit 1
fi fi
@ -13,8 +15,8 @@ if [[ "$?" -ne "0" ]]; then
exit 1 exit 1
fi fi
[[ -n "$PLUGIN_EMAIL" ]] && git config --config user.email "$PLUGIN_EMAIL" git config --global user.email "$email"
[[ -n "$PLUGIN_NAME" ]] && git config --config user.name "$PLUGIN_NAME" git config --global user.name "$name"
git config --global --add safe.directory "$CI_WORKSPACE/$CI_REPO_OWNER/$CI_REPO_NAME/$output" git config --global --add safe.directory "$CI_WORKSPACE/$CI_REPO_OWNER/$CI_REPO_NAME/$output"
# Init a new repository in the output directory and add all files # Init a new repository in the output directory and add all files