recompilar gemas según la versión de alpine
de lo contrario los sitios que no hayan actualizado se van a romper
This commit is contained in:
parent
32803d8b44
commit
0922ee12ff
1 changed files with 15 additions and 22 deletions
37
Makefile
37
Makefile
|
@ -7,6 +7,8 @@ delegate := athshe
|
||||||
|
|
||||||
assets := package.json yarn.lock $(shell find app/assets/ app/javascript/ -type f)
|
assets := package.json yarn.lock $(shell find app/assets/ app/javascript/ -type f)
|
||||||
|
|
||||||
|
alpine_version := 3.12
|
||||||
|
|
||||||
public/assets-production: $(assets)
|
public/assets-production: $(assets)
|
||||||
rm -rf $@
|
rm -rf $@
|
||||||
RAILS_ENV=production bundle exec rake assets:precompile
|
RAILS_ENV=production bundle exec rake assets:precompile
|
||||||
|
@ -45,42 +47,33 @@ load:
|
||||||
../gems/:
|
../gems/:
|
||||||
mkdir -p $@
|
mkdir -p $@
|
||||||
|
|
||||||
ifeq ($(MAKECMDGOALS),convert-gems)
|
|
||||||
gem_dir := $(shell readlink -f ../gems)
|
gem_dir := $(shell readlink -f ../gems)
|
||||||
|
ifeq ($(MAKECMDGOALS),build-gems)
|
||||||
gems := $(shell bundle show --paths | xargs -I {} sh -c 'test -f {}/ext/*/extconf.rb && basename {}')
|
gems := $(shell bundle show --paths | xargs -I {} sh -c 'test -f {}/ext/*/extconf.rb && basename {}')
|
||||||
gems += $(shell bundle show --paths | xargs -I {} sh -c 'test -f {}/ext/extconf.rb && basename {}')
|
gems += $(shell bundle show --paths | xargs -I {} sh -c 'test -f {}/ext/extconf.rb && basename {}')
|
||||||
gems := $(patsubst %-x86_64-linux,%,$(gems))
|
gems := $(patsubst %,$(gem_dir)/cache/%.gem,$(gems))
|
||||||
gems_musl := $(patsubst %,$(gem_dir)/%-x86_64-linux-musl.gem,$(gems))
|
gems_musl := $(patsubst $(gem_dir)/cache/%.gem,$(gem_dir)/$(alpine_version)/%-x86_64-linux-musl.gem,$(gems))
|
||||||
gems_gnu := $(patsubst %,$(gem_dir)/%-x86_64-linux.gem,$(gems))
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$(gem_dir)/%-x86_64-linux-musl.gem:
|
$(gem_dir)/%-x86_64-linux-musl.gem:
|
||||||
docker run \
|
@docker run \
|
||||||
-v $(gem_dir):/srv/gems \
|
-v $(gem_dir):/srv/gems \
|
||||||
-v `readlink -f ~/.ccache`:/home/builder/.ccache \
|
-v `readlink -f ~/.ccache`:/home/builder/.ccache \
|
||||||
-e HTTP_BASIC_USER=$(HTTP_BASIC_USER) \
|
-e HTTP_BASIC_USER=$(HTTP_BASIC_USER) \
|
||||||
-e HTTP_BASIC_PASSWORD=$(HTTP_BASIC_PASSWORD) \
|
-e HTTP_BASIC_PASSWORD=$(HTTP_BASIC_PASSWORD) \
|
||||||
-e GEM=`echo $* | sed -re "s/-[^-]+$$//"` \
|
-e GEM=`echo $(notdir $*) | sed -re "s/-[^-]+$$//"` \
|
||||||
-e VERSION=`echo $* | sed -re "s/.*-([^-]+)$$/\1/"` \
|
-e VERSION=`echo $(notdir $*) | sed -re "s/.*-([^-]+)$$/\1/"` \
|
||||||
-e JOBS=2 \
|
-e JOBS=2 \
|
||||||
--rm \
|
--rm -it \
|
||||||
sutty/gem-compiler:latest
|
sutty/gem-compiler:latest || echo "No se pudo compilar $*"
|
||||||
|
|
||||||
$(gem_dir)/%-x86_64-linux.gem:
|
|
||||||
HTTP_BASIC_USER=$(HTTP_BASIC_USER) \
|
|
||||||
HTTP_BASIC_PASSWORD=$(HTTP_BASIC_PASSWORD) \
|
|
||||||
GEM=`echo $* | sed -re "s/-[^-]+$$//"` \
|
|
||||||
VERSION=`echo $* | sed -re "s/.*-([^-]+)$$/\1/"` && \
|
|
||||||
cd $(dir $@) && \
|
|
||||||
gem fetch --source=https://gems.sutty.nl --platform=ruby \
|
|
||||||
--version $${VERSION} $${GEM} && \
|
|
||||||
gem compile -V --prune $${GEM}-$${VERSION}.gem && \
|
|
||||||
gem inabox -o $@ \
|
|
||||||
--host https://$${HTTP_BASIC_USER}:$${HTTP_BASIC_PASSWORD}@gems.sutty.nl
|
|
||||||
|
|
||||||
# Compilar todas las gemas binarias y subirlas a gems.sutty.nl para que
|
# Compilar todas las gemas binarias y subirlas a gems.sutty.nl para que
|
||||||
# al crear el contenedor no tengamos que compilarlas cada vez
|
# al crear el contenedor no tengamos que compilarlas cada vez
|
||||||
convert-gems: $(gems_musl)
|
build-gems: $(gems_musl)
|
||||||
|
|
||||||
|
cached_gems = $(wildcard $(gem_dir)/cache/*.gem)
|
||||||
|
rebuild_gems = $(patsubst $(gem_dir)/cache/%.gem,$(gem_dir)/$(alpine_version)/%-x86_64-linux-musl.gem,$(cached_gems))
|
||||||
|
rebuild-gems: $(rebuild_gems)
|
||||||
|
|
||||||
dirs := $(patsubst %,root/%,data sites deploy public)
|
dirs := $(patsubst %,root/%,data sites deploy public)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue