77 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			77 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
 |