mirror of https://github.com/oxen-io/session-ios
				
				
				
			
			You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			60 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Markdown
		
	
		
		
			
		
	
	
			60 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Markdown
		
	
| 
											2 years ago
										 | # Xcode simulator keepalive/cleanup
 | ||
|  | 
 | ||
|  | Keep-alive directory for simulators managed by xcode that may be created during | ||
|  | drone CI jobs. | ||
|  | 
 | ||
|  | These scripts are placed in a /Users/$USER/sim-keepalive directory; keepalive.sh | ||
|  | is called from a CI job to set up a keepalive, while cleanup.py is intended to | ||
|  | be run once/minute via cron to deal with cleaning up old simulators from killed | ||
|  | CI pipelines. | ||
|  | 
 | ||
|  | The directory itself will have files created that look like a UDID and are | ||
|  | checked periodically (by cleanup.py); any that have a timestamp less than the | ||
|  | current time will be deleted. | ||
|  | 
 | ||
|  | ## Simple timeout
 | ||
|  | 
 | ||
|  | A CI job can invoke the keepalive.sh script with a UDID value and a time | ||
|  | interval: the keepalive script will set up a file that will keep the simulator | ||
|  | alive for the given interval, then deletes it once the interval is passed.  The | ||
|  | script exits immediately in this mode.  Shortly (up to a minute) after the | ||
|  | timestamp is reached the simulator device will be deleted (if it still exists). | ||
|  | For example: | ||
|  | 
 | ||
|  |     /Users/$USER/sim-keepalive/keepalive.sh $udid "5 minutes" | ||
|  | 
 | ||
|  | for a fixed 5-minute cleanup timeout. | ||
|  | 
 | ||
|  | ## Indefinite timeout
 | ||
|  | 
 | ||
|  | For a job where the precise time required isn't known or varies significantly | ||
|  | there is a script in this directory that provides a simple keep-alive script | ||
|  | that will create and periodically update the $udid file to keep the simulator | ||
|  | alive. | ||
|  | 
 | ||
|  | This is moderately more complex to set up as you must add a parallel job (using | ||
|  | `depends_on`) to the CI pipeline that runs the script for the duration of the | ||
|  | steps that require the simulator: | ||
|  | 
 | ||
|  |     /Users/$USER/sim-keepalive/keepalive.sh $udid | ||
|  | 
 | ||
|  | the script periodically touches the sim-keepalive/$udid to keep the simulator | ||
|  | alive as long as the keep alive script runs.  To stop the keepalive (i.e. when | ||
|  | the task is done) simply run: | ||
|  | 
 | ||
|  | 	rm /Users/$USER/sim-keepalive/$udid | ||
|  | 
 | ||
|  | which will cause the keepalive script to immediately shut down the simulator | ||
|  | with the given UDID and then exits the keepalive script. | ||
|  | 
 | ||
|  | If the pipeline gets killed, the keepalive script stops updating the file and | ||
|  | the simulator will be killed by the periodic cleanup within the next couple | ||
|  | minutes. | ||
|  | 
 | ||
|  | # crontab entry
 | ||
|  | 
 | ||
|  | A crontab entry must be added to run the CI user's crontab to periodically run | ||
|  | cleanup.py: | ||
|  | 
 | ||
|  |     * * * * * ~/sim-keepalive/cleanup.py |