Compare commits
3 Commits
d17127ee4d
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 250e84d68e | |||
| 8825c20a5c | |||
| bb4875df80 |
@@ -14,4 +14,4 @@ Construeix i deploya una web estàtica amb hugo
|
|||||||
- GIT_REPO_URL: Url SSH del repositori amb la web
|
- GIT_REPO_URL: Url SSH del repositori amb la web
|
||||||
- GIT_SSH_ID_FILE: Clau pública d'accés SSH
|
- GIT_SSH_ID_FILE: Clau pública d'accés SSH
|
||||||
- HUGO_PARAMS: Paràmetres extra per a la comanda d'`hugo`
|
- HUGO_PARAMS: Paràmetres extra per a la comanda d'`hugo`
|
||||||
- TARGET_DIR: Directori de destí per construir la pàgina
|
- TARGET_DIR: Host i directori de destí per construir la pàgina
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
FROM klakegg/hugo:alpine-ci
|
FROM klakegg/hugo:alpine-ci
|
||||||
|
|
||||||
# Install git and ssh
|
# Install git and ssh
|
||||||
RUN apk add --no-cache git openssh
|
RUN apk add --no-cache git openssh rsync jq curl
|
||||||
|
|
||||||
# Install python/pip
|
# Install python/pip
|
||||||
ENV PYTHONUNBUFFERED=1
|
ENV PYTHONUNBUFFERED=1
|
||||||
|
|||||||
@@ -5,5 +5,5 @@ set -e
|
|||||||
docker build . -f deploy/Dockerfile -t webhooks:latest
|
docker build . -f deploy/Dockerfile -t webhooks:latest
|
||||||
|
|
||||||
# PUBLISH
|
# PUBLISH
|
||||||
docker tag pasta-server marc.sastre.cat/webhooks:latest
|
docker tag webhooks marc.sastre.cat/webhooks:latest
|
||||||
docker push marc.sastre.cat/webhooks
|
docker push marc.sastre.cat/webhooks
|
||||||
@@ -10,4 +10,4 @@ services:
|
|||||||
- "6000:6000"
|
- "6000:6000"
|
||||||
volumes:
|
volumes:
|
||||||
- ./test/config.json:/app/config.json
|
- ./test/config.json:/app/config.json
|
||||||
- /home/marc/.ssh/lajuntament:/app/lajuntament
|
- /home/marc/vatnajokull/nomad_volumes/webhooks/webhooks:/app/lajuntament
|
||||||
|
|||||||
4
main.py
4
main.py
@@ -37,7 +37,6 @@ def deploy(user, repo):
|
|||||||
except Exception:
|
except Exception:
|
||||||
response = "Internal Error"
|
response = "Internal Error"
|
||||||
status = 500
|
status = 500
|
||||||
raise
|
|
||||||
return flask.Response(response, status=status)
|
return flask.Response(response, status=status)
|
||||||
|
|
||||||
|
|
||||||
@@ -53,7 +52,8 @@ def _deploy(user, repo):
|
|||||||
raise HttpError(400, f"Configuration not found for {user}/{repo}")
|
raise HttpError(400, f"Configuration not found for {user}/{repo}")
|
||||||
|
|
||||||
secret = config['secret'].encode('utf-8')
|
secret = config['secret'].encode('utf-8')
|
||||||
signature = hmac.new(secret, flask.request.data, hashlib.sha256).hexdigest()
|
signature = hmac.new(secret, flask.request.data,
|
||||||
|
hashlib.sha256).hexdigest()
|
||||||
h_signature = flask.request.headers.get('X-Gitea-Signature')
|
h_signature = flask.request.headers.get('X-Gitea-Signature')
|
||||||
|
|
||||||
if h_signature != signature:
|
if h_signature != signature:
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
set -e
|
set -xe
|
||||||
|
|
||||||
echo "Deploying for $GIT_REPO_URL"
|
echo "Deploying for $GIT_REPO_URL"
|
||||||
|
|
||||||
@@ -7,8 +7,9 @@ CONTENT_DIR=$(mktemp -d -t ci-XXXXXXXXXX)
|
|||||||
echo "Working directory: ${CONTENT_DIR}"
|
echo "Working directory: ${CONTENT_DIR}"
|
||||||
mkdir -p ${CONTENT_DIR}
|
mkdir -p ${CONTENT_DIR}
|
||||||
|
|
||||||
GIT_SSH_COMMAND="ssh -oStrictHostKeyChecking=no -i ${GIT_SSH_ID_FILE}" git clone ${GIT_REPO_URL} ${CONTENT_DIR}
|
GIT_SSH_COMMAND="ssh -o StrictHostKeyChecking=no -i ${GIT_SSH_ID_FILE}" git clone --recurse-submodules ${GIT_REPO_URL} ${CONTENT_DIR}
|
||||||
|
|
||||||
# mkdir -p ${TARGET_DIR}
|
cd ${CONTENT_DIR}
|
||||||
cd ${CONTENT_DIR} && hugo ${HUGO_PARAMS} --destination ${TARGET_DIR}
|
HUGO_DESTINATION=public hugo ${HUGO_PARAMS}
|
||||||
|
rsync -Pav -e "ssh -o StrictHostKeyChecking=no -i ${GIT_SSH_ID_FILE}" public/* ${TARGET_DIR}
|
||||||
rm -rf ${CONTENT_DIR}
|
rm -rf ${CONTENT_DIR}
|
||||||
|
|||||||
17
scripts/deploy_presencia.sh
Normal file
17
scripts/deploy_presencia.sh
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -xe
|
||||||
|
|
||||||
|
echo "Deploying for $GIT_REPO_URL"
|
||||||
|
|
||||||
|
CONTENT_DIR=$(mktemp -d -t ci-XXXXXXXXXX)
|
||||||
|
echo "Working directory: ${CONTENT_DIR}"
|
||||||
|
mkdir -p ${CONTENT_DIR}
|
||||||
|
|
||||||
|
GIT_SSH_COMMAND="ssh -o StrictHostKeyChecking=no -i ${GIT_SSH_ID_FILE}" git clone --recurse-submodules ${GIT_REPO_URL} ${CONTENT_DIR}
|
||||||
|
|
||||||
|
cd ${CONTENT_DIR}
|
||||||
|
./deploy/publish.sh
|
||||||
|
|
||||||
|
curl $NOMAD_ADDR/v1/job/$JOB_NAME | jq '.TaskGroups[0].Count = 0 | {"Job": .}' | curl -X POST -d @- $NOMAD_ADDR/v1/job/$JOB_NAME
|
||||||
|
sleep 5
|
||||||
|
curl $NOMAD_ADDR/v1/job/$JOB_NAME | jq '.TaskGroups[0].Count = 1 | {"Job": .}' | curl -X POST -d @- $NOMAD_ADDR/v1/job/$JOB_NAME
|
||||||
@@ -2,12 +2,12 @@
|
|||||||
"lajuntament": {
|
"lajuntament": {
|
||||||
"test": {
|
"test": {
|
||||||
"secret": "elsecret",
|
"secret": "elsecret",
|
||||||
"deploy_script": "./scripts/deploy_hugo.sh",
|
"deploy_script": "/app/scripts/deploy_hugo.sh",
|
||||||
"env": {
|
"env": {
|
||||||
"GIT_REPO_URL": "ssh://git@git.lajuntament.space:2222/lajuntament/web.git",
|
"GIT_REPO_URL": "ssh://git@git.lajuntament.space:2222/lajuntament/web.git",
|
||||||
"GIT_SSH_ID_FILE": "/app/lajuntament",
|
"GIT_SSH_ID_FILE": "/app/data/webhooks",
|
||||||
"HUGO_PARAMS": "",
|
"HUGO_PARAMS": "",
|
||||||
"TARGET_DIRECTORY": "public"
|
"TARGET_DIR": "nfs@vatnajokull:/mnt/raid1/sites/lajuntament-web"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user