Я пытаюсь запустить следующий рабочий процесс Github для проекта php:
name: CI
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
env:
DB_NAME: ${{ secrets.DB_NAME }}
DB_USER: ${{ secrets.DB_USER }}
DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
MYSQL_ROOT_PASSWORD: ${{ secrets.MYSQL_ROOT_PASSWORD }}
steps:
- uses: actions/checkout@v2
- name: Set up the CI environment
run: |
envsubst < src/.env.ci > src/.env
docker pull composer
alias composer="docker run --rm --interactive --tty --volume $(pwd):/app --volume ${COMPOSER_HOME:-$HOME/.composer}:/tmp --user $(id -u):$(id -g) composer"
composer --version
- name: Get Composer Cache Directory
id: composer-cache
run: |
echo "::set-output name=dir::$(composer config cache-files-dir)"
- uses: actions/cache@v1
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-composer-
- name: Install composer dependencies
if: steps.composer-cache.outputs.cache-hit != 'true'
run: composer install
Сценарий следующий. У меня есть docker основанная среда разработки, организованная с docker -compose. Php composer и другие инструменты запускаются из docker изображений.
Кажется, что-то здесь не хватает, потому что cache-hit
происходит, как я вижу в журналах:
2020-03-28T10:37:07.2837003Z Cache restored from key: Linux-composer-0dffe7e110c8249b30d4e46844fede7ea6b8e1433061bed12cbb9a2ae964e2bb
Но не вступает в силу, потому что шаг Install composer dependencies
все еще выполняется и загружает артефактов. Я ожидаю, что либо не запускается, либо не запускается, но ничего не загружается, поскольку он берет все из восстановленного кэшированного.
Кто-нибудь имеет представление о том, что мне не хватает?
ОБНОВЛЕНИЕ
Я принял ответ @ edri c, потому что в этом контексте, где я задавал свой вопрос, его ответ обеспечил решение моего вопроса. Хотя я должен сказать, что это не было полностью решением.
Мне нужно было удалить условие: if: steps.composer-cache.outputs.cache-hit != 'true'
с последнего шага, чтобы запустить остальную часть моего рабочего процесса. Я заметил, что кэш composer был восстановлен и composer install
не был запущен, что позже вызвало проблемы из-за отсутствия зависимостей. Без условия if composer установка запускается всегда, но с использованием восстановленного кэша.