Size: a a a

2021 July 10

АК

Андрей Казанцев... in ru_gitlab
Ну спасибо за мусор в контейнере
источник

ММ

Максим Мартынов... in ru_gitlab
Вам шашечки или ехать?
источник

АК

Андрей Казанцев... in ru_gitlab
мне шашочки
источник

АК

Андрей Казанцев... in ru_gitlab
Ибо я точно знаю что мне надо
источник

ММ

Максим Мартынов... in ru_gitlab
Назвать мусором пару файлов весом в килобайты, которые позволяют нормально работать кэшу - это идиотизм
источник

АК

Андрей Казанцев... in ru_gitlab
А как они помогут кэшу?
источник

ММ

Максим Мартынов... in ru_gitlab
Читаем про слои в докер образах
источник

АК

Андрей Казанцев... in ru_gitlab
Читаем и....
источник

ММ

Максим Мартынов... in ru_gitlab
Я же уже написал
источник

АК

Андрей Казанцев... in ru_gitlab
Тоесть маунт по вашему не учитывает
источник

АК

Андрей Казанцев... in ru_gitlab
Вы на это намекаете
источник

ММ

Максим Мартынов... in ru_gitlab
Да
источник

АК

Андрей Казанцев... in ru_gitlab
Странно, у меня учитывает
источник

АК

Андрей Казанцев... in ru_gitlab
stages:
- get_info
- build
- test

variables:
 BASE_IMAGE_NAME: $CI_REGISTRY_IMAGE:BASE

get lock hash:
 stage: get_info
 variables:
   GET_HASH_COMMAND: jq -r '.["_meta"]["hash"]["sha256"]' Pipfile.lock
 script:
 - echo 'HASH_DEPENDENCIES=$(eval "$GET_HASH_COMMAND")' > hash.env
 artifacts:
   reports:
     dotenv: hash.env

build:
 stage: build
 image: docker:stable
 services:
 - docker:dind
 variables:
   DOCKER_BUILDKIT: 1
 script:
 - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
 - docker build -t $BASE_IMAGE_NAME-$HASH_DEPENDENCIES -f Dockerfile . --target BASE
 - docker push $BASE_IMAGE_NAME-$HASH_DEPENDENCIES
 only:
   changes:
   - Pipfile.lock

test:
 stage: test
 image: $BASE_IMAGE_NAME-$HASH_DEPENDENCIES
 script:
 - env
 - pre-commit run -a
 - pytest --cov
 - coverage xml
 dependencies:
 - get lock hash
 artifacts:
   reports:
     cobertura: coverage.xml
источник

АК

Андрей Казанцев... in ru_gitlab
Надо бы избавиться от get lock hash
источник

ММ

Максим Мартынов... in ru_gitlab
Потому что кэш для RUN инструкций базируется на хэше самой команды, а COPY/ADD - на хэше файлов
источник

ММ

Максим Мартынов... in ru_gitlab
Это раз
источник

ММ

Максим Мартынов... in ru_gitlab
Два - нужно использовать cache-from при сборке, чтобы при отправке задачи на другой раннер он забирал предыдущую сборку из registry, и использовал ее слои в качестве кэша
источник

АК

Андрей Казанцев... in ru_gitlab
Вы провели эксперимент?
источник

АК

Андрей Казанцев... in ru_gitlab
Вы увидели гдето второй этап сборки которому нужен кэш?
источник