76 lines
1.8 KiB
Bash
Executable file
76 lines
1.8 KiB
Bash
Executable file
path_public_dir="public"
|
|
path_tmp="tmp"
|
|
path_dest="$path_tmp/startup_css_assets"
|
|
glob_css_dest="$path_dest/application*.css"
|
|
glob_css_src="$path_public_dir/assets/application*.css"
|
|
should_clean=false
|
|
|
|
should_force() {
|
|
$1=="force"
|
|
}
|
|
|
|
has_dest_already() {
|
|
find $glob_css_dest -quit
|
|
}
|
|
|
|
has_src_already() {
|
|
find $glob_css_src -quit
|
|
}
|
|
|
|
compile_assets() {
|
|
# We need to build the same test bundle that is built in CI
|
|
RAILS_ENV=test bundle exec rake rake:assets:precompile
|
|
}
|
|
|
|
clean_assets() {
|
|
bundle exec rake rake:assets:clobber
|
|
}
|
|
|
|
copy_assets() {
|
|
rm -rf $path_dest
|
|
mkdir $path_dest
|
|
cp $glob_css_src $path_dest
|
|
}
|
|
|
|
echo "-----------------------------------------------------------"
|
|
echo "If you are run into any issues with Startup CSS generation,"
|
|
echo "please check out the feedback issue:"
|
|
echo ""
|
|
echo "https://gitlab.com/gitlab-org/gitlab/-/issues/331812"
|
|
echo "-----------------------------------------------------------"
|
|
|
|
if [ ! -e $path_public_dir ]; then
|
|
echo "Could not find '$path_public_dir/'. This script must be run in the root directory of the gitlab project."
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -e $path_tmp ]; then
|
|
echo "Could not find '$path_tmp/'. This script must be run in the root directory of the gitlab project."
|
|
exit 1
|
|
fi
|
|
|
|
if [ "$1" != "force" ] && has_dest_already; then
|
|
echo "Already found assets for '$glob_css_dest'. Did you want to run this script with 'force' argument?"
|
|
exit 0
|
|
fi
|
|
|
|
# If we are in CI, don't recompile things...
|
|
if [ -n "$CI" ]; then
|
|
if ! has_src_already; then
|
|
echo "Could not find '$glob_css_src'. Expected these artifacts to be generated by CI pipeline."
|
|
exit 1
|
|
fi
|
|
elif has_src_already; then
|
|
echo "Found '$glob_css_src'. Skipping compile assets..."
|
|
else
|
|
echo "Starting compile assets process..."
|
|
compile_assets
|
|
should_clean=true
|
|
fi
|
|
|
|
copy_assets
|
|
|
|
if $should_clean; then
|
|
echo "Starting cleanup..."
|
|
clean_assets
|
|
fi
|