Итак, другие ответы здесь в значительной степени проигнорировали ваш пост. Будем надеяться, что я не сделал то же самое.
Мне кажется, что вы хотите только кодировать базовое имя? Если это так, эта функция ad-hoc должна выполнить трюк:
function encode_basename($url) {
$url = explode('/', $url);
$base = array_pop($url);
return implode('/', $url) . '/' . urlencode($base);
}
//returns: http://www.example.com/Data/image/office-d%25C3%25B4n-s%25C3%25AC-%25C3%25A0.jpg
Решение должно было выполнить:
- restore_cache:
keys:
- v{{ .Environment.CACHE_VERSION }}-mix-cache-{{ .Branch }}-{{ checksum "mix.lock" }}
- restore_cache:
keys:
- v{{ .Environment.CACHE_VERSION }}-build-cache-{{ .Branch }}
- save_cache:
key: v{{ .Environment.CACHE_VERSION }}-mix-cache-{{ .Branch }}-{{ checksum "mix.lock" }}
paths: deps
- save_cache:
key: v{{ .Environment.CACHE_VERSION }}-build-cache-{{ .Branch }}
paths: _build
Отказ от ответственности: я сторонник разработчика CircleCI
Я вижу 1 проблему и одну потенциальную проблему здесь.
Во-первых, вы не хотите для сохранения кеша несколько раз для частичных ключей. Восстановление ключей кеша работает путем частичного согласования. Когда вы сохраняете кеш, используйте полное имя ключа один раз и все. Восстановление кеша будет в военном отношении соответствовать ему, когда это необходимо.
Во-вторых, поддерживает ли Elixir частичный кеш? Я не использую его сам, поэтому пока не знаю его достаточно хорошо. Если это не так, вы можете восстановить полный кеш-ключ, а не какие-либо частичные ключи.
Для моей первой точки:
- restore_cache:
keys:
- v1-mix-cache-{{ .Branch }}-{{ checksum "mix.lock" }}
- v1-mix-cache-{{ .Branch }}
- v1-mix-cache
- v1-build-cache-{{ .Branch }}
- v1-build-cache
- save_cache:
key: v1-mix-cache-{{ .Branch }}-{{ checksum "mix.lock" }}
paths: deps
- save_cache:
key: v1-build-cache-{{ .Branch }}
paths: _build
и для моей второй точки:
- restore_cache:
keys:
- v1-mix-cache-{{ .Branch }}-{{ checksum "mix.lock" }}
- v1-build-cache-{{ .Branch }}
- save_cache:
key: v1-mix-cache-{{ .Branch }}-{{ checksum "mix.lock" }}
paths: deps
- save_cache:
key: v1-build-cache-{{ .Branch }}
paths: _build
10:08:04.821 [error] Loading of /home/circleci/project/_build/test/lib/hackney/ebin/hackney.beam failed: :badfile 10:08:04.822 [error] beam/beam_load.c(1863): Error loading module hackney: This BEAM file was compiled for a later version of the run-time system than 20. To fix this, please recompile this module with an 20 compiler. (Use of opcode 162; this emulator supports only up to 159.)
– Kamil Lelonek
17 July 2018 в 15:03