first commit
This commit is contained in:
93
bin/import_demo.sh
Normal file
93
bin/import_demo.sh
Normal file
@@ -0,0 +1,93 @@
|
||||
#!/bin/bash -xe
|
||||
|
||||
if [ "$#" == 0 ]; then
|
||||
. ../utils/library.sh
|
||||
DATABASE=$(get_current_database)
|
||||
set -- root strongpassword mariadb "$DATABASE" "/vagrant/home/shop"
|
||||
fi
|
||||
|
||||
cd "$5"
|
||||
|
||||
export GITLAB_TOKEN=Q7oFxHDwBqfB_1MaKZwb
|
||||
|
||||
BRANCH=$(php -r "echo urlencode(\"prod/komponenty-wpj\");")
|
||||
|
||||
# Pokus o stazeni artefaktu
|
||||
if curl -# -L -f --header "PRIVATE-TOKEN: ${GITLAB_TOKEN}" \
|
||||
"https://gitlab.wpj.cz/api/v4/projects/2/jobs/artifacts/${BRANCH}/download?job=dump-database" \
|
||||
-o data.zip; then
|
||||
|
||||
echo "Artefakt uspesne stazen."
|
||||
|
||||
else
|
||||
echo "Artefakt se nepodarilo stahnout, spoustim job..."
|
||||
|
||||
# Ziskani ID posledniho uspesneho pipeline
|
||||
PIPELINE_ID=$(curl -s --header "PRIVATE-TOKEN: ${GITLAB_TOKEN}" \
|
||||
"https://gitlab.wpj.cz/api/v4/projects/2/pipelines?status=success&ref=${BRANCH}" \
|
||||
| jq -r '.[0].id')
|
||||
|
||||
|
||||
# Ziskani informaci o jobu
|
||||
JOB_INFO=$(curl -s --header "PRIVATE-TOKEN: ${GITLAB_TOKEN}" \
|
||||
"https://gitlab.wpj.cz/api/v4/projects/2/pipelines/${PIPELINE_ID}/jobs" \
|
||||
| jq -r '.[] | select(.name == "dump-database")')
|
||||
|
||||
JOB_ID=$(echo "$JOB_INFO" | jq -r '.id')
|
||||
JOB_STATUS=$(echo "$JOB_INFO" | jq -r '.status')
|
||||
|
||||
echo "Job ID: $JOB_ID"
|
||||
echo "Status: $JOB_STATUS"
|
||||
|
||||
# Rozhodnutí mezi play nebo retry
|
||||
if [[ "$JOB_STATUS" == "manual" ]]; then
|
||||
echo "Spoustim job"
|
||||
curl -s --request POST --header "PRIVATE-TOKEN: ${GITLAB_TOKEN}" \
|
||||
"https://gitlab.wpj.cz/api/v4/projects/2/jobs/${JOB_ID}/play"
|
||||
elif [[ "$JOB_STATUS" == "failed" || "$JOB_STATUS" == "success" || "$JOB_STATUS" == "canceled" ]]; then
|
||||
echo "Opakovane spoustim job"
|
||||
curl -s --request POST --header "PRIVATE-TOKEN: ${GITLAB_TOKEN}" \
|
||||
"https://gitlab.wpj.cz/api/v4/projects/2/jobs/${JOB_ID}/retry"
|
||||
else
|
||||
echo "Job nelze spustit (stav: $JOB_STATUS)"
|
||||
fi
|
||||
|
||||
# Cekani na dokonceni jobu
|
||||
JOB_STATE=""
|
||||
while true; do
|
||||
JOB_STATE=$(curl -s --header "PRIVATE-TOKEN: ${GITLAB_TOKEN}" \
|
||||
"https://gitlab.wpj.cz/api/v4/projects/2/jobs/${JOB_ID}" \
|
||||
| jq -r '.status')
|
||||
|
||||
echo -n "[$(date +%H:%M:%S)] Stav jobu: $JOB_STATE" >&2
|
||||
|
||||
if [[ "$JOB_STATE" == "success" ]]; then
|
||||
echo " ✅"
|
||||
break
|
||||
elif [[ "$JOB_STATE" == "failed" || "$JOB_STATE" == "canceled" ]]; then
|
||||
echo "Job selhal nebo byl zrusen. Ukoncuji."
|
||||
exit 1
|
||||
else
|
||||
echo -n .
|
||||
sleep 3
|
||||
fi
|
||||
done
|
||||
|
||||
# Druhy pokus o stazeni
|
||||
curl -# -L -f --header "PRIVATE-TOKEN: ${GITLAB_TOKEN}" \
|
||||
"https://gitlab.wpj.cz/api/v4/projects/2/jobs/artifacts/${BRANCH}/download?job=dump-database" \
|
||||
-o data.zip
|
||||
fi
|
||||
|
||||
# Pokud se podarilo stahnout ZIP, pokracuj s importem
|
||||
if [ -e data.zip ]; then
|
||||
unzip -o data.zip
|
||||
|
||||
# Import databaze
|
||||
bunzip2 -c database.sql.bz2 | mysql -u "$1" -p"$2" -h"$3" "$4"
|
||||
|
||||
rm data.zip database.sql.bz2
|
||||
else
|
||||
echo "Chyba: ZIP soubor se nepodarilo ziskat."
|
||||
exit 1
|
||||
fi
|
||||
Reference in New Issue
Block a user