mirror of
https://github.com/YunoHost-Apps/ghost_ynh.git
synced 2024-09-03 19:16:02 +02:00
Merge pull request #164 from YunoHost-Apps/testing
This commit is contained in:
commit
67eff99fcc
11 changed files with 91 additions and 59 deletions
41
.github/workflows/updater.sh
vendored
41
.github/workflows/updater.sh
vendored
|
@ -14,14 +14,24 @@
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
# Fetching information
|
# Fetching information
|
||||||
current_version=$(cat manifest.json | jq -j '.version|split("~")[0]')
|
|
||||||
repo=$(cat manifest.json | jq -j '.upstream.code|split("https://github.com/")[1]')
|
|
||||||
# Some jq magic is needed, because the latest upstream release is not always the latest version (e.g. security patches for older versions)
|
# Some jq magic is needed, because the latest upstream release is not always the latest version (e.g. security patches for older versions)
|
||||||
version=$(curl --silent "https://api.github.com/repos/$repo/releases" | jq -r '.[] | select( .prerelease != true ) | .tag_name' | sort -V | tail -1)
|
|
||||||
assets=($(curl --silent "https://api.github.com/repos/$repo/releases" | jq -r '[ .[] | select(.tag_name=="'$version'").assets[].browser_download_url ] | join(" ") | @sh' | tr -d "'"))
|
|
||||||
|
|
||||||
|
current_version=$(cat manifest.json | jq -j '.version|split("~")[0]')
|
||||||
|
|
||||||
|
# CORE
|
||||||
|
# repo=$(cat manifest.json | jq -j '.upstream.code|split("https://github.com/")[1]')
|
||||||
|
repo="TryGhost/Ghost"
|
||||||
|
version=$(curl --silent "https://api.github.com/repos/$repo/releases" | jq -r '.[] | select( .prerelease != true ) | .tag_name' | sort -V | tail -1)
|
||||||
|
assets=($(curl --silent "https://api.github.com/repos/$repo/releases" | jq -r '[ .[] | select(.tag_name=="'$version'").zipball_url ] | join(" ") | @sh' | tr -d "'"))
|
||||||
|
|
||||||
|
# ADMIN
|
||||||
admin_repo="TryGhost/Admin"
|
admin_repo="TryGhost/Admin"
|
||||||
assets+=("https://github.com/TryGhost/Admin/archive/refs/tags/${version}.zip")
|
assets+=("https://github.com/$admin_repo/archive/refs/tags/${version}.zip")
|
||||||
|
|
||||||
|
# THEME
|
||||||
|
theme_repo="TryGhost/Casper"
|
||||||
|
theme_version=$(curl --silent "https://api.github.com/repos/$theme_repo/releases" | jq -r '.[] | select( .prerelease != true ) | .tag_name' | sort -V | tail -1)
|
||||||
|
assets+=("https://github.com/$theme_repo/archive/refs/tags/${theme_version}.zip")
|
||||||
|
|
||||||
# Later down the script, we assume the version has only digits and dots
|
# Later down the script, we assume the version has only digits and dots
|
||||||
# Sometimes the release name starts with a "v", so let's filter it out.
|
# Sometimes the release name starts with a "v", so let's filter it out.
|
||||||
|
@ -67,12 +77,15 @@ echo "Handling asset at $asset_url"
|
||||||
# Here we base the source file name upon a unique keyword in the assets url (admin vs. update)
|
# Here we base the source file name upon a unique keyword in the assets url (admin vs. update)
|
||||||
# Leave $src empty to ignore the asset
|
# Leave $src empty to ignore the asset
|
||||||
case $asset_url in
|
case $asset_url in
|
||||||
*"Ghost-"*".zip")
|
*"/Ghost/"*)
|
||||||
src="app"
|
src="app"
|
||||||
;;
|
;;
|
||||||
*"/Admin/"*)
|
*"/Admin/"*)
|
||||||
src="admin"
|
src="admin"
|
||||||
;;
|
;;
|
||||||
|
*"/Casper/"*)
|
||||||
|
src="casper"
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
src=""
|
src=""
|
||||||
;;
|
;;
|
||||||
|
@ -92,20 +105,13 @@ checksum=$(sha256sum "$tempdir/$filename" | head -c 64)
|
||||||
# Delete temporary directory
|
# Delete temporary directory
|
||||||
rm -rf $tempdir
|
rm -rf $tempdir
|
||||||
|
|
||||||
# Get extension
|
|
||||||
if [[ $filename == *.tar.gz ]]; then
|
|
||||||
extension=tar.gz
|
|
||||||
else
|
|
||||||
extension=${filename##*.}
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Rewrite source file
|
# Rewrite source file
|
||||||
cat <<EOT > conf/$src.src
|
cat <<EOT > conf/$src.src
|
||||||
SOURCE_URL=$asset_url
|
SOURCE_URL=$asset_url
|
||||||
SOURCE_SUM=$checksum
|
SOURCE_SUM=$checksum
|
||||||
SOURCE_SUM_PRG=sha256sum
|
SOURCE_SUM_PRG=sha256sum
|
||||||
SOURCE_FORMAT=$extension
|
SOURCE_FORMAT=zip
|
||||||
SOURCE_IN_SUBDIR=false
|
SOURCE_IN_SUBDIR=true
|
||||||
EOT
|
EOT
|
||||||
echo "... conf/$src.src updated"
|
echo "... conf/$src.src updated"
|
||||||
|
|
||||||
|
@ -117,8 +123,8 @@ fi
|
||||||
|
|
||||||
done
|
done
|
||||||
|
|
||||||
if [ $count == 0 ]; then
|
if [ $count -lt 2 ]; then
|
||||||
echo "::warning ::None of the assets were processed."
|
echo "::warning ::Some assets were not processed."
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -141,4 +147,3 @@ echo "$(jq -s --indent 4 ".[] | .version = \"$version~ynh1\"" manifest.json)" >
|
||||||
# The Action will proceed only if the PROCEED environment variable is set to true
|
# The Action will proceed only if the PROCEED environment variable is set to true
|
||||||
echo "PROCEED=true" >> $GITHUB_ENV
|
echo "PROCEED=true" >> $GITHUB_ENV
|
||||||
exit 0
|
exit 0
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,8 @@ If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/in
|
||||||
|
|
||||||
Publishing, memberships, subscriptions and newsletters platform
|
Publishing, memberships, subscriptions and newsletters platform
|
||||||
|
|
||||||
**Shipped version:** 5.2.2~ynh1
|
**Shipped version:** 5.8.3~ynh1
|
||||||
|
|
||||||
|
|
||||||
## Screenshots
|
## Screenshots
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,8 @@ Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour
|
||||||
|
|
||||||
Plateforme d'édition, d'adhésions, d'abonnements et de newsletters
|
Plateforme d'édition, d'adhésions, d'abonnements et de newsletters
|
||||||
|
|
||||||
**Version incluse :** 5.2.2~ynh1
|
**Version incluse :** 5.8.3~ynh1
|
||||||
|
|
||||||
|
|
||||||
## Captures d'écran
|
## Captures d'écran
|
||||||
|
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
SOURCE_URL=https://github.com/TryGhost/Admin/archive/refs/tags/v5.2.2.zip
|
|
||||||
SOURCE_SUM=20f1aea329107ad1ef9c128b6727a73316a2ff3dfdf5f143735506d6a988d249
|
|
||||||
SOURCE_SUM_PRG=sha256sum
|
|
||||||
SOURCE_FORMAT=zip
|
|
||||||
SOURCE_IN_SUBDIR=false
|
|
|
@ -1,5 +1,5 @@
|
||||||
SOURCE_URL=https://github.com/TryGhost/Ghost/releases/download/v4.40.0/Ghost-4.40.0.zip
|
SOURCE_URL=https://api.github.com/repos/TryGhost/Ghost/zipball/v5.8.3
|
||||||
SOURCE_SUM=c0ad20deb45984e70211f50e31271c9a204cc7eba3f9488a115d3f6bcc0fe3d7
|
SOURCE_SUM=557c39864483fff00beeb60e27d84915e184845c69db3be83dcd7a65f327d497
|
||||||
SOURCE_SUM_PRG=sha256sum
|
SOURCE_SUM_PRG=sha256sum
|
||||||
SOURCE_FORMAT=zip
|
SOURCE_FORMAT=zip
|
||||||
SOURCE_IN_SUBDIR=false
|
SOURCE_IN_SUBDIR=true
|
||||||
|
|
5
conf/casper.src
Normal file
5
conf/casper.src
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
SOURCE_URL=https://github.com/TryGhost/Casper/archive/refs/tags/v5.2.3.zip
|
||||||
|
SOURCE_SUM=49d57ce078a2775f39d019ed74fa4ae9476e95fa35b02593c726c0ea25fe49df
|
||||||
|
SOURCE_SUM_PRG=sha256sum
|
||||||
|
SOURCE_FORMAT=zip
|
||||||
|
SOURCE_IN_SUBDIR=true
|
|
@ -9,7 +9,8 @@ Group=__APP__
|
||||||
WorkingDirectory=__FINALPATH__
|
WorkingDirectory=__FINALPATH__
|
||||||
Environment="__YNH_NODE_LOAD_PATH__"
|
Environment="__YNH_NODE_LOAD_PATH__"
|
||||||
Environment="NODE_ENV=production"
|
Environment="NODE_ENV=production"
|
||||||
ExecStart=__YNH_NODE__ index.js run
|
#ExecStart=__YNH_NODE__ core/index.js run
|
||||||
|
ExecStart=yarn start
|
||||||
Restart=always
|
Restart=always
|
||||||
|
|
||||||
# Sandboxing options to harden security
|
# Sandboxing options to harden security
|
||||||
|
|
|
@ -6,13 +6,14 @@
|
||||||
"en": "Publishing, memberships, subscriptions and newsletters platform",
|
"en": "Publishing, memberships, subscriptions and newsletters platform",
|
||||||
"fr": "Plateforme d'édition, d'adhésions, d'abonnements et de newsletters"
|
"fr": "Plateforme d'édition, d'adhésions, d'abonnements et de newsletters"
|
||||||
},
|
},
|
||||||
"version": "5.2.2~ynh1",
|
"version": "5.8.3~ynh1",
|
||||||
"url": "https://ghost.org/",
|
"url": "https://ghost.org/",
|
||||||
"upstream": {
|
"upstream": {
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"website": "https://ghost.org/",
|
"website": "https://ghost.org/",
|
||||||
"admindoc": "https://ghost.org/help/",
|
"admindoc": "https://ghost.org/help/",
|
||||||
"code": "https://github.com/TryGhost/Ghost"
|
"code": "https://github.com/TryGhost/Ghost",
|
||||||
|
"cpe": "cpe:2.3:a:ghost:ghost"
|
||||||
},
|
},
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"maintainer": {
|
"maintainer": {
|
||||||
|
@ -50,4 +51,4 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -124,9 +124,9 @@ fi
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Modifying a config file..."
|
ynh_script_progression --message="Modifying a config file..."
|
||||||
|
|
||||||
ynh_add_config --template="../conf/config.production.json" --destination="$final_path/config.production.json"
|
ynh_add_config --template="../conf/config.production.json" --destination="$final_path/ghost/core/config.production.json"
|
||||||
chmod 400 "$final_path/config.production.json"
|
chmod 400 "$final_path/ghost/core/config.production.json"
|
||||||
chown $app:$app "$final_path/config.production.json"
|
chown $app:$app "$final_path/ghost/core/config.production.json"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# GENERIC FINALISATION
|
# GENERIC FINALISATION
|
||||||
|
|
|
@ -99,9 +99,9 @@ ynh_app_setting_set --app=$app --key=final_path --value=$final_path
|
||||||
# Download, check integrity, uncompress and patch the source from app.src
|
# Download, check integrity, uncompress and patch the source from app.src
|
||||||
ynh_setup_source --dest_dir="$final_path"
|
ynh_setup_source --dest_dir="$final_path"
|
||||||
|
|
||||||
# Download, check integrity, uncompress and patch the source from admin.src
|
# Download, check integrity, uncompress and patch the source from casper.src
|
||||||
mkdir -p $final_path/core/client/Admin
|
mkdir -p $final_path/ghost/core/content/themes/casper
|
||||||
ynh_setup_source --dest_dir="$final_path/core/client/Admin" --source_id="admin"
|
ynh_setup_source --dest_dir="$final_path/ghost/core/content/themes/casper" --source_id="casper"
|
||||||
|
|
||||||
chmod 750 "$final_path"
|
chmod 750 "$final_path"
|
||||||
chmod -R o-rwx "$final_path"
|
chmod -R o-rwx "$final_path"
|
||||||
|
@ -122,9 +122,13 @@ ynh_add_nginx_config
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Modifying a config file..."
|
ynh_script_progression --message="Modifying a config file..."
|
||||||
|
|
||||||
ynh_add_config --template="../conf/config.production.json" --destination="$final_path/config.production.json"
|
ynh_add_config --template="../conf/config.production.json" --destination="$final_path/ghost/core/config.production.json"
|
||||||
chmod 400 "$final_path/config.production.json"
|
chmod 400 "$final_path/ghost/core/config.production.json"
|
||||||
chown $app:$app "$final_path/config.production.json"
|
chown $app:$app "$final_path/ghost/core/config.production.json"
|
||||||
|
|
||||||
|
touch "$final_path/.yarnrc.yml"
|
||||||
|
chmod 400 "$final_path/.yarnrc.yml"
|
||||||
|
chown $app:$app "$final_path/.yarnrc.yml"
|
||||||
|
|
||||||
#==============================================
|
#==============================================
|
||||||
# BUILD GHOST
|
# BUILD GHOST
|
||||||
|
@ -133,10 +137,10 @@ ynh_script_progression --message="Building Ghost... (this will take some time an
|
||||||
|
|
||||||
pushd "$final_path"
|
pushd "$final_path"
|
||||||
ynh_use_nodejs
|
ynh_use_nodejs
|
||||||
ynh_exec_warn_less ynh_exec_as $app $ynh_node_load_PATH yarn install --non-interactive
|
# Longer network timeouts for slow systems; see https://github.com/yarnpkg/yarn/issues/8242
|
||||||
ynh_exec_warn_less ynh_exec_as $app $ynh_node_load_PATH $final_path/node_modules/.bin/knex-migrator init
|
ynh_exec_warn_less ynh_exec_as $app $ynh_node_load_PATH HOME="$final_path" yarn config set network-timeout 600000
|
||||||
ynh_exec_warn_less ynh_exec_as $app $ynh_node_load_PATH $final_path/node_modules/.bin/grunt symlink
|
ynh_exec_warn_less ynh_exec_as $app $ynh_node_load_PATH HOME="$final_path" yarn add knex-migrator ember-cli --dev --ignore-workspace-root-check --non-interactive
|
||||||
ynh_exec_warn_less ynh_exec_as $app $ynh_node_load_PATH $final_path/node_modules/.bin/grunt init --force
|
ynh_exec_warn_less ynh_exec_as $app $ynh_node_load_PATH HOME="$final_path" yarn setup # catch-all command provided by Ghost that handles all the setup
|
||||||
popd
|
popd
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
|
@ -92,10 +92,24 @@ then
|
||||||
tmpdir="$(mktemp -d)"
|
tmpdir="$(mktemp -d)"
|
||||||
|
|
||||||
# Copy the admin saved settings from final path to tmp directory
|
# Copy the admin saved settings from final path to tmp directory
|
||||||
cp -ar "$final_path/config.production.json" "$tmpdir/config.production.json"
|
if [ -f "$final_path/config.production.json" ]
|
||||||
|
then
|
||||||
|
# Old versions of Ghost store it here
|
||||||
|
cp -ar "$final_path/config.production.json" "$tmpdir/config.production.json"
|
||||||
|
else
|
||||||
|
# New versions of Ghost store it here
|
||||||
|
cp -ar "$final_path/ghost/core/config.production.json" "$tmpdir/config.production.json"
|
||||||
|
fi
|
||||||
|
|
||||||
# Backup the content folder to the temp dir
|
# Backup the content folder to the temp dir
|
||||||
cp -ar "$final_path/content" "$tmpdir/content"
|
if [ -f "$final_path/config.production.json" ]
|
||||||
|
then
|
||||||
|
# Old versions of Ghost store it here
|
||||||
|
cp -ar "$final_path/content" "$tmpdir/content"
|
||||||
|
else
|
||||||
|
# New versions of Ghost store it here
|
||||||
|
cp -ar "$final_path/ghost/core/content" "$tmpdir/content"
|
||||||
|
fi
|
||||||
|
|
||||||
# Remove the app directory securely
|
# Remove the app directory securely
|
||||||
ynh_secure_remove --file=$final_path
|
ynh_secure_remove --file=$final_path
|
||||||
|
@ -103,15 +117,15 @@ then
|
||||||
# Download, check integrity, uncompress and patch the source from app.src
|
# Download, check integrity, uncompress and patch the source from app.src
|
||||||
ynh_setup_source --dest_dir=$final_path
|
ynh_setup_source --dest_dir=$final_path
|
||||||
|
|
||||||
# Download, check integrity, uncompress and patch the source from admin.src
|
# Download, check integrity, uncompress and patch the source from casper.src
|
||||||
mkdir -p $final_path/core/client/Admin
|
mkdir -p $final_path/content/themes/casper
|
||||||
ynh_setup_source --dest_dir="$final_path/core/client/Admin" --source_id="admin"
|
ynh_setup_source --dest_dir="$final_path/ghost/core/content/themes/casper" --source_id="casper"
|
||||||
|
|
||||||
# Copy the admin saved settings from tmp directory to final path
|
# Copy the admin saved settings from tmp directory to final path
|
||||||
cp -ar "$tmpdir/config.production.json" "$final_path/config.production.json"
|
cp -ar "$tmpdir/config.production.json" "$final_path/ghost/core/config.production.json"
|
||||||
|
|
||||||
# Copy content folder back to the final_path
|
# Copy content folder back to the final_path
|
||||||
cp -ar "$tmpdir/content" "${final_path}"
|
cp -ar "$tmpdir/content" "${final_path}/ghost/core"
|
||||||
|
|
||||||
# Remove the tmp directory securely
|
# Remove the tmp directory securely
|
||||||
ynh_secure_remove --file="$tmpdir"
|
ynh_secure_remove --file="$tmpdir"
|
||||||
|
@ -149,9 +163,13 @@ ynh_install_extra_app_dependencies --repo="deb https://dl.yarnpkg.com/debian/ st
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Modifying a config file..."
|
ynh_script_progression --message="Modifying a config file..."
|
||||||
|
|
||||||
ynh_add_config --template="../conf/config.production.json" --destination="$final_path/config.production.json"
|
ynh_add_config --template="../conf/config.production.json" --destination="$final_path/ghost/core/config.production.json"
|
||||||
chmod 400 "$final_path/config.production.json"
|
chmod 400 "$final_path/ghost/core/config.production.json"
|
||||||
chown $app:$app "$final_path/config.production.json"
|
chown $app:$app "$final_path/ghost/core/config.production.json"
|
||||||
|
|
||||||
|
touch "$final_path/.yarnrc.yml"
|
||||||
|
chmod 400 "$final_path/.yarnrc.yml"
|
||||||
|
chown $app:$app "$final_path/.yarnrc.yml"
|
||||||
|
|
||||||
#==============================================
|
#==============================================
|
||||||
# BUILD GHOST
|
# BUILD GHOST
|
||||||
|
@ -162,10 +180,11 @@ then
|
||||||
ynh_script_progression --message="Building Ghost... (this will take some time and resources!)"
|
ynh_script_progression --message="Building Ghost... (this will take some time and resources!)"
|
||||||
|
|
||||||
pushd "$final_path"
|
pushd "$final_path"
|
||||||
ynh_exec_warn_less ynh_exec_as $app $ynh_node_load_PATH yarn install --non-interactive
|
# Longer network timeouts for slow systems; see https://github.com/yarnpkg/yarn/issues/8242
|
||||||
ynh_exec_warn_less ynh_exec_as $app $ynh_node_load_PATH $final_path/node_modules/.bin/knex-migrator init
|
ynh_exec_warn_less ynh_exec_as $app $ynh_node_load_PATH HOME="$final_path" yarn config set network-timeout 600000
|
||||||
ynh_exec_warn_less ynh_exec_as $app $ynh_node_load_PATH $final_path/node_modules/.bin/grunt symlink
|
ynh_exec_warn_less ynh_exec_as $app $ynh_node_load_PATH HOME="$final_path" yarn install --non-interactive
|
||||||
ynh_exec_warn_less ynh_exec_as $app $ynh_node_load_PATH $final_path/node_modules/.bin/grunt init --force
|
ynh_exec_warn_less ynh_exec_as $app $ynh_node_load_PATH HOME="$final_path" yarn add knex-migrator ember-cli --dev --ignore-workspace-root-check --non-interactive
|
||||||
|
ynh_exec_warn_less ynh_exec_as $app $ynh_node_load_PATH HOME="$final_path" yarn setup
|
||||||
popd
|
popd
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue