feat(other): deploy styleguide scripts and description (#8935)

This commit is contained in:
Ulf Gebhardt 2025-10-02 17:57:40 +02:00 committed by GitHub
parent b06b29b858
commit ffffd9e15f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 147 additions and 0 deletions

View File

@ -0,0 +1,74 @@
# Styleguide Deployment
You can use the webhook template `webhook.conf.template` and the `deploy-styleguide.sh` script in `deployment/styleguide/` for an automatic deployment from a (github) webhook.
For this to work follow these steps (using alpine):
Setup webhook service
```sh
apk add webhook
cp deployment/styleguide/hooks.json.template deployment/styleguide/hooks.json
vi deployment/styleguide/hooks.json
# adjust content of .github/webhooks/hooks.json
# replace all variables accordingly
# copy webhook service file
cp deployment/styleguide/webhook.template /etc/init.d/webhook
vi /etc/init.d/webhook
# adjust content of /etc/init.d/webhook
chmod +x /etc/init.d/webhook
service webhook start
rc-update add webhook boot
```
Setup nginx
```sh
vi /etc/nginx/http.d/default.conf
# contents of /etc/nginx/http.d/default.conf
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/localhost/htdocs;
# The github payload is quite big sometimes, hence those two lines can prevent an reoccurring error message on nginx
client_body_buffer_size 10M;
client_max_body_size 10M;
location / {
index index.html;
try_files $uri $uri/ /index.html;
}
location /hooks/ {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:9000/hooks/;
proxy_redirect off;
}
}
# contents of /etc/nginx/http.d/default.conf
service nginx reload
# delete htdocs/ folder to allow creation of symlink
rm -r /var/www/localhost/htdocs
```
For the github webhook configure the following:
| Field | Value |
|------------------------------------------------------|-----------------------------------------------|
| Payload URL | https://styleguide.ocelot.social/hooks/github |
| Content type | application/json |
| Secret | A SECRET |
| SSL verification | Enable SSL verification |
| Which events would you like to trigger this webhook? | Send me everything. |
| Active | [x] |

View File

@ -0,0 +1,32 @@
#!/bin/sh
# Find current directory & configure paths
SCRIPT_PATH=$(realpath $0)
SCRIPT_DIR=$(dirname $SCRIPT_PATH)
PROJECT_ROOT=$SCRIPT_DIR/../..
# by default this will create folders in the project root
DEPLOY_DIR=${1:-test}
BUILD_DIR=$PROJECT_ROOT/styleguide/docs
# assuming you are already on the right branch
git pull -ff
# Deploy physical Location
GIT_REF=$(git rev-parse --short HEAD)
DEPLOY_DIR_REF=$DEPLOY_DIR-$GIT_REF
## Parameter is a proper directory?
if [ -d "$DEPLOY_DIR_REF" ]; then
return "Directory '$DEPLOY_DIR_REF' does already exist" 2>/dev/null || exit 1
fi
## Build the project
cd $PROJECT_ROOT/styleguide
rm -R $BUILD_DIR
yarn install
yarn run build
## Copy files and Sym link to deploy dir
mkdir "$DEPLOY_DIR_REF/"
cp -r $BUILD_DIR/* "$DEPLOY_DIR_REF/"
ln -sfn "$DEPLOY_DIR_REF" $DEPLOY_DIR

View File

@ -0,0 +1,37 @@
[
{
"id": "github",
"execute-command": "$PROJECT_ROOT/deployment/styleguide/deploy-styleguide.sh",
"pass-arguments-to-command": [
{
"source": "string",
"name": "$DEPLOY_DIR"
}
],
"command-working-directory": "$PROJECT_ROOT",
"trigger-rule": {
"and": [
{
"match": {
"type": "payload-hash-sha1",
"secret": "$WEBHOOK_GITHUB_SECRET",
"parameter": {
"source": "header",
"name": "X-Hub-Signature"
}
}
},
{
"match": {
"type": "value",
"value": "refs/heads/$WEBHOOK_GITHUB_BRANCH",
"parameter": {
"source": "payload",
"name": "ref"
}
}
}
]
}
}
]

View File

@ -0,0 +1,4 @@
#!/sbin/openrc-run
command=webhook
command_args="-hooks $PROJECT_ROOT/deployment/styleguide/hooks.json &"