taskotron: get rid for /task_output/ subdir in results URL (on dev)

This commit is contained in:
Kamil Páral 2018-03-01 13:19:32 +01:00
parent a78c239de5
commit 95c1989180
3 changed files with 76 additions and 1 deletions

View file

@ -244,12 +244,22 @@ factory.addStep(MasterShellCommand(command=["mkdir", '-m', '0755', Interpolate('
descriptionDone=['Create artifacs dir']))
# copy artifacts to master
{% if deployment_type in ['dev'] %}
factory.addStep(DirectoryUpload(slavesrc=Interpolate('/var/lib/taskotron/artifacts/%(prop:uuid)s/'),
masterdest=Interpolate('{{ public_artifacts_dir }}/%(prop:uuid)s/')))
{% else %}
factory.addStep(DirectoryUpload(slavesrc=Interpolate('/var/lib/taskotron/artifacts/%(prop:uuid)s/'),
masterdest=Interpolate('{{ public_artifacts_dir }}/%(prop:uuid)s/task_output')))
{% endif %}
# gzip artifacts
{% if deployment_type in ['dev'] %}
factory.addStep(MasterShellCommand(command=Interpolate('find {{ public_artifacts_dir }}/%(prop:uuid)s/ -type f -exec gzip {} \;'),
descriptionDone=['gzip artifacs dir content']))
{% else %}
factory.addStep(MasterShellCommand(command=Interpolate('find {{ public_artifacts_dir }}/%(prop:uuid)s/task_output/ -type f -exec gzip {} \;'),
descriptionDone=['gzip artifacs dir content']))
{% endif %}
{% if deployment_type in ['local'] %}
# copy taskotron log to master

View file

@ -15,7 +15,10 @@
- /srv/taskotron/artifacts
- name: copy artifacts httpd config
template: src=artifacts.conf.j2 dest=/etc/httpd/conf.d/artifacts.conf owner=root group=root
template: src={{ item }} dest=/etc/httpd/conf.d/artifacts.conf owner=root group=root
with_first_found:
- artifacts.conf.j2.{{ deployment_type }}
- artifacts.conf.j2
notify:
- reload httpd

View file

@ -0,0 +1,62 @@
Alias /artifacts {{ public_artifacts_dir }}
<Directory "{{ public_artifacts_dir }}">
Options +Indexes
IndexOptions +NameWidth=*
IndexOptions FancyIndexing
IndexOrderDefault Ascending Name
AllowOverride None
Require all granted
</Directory>
<Directory "{{ public_artifacts_dir }}/all">
Options -Indexes
</Directory>
<DirectoryMatch "^{{ public_artifacts_dir }}/all/(.+)/">
Options +Indexes
IndexOptions +NameWidth=*
AllowOverride None
Require all granted
</DirectoryMatch>
ExtFilterDefine gz-to-plain mode=output \
intype=application/x-gzip outtype=text/plain \
cmd="/bin/gunzip -c -"
ExtFilterDefine gz-to-html mode=output \
intype=application/x-gzip outtype=text/html \
cmd="/bin/gunzip -c -"
ExtFilterDefine gz-to-css mode=output \
intype=application/x-gzip outtype=text/css \
cmd="/bin/gunzip -c -"
<DirectoryMatch "^{{ public_artifacts_dir }}/all/(.+)/">
RewriteEngine on
RewriteCond "{{ public_artifacts_dir }}/all/$1/$2.gz" -f
RewriteCond "{{ public_artifacts_dir }}/all/$1/$2" !-f
RewriteRule "^{{ public_artifacts_dir }}/all/(.+)/(.*)$" "{{ public_artifacts_dir }}/all/$1/$2.gz"
# mod_deflate doesnt work as expected for some reason
# use custom filter instead
<FilesMatch "(?!html)">
SetOutputFilter gz-to-plain
</FilesMatch>
<FilesMatch "(?!css)">
SetOutputFilter gz-to-css
</FilesMatch>
<FilesMatch "(\.html\.gz|\.html)$">
SetOutputFilter gz-to-html
</FilesMatch>
# keep the mod_deflate for reference though
#AddEncoding x-gzip .gz
#SetOutputFilter INFLATE
#ForceType text/plain
</DirectoryMatch>