[ 
https://issues.apache.org/jira/browse/AIRAVATA-3284?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Marcus Christie resolved AIRAVATA-3284.
---------------------------------------
    Resolution: Fixed

> Ansible: clean up past built CSS/JS files
> -----------------------------------------
>
>                 Key: AIRAVATA-3284
>                 URL: https://issues.apache.org/jira/browse/AIRAVATA-3284
>             Project: Airavata
>          Issue Type: Bug
>          Components: Django Portal
>            Reporter: Marcus Christie
>            Assignee: Marcus Christie
>            Priority: Major
>         Attachments: remove_old_js_css_files.py
>
>
> Each time the CSS/JS code is built for the Django apps, they get created with 
> a checksum extension added. For example 
> {{/static/django_airavata_workspace/dist/js/dashboard.567f67c4.js}}.
> Overtime this accumulate if these files aren't removed. This issue is to 
> update the Ansible deploy to clean these up.
> Care has to be taken since during a deploy the browsers of current users may 
> be requesting the older checksum of the file.
> h5. Proposal
> - in addition to the current task that rsyncs the entire django portal 
> checkout and build, separately rsync each CSS/JS dist directory with it 
> configured to delete files on the destination that aren't there in the 
> source. This will clean up multiple checksum files in build directory.
> - In addition to the build directory, there is also the static/ directory 
> into which the collectstatic task collects the built checksum files. This 
> needs to be cleaned up as well. This is a little trickier, as mentioned 
> above, because you don't want to delete a file here that is needed by a 
> current user during the deploy.  Instead we can add a task to delete any 
> files that haven't been accessed in, say, more than 30 days.
> -- there's a slight chance this can cause an issue if a CSS/JS file hasn't 
> been accessed in more than 30 days simply because there hasn't been any 
> traffic to the portal in that time. That's why the delete task should run 
> before collectstatic runs since collectstatic only copies files that have 
> changed and there may be more than 30 days between some of these files having 
> any changes.
> h5. TODO
> - [x] restore building JS source maps - these were turned off to save some 
> space 
> https://github.com/apache/airavata-django-portal/commit/8377d7724cb0b7b6c40b05fccf1ad5ab9e79a914
> - [ ] sourcemap files are ending up almost 44MB for a single Django portal. 
> Probably we don't need  sourcemap for the chunk-vendors, should we exclude it 
> from the deploy? Maybe just turn off production sourcemaps?



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to