canvas-lms/Dockerfile.jenkins-cache

125 lines
4.1 KiB
Docker

# syntax = starlord.inscloudgate.net/jenkins/dockerfile:1.0-experimental
FROM starlord.inscloudgate.net/jenkins/core:focal
SHELL ["/usr/bin/bash", "-c"]
WORKDIR /tmp/src
RUN --mount=target=/tmp/src \
mkdir -p /tmp/dst && \
shopt -s globstar && \
tar --sort=name --mtime='1970-01-01' --owner=0 --group=0 --numeric-owner -cf - \
--exclude='vendor/qti_migration_tool' \
config/canvas_rails_switcher.rb \
Gemfile \
Gemfile.d \
gems/**/Gemfile \
gems/**/*.gemspec \
gems/**/gem_version.rb \
gems/**/version.rb \
gems/plugins/**/Gemfile.d \
engines/**/Gemfile \
engines/**/*.gemspec \
engines/**/version.rb \
vendor \
\
| tee /tmp/dst/ruby-runner.tar | md5sum > /tmp/dst/ruby-runner.tar.md5 && \
\
tar --sort=name --mtime='1970-01-01' --owner=0 --group=0 --numeric-owner -cf - \
script/fix_inst_esm.js \
package.json \
yarn.lock \
gems/plugins/**/package.json \
ui/engine/**/package.json \
ui/shared/**/package.json \
packages/**/package.json \
\
| tee /tmp/dst/yarn-runner.tar | md5sum > /tmp/dst/yarn-runner.tar.md5 && \
\
tar --sort=name --mtime='1970-01-01' --owner=0 --group=0 --numeric-owner -cf - \
ui/engine \
packages \
\
| tee /tmp/dst/webpack-builder.tar | md5sum > /tmp/dst/webpack-builder.tar.md5 && \
\
tar --sort=name --mtime='1970-01-01' --owner=0 --group=0 --numeric-owner -cf - \
bin \
config/environments \
# This is intentionally only a single-level directory - and really should be cut down more later.
gems/*/lib \
lib/canvas/cdn \
lib/rake \
lib/tasks \
ui-build \
\
config/application.rb \
config/boot.rb \
config/brandable_css.yml \
config/browsers.yml \
config/canvas_rails_switcher.rb \
config/environment.rb \
config/initializers/json.rb \
config/initializers/revved_asset_urls.rb \
db/migrate/*_regenerate_brand_files_based_on_new_defaults_*.rb \
gems/plugins/.i18n* \
lib/brandable_css.rb \
lib/canvas_logger.rb \
lib/logging_filter.rb \
lib/request_cache.rb \
lib/temp_cache.rb \
lib/canvas/cdn.rb \
lib/base/canvas/reloader.rb \
.i18nignore \
.i18nrc \
Rakefile \
gulpfile.js \
webpack.config.js \
\
| tee /tmp/dst/webpack-runner-dependencies.tar | md5sum > /tmp/dst/webpack-runner-dependencies.tar.md5 && \
\
tar --sort=name --mtime='1970-01-01' --owner=0 --group=0 --numeric-owner -cf - \
--exclude='**/__mocks__' \
--exclude='**/__tests__' \
app/stylesheets \
config/locales \
gems/**/config/locales \
gems/plugins/**/app/coffeescripts \
gems/plugins/**/app/jsx \
gems/plugins/**/app/stylesheets \
gems/plugins/**/app/views/jst \
gems/plugins/**/public \
public \
ui \
\
| tee /tmp/dst/webpack-runner.tar | md5sum > /tmp/dst/webpack-runner.tar.md5 && \
\
tar --sort=name --mtime='1970-01-01' --owner=0 --group=0 --numeric-owner -cf - \
app/stylesheets \
config/brandable_css.yml \
config/browsers.yml \
gems/plugins/**/app/coffeescripts \
gems/plugins/**/app/jsx \
gems/plugins/**/app/stylesheets \
gems/plugins/**/public \
gems/plugins/**/spec_canvas/coffeescripts \
jest \
packages \
public \
spec/coffeescripts \
spec/javascripts \
spec/selenium/helpers/jquery.simulate.js \
tmp \
ui \
ui-build \
jest.config.js \
karma.conf.js \
package.json \
tsconfig.json \
yarn.lock \
\
| tee /tmp/dst/js.tar | md5sum > /tmp/dst/js.tar.md5 && \
touch /tmp/dst/environment.sh && \
echo "RUBY_RUNNER_MD5=$(cat /tmp/dst/ruby-runner.tar.md5 | cut -d' ' -f1)" >> /tmp/dst/environment.sh && \
echo "YARN_RUNNER_MD5=$(cat /tmp/dst/yarn-runner.tar.md5 | cut -d' ' -f1)" >> /tmp/dst/environment.sh && \
echo "WEBPACK_BUILDER_MD5=$(cat /tmp/dst/webpack-builder.tar.md5 | cut -d' ' -f1)" >> /tmp/dst/environment.sh && \
echo "WEBPACK_RUNNER_MD5=$(cat /tmp/dst/webpack-runner.tar.md5 | cut -d' ' -f1)" >> /tmp/dst/environment.sh && \
echo "WEBPACK_RUNNER_DEPENDENCIES_MD5=$(cat /tmp/dst/webpack-runner-dependencies.tar.md5 | cut -d' ' -f1)" >> /tmp/dst/environment.sh