mirror of
https://github.com/laurent22/joplin.git
synced 2024-12-24 10:27:10 +02:00
105 lines
3.0 KiB
Bash
Executable File
105 lines
3.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# Setup environment
|
|
# ------------------------------------------------------------------------------
|
|
|
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
SCRIPT_NAME=`basename "$0"`
|
|
JOPLIN_ROOT_DIR="$SCRIPT_DIR/../.."
|
|
JOPLIN_WEBSITE_ROOT_DIR="$JOPLIN_ROOT_DIR/../joplin-website"
|
|
|
|
echo "IS_CONTINUOUS_INTEGRATION=$IS_CONTINUOUS_INTEGRATION"
|
|
echo "GIT_USER_NAME=$GIT_USER_NAME"
|
|
|
|
if [[ "$IS_CONTINUOUS_INTEGRATION" == "1" ]]; then
|
|
echo "Running on CI - setting up Git username and email"
|
|
git config --global user.email "$GIT_USER_EMAIL"
|
|
git config --global user.name "$GIT_USER_NAME"
|
|
else
|
|
echo "*Not* running on CI - using the global Git username and email"
|
|
fi
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# Update the Markdown files inside the Joplin directory. This is for example the
|
|
# download links README.md or the desktop app changelog.
|
|
# ------------------------------------------------------------------------------
|
|
|
|
cd "$JOPLIN_ROOT_DIR"
|
|
|
|
# Will fail if there's any local change in the repo, which is what we want
|
|
git checkout dev
|
|
git pull --rebase
|
|
|
|
yarn install
|
|
|
|
# Historically, that was to clean npm's package-lock mess, but it should no
|
|
# longer be necessary for Yarn. Leaving it anyway since we don't want anything
|
|
# to change after installation.
|
|
git reset --hard
|
|
|
|
JOPLIN_GITHUB_OAUTH_TOKEN=$JOPLIN_GITHUB_OAUTH_TOKEN yarn updateMarkdownDoc
|
|
|
|
# Automatically update certain forum posts
|
|
yarn updateNews $DISCOURSE_API_KEY $DISCOURSE_USERNAME
|
|
yarn postPreReleasesToForum $DISCOURSE_API_KEY $DISCOURSE_USERNAME
|
|
|
|
# We commit and push the change. It will be a noop if nothing was actually
|
|
# changed
|
|
|
|
git add -A
|
|
|
|
git commit -m "Doc: Auto-update documentation
|
|
|
|
Auto-updated using $SCRIPT_NAME" || true
|
|
|
|
git pull --rebase
|
|
git push
|
|
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# Build and deploy the website
|
|
# ------------------------------------------------------------------------------
|
|
|
|
cd "$JOPLIN_WEBSITE_ROOT_DIR"
|
|
git checkout master
|
|
git pull --rebase
|
|
|
|
cd "$JOPLIN_ROOT_DIR"
|
|
CROWDIN_PERSONAL_TOKEN="$CROWDIN_PERSONAL_TOKEN" yarn crowdinDownload
|
|
yarn buildWebsite
|
|
|
|
cd "$JOPLIN_WEBSITE_ROOT_DIR"
|
|
|
|
# Copy and update the plugin website.
|
|
#
|
|
# For security, the plugin website is built in a separate job without access to SSH
|
|
# keys. This file contains the built output of the other job.
|
|
#
|
|
# We apply this to the existing plugin website to prevent the changes from being overwritten.
|
|
BUILT_PLUGIN_WEBSITE_FILE="$JOPLIN_ROOT_DIR/../plugin-website.tar.gz"
|
|
|
|
if [ -f "$BUILT_PLUGIN_WEBSITE_FILE" ]; then
|
|
cd "$JOPLIN_WEBSITE_ROOT_DIR/docs"
|
|
|
|
mkdir -p plugins
|
|
cd plugins
|
|
|
|
tar -xzvf "$BUILT_PLUGIN_WEBSITE_FILE"
|
|
else
|
|
echo "Not updating plugin website -- release ($BUILT_PLUGIN_WEBSITE_FILE) not present"
|
|
exit 1
|
|
fi
|
|
|
|
|
|
cd "$JOPLIN_WEBSITE_ROOT_DIR"
|
|
git add -A
|
|
git commit -m "Updated website
|
|
|
|
Auto-updated using $SCRIPT_NAME" || true
|
|
|
|
git pull --rebase
|
|
git push
|