mirror of https://github.com/gofiber/fiber.git
75 lines
2.0 KiB
Bash
Executable File
75 lines
2.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -e
|
|
|
|
# Some env variables
|
|
BRANCH="main"
|
|
REPO_URL="github.com/gofiber/docs.git"
|
|
AUTHOR_EMAIL="github-actions[bot]@users.noreply.github.com"
|
|
AUTHOR_USERNAME="github-actions[bot]"
|
|
VERSION_FILE="versions.json"
|
|
REPO_DIR="core"
|
|
COMMIT_URL="https://github.com/gofiber/fiber"
|
|
DOCUSAURUS_COMMAND="npm run docusaurus -- docs:version"
|
|
|
|
# Set commit author
|
|
git config --global user.email "${AUTHOR_EMAIL}"
|
|
git config --global user.name "${AUTHOR_USERNAME}"
|
|
|
|
git clone https://${TOKEN}@${REPO_URL} fiber-docs
|
|
|
|
# Handle push event
|
|
if [ "$EVENT" == "push" ]; then
|
|
latest_commit=$(git rev-parse --short HEAD)
|
|
#log_output=$(git log --oneline ${BRANCH} HEAD~1..HEAD --name-status -- docs/)
|
|
#if [[ $log_output != "" ]]; then
|
|
cp -a docs/* fiber-docs/docs/${REPO_DIR}
|
|
#fi
|
|
|
|
# Handle release event
|
|
elif [ "$EVENT" == "release" ]; then
|
|
major_version="${TAG_NAME%%.*}"
|
|
|
|
# Form new version name
|
|
new_version="${major_version}.x"
|
|
|
|
cd fiber-docs/ || true
|
|
npm ci
|
|
|
|
# Check if contrib_versions.json exists and modify it if required
|
|
# if [[ -f $VERSION_FILE ]]; then
|
|
# jq --arg new_version "$new_version" 'del(.[] | select(. == $new_version))' $VERSION_FILE > temp.json && mv temp.json $VERSION_FILE
|
|
# fi
|
|
#
|
|
# # Run docusaurus versioning command
|
|
# $DOCUSAURUS_COMMAND "${new_version}"
|
|
#
|
|
# if [[ -f $VERSION_FILE ]]; then
|
|
# jq 'sort | reverse' ${VERSION_FILE} > temp.json && mv temp.json ${VERSION_FILE}
|
|
# fi
|
|
fi
|
|
|
|
# Push changes
|
|
cd fiber-docs/ || true
|
|
git add .
|
|
if [[ $EVENT == "push" ]]; then
|
|
git commit -m "Add docs from ${COMMIT_URL}/commit/${latest_commit}"
|
|
elif [[ $EVENT == "release" ]]; then
|
|
git commit -m "Sync docs for release ${COMMIT_URL}/releases/tag/${TAG_NAME}"
|
|
fi
|
|
|
|
MAX_RETRIES=5
|
|
DELAY=5
|
|
retry=0
|
|
|
|
while ((retry < MAX_RETRIES)); do
|
|
git push https://${TOKEN}@${REPO_URL} && break
|
|
retry=$((retry + 1))
|
|
git pull --rebase
|
|
sleep $DELAY
|
|
done
|
|
|
|
if ((retry == MAX_RETRIES)); then
|
|
echo "Failed to push after $MAX_RETRIES attempts. Exiting with 1."
|
|
exit 1
|
|
fi
|