Чтобы сделать ваши рабочие процессы быстрее и эффективнее, вы можете создавать и использовать кеши для зависимостей и других общим повторно используемых файлов.
Об кэшировании рабочих процессов зависимостей
Рабочие процессы GitHub часто используют одни и те же загруженные зависимости от одного запуска к другому. Например, инструменты управления пакетами и зависимостями, такие как NPM и пряжа, хранят локальный кэш загруженных зависимостей.
Работа на Github Hosted Runners Начните в чистой виртуальной среде и должны загружать зависимости каждый раз, вызывая повышенное использование сети, более длительное время выполнения и повышенную стоимость. GitHub может кэшировать зависимости, которые вы часто используете в рабочих процессах, чтобы помочь ускорить время, необходимое для воссоздания этих файлов.
Чтобы кэшировать зависимости для работы, вам нужно использовать кэш-память GitHub. Действие извлекает кеш, идентифицированный уникальным ключом. Для получения дополнительной информации см. Действия/кэш.
Действия/кэш
Зависимости кэша и выходы сборки в действиях GitHub
Пример с использованием действия кэша
Этот пример создает новый кэш, когда пакеты в пакете-блокировке.json меняются или когда изменяется операционная система бегуна. Клавиша кэша использует контексты и выражения для генерации ключа, который включает в себя операционную систему Runner и хэш SHA-256 из файла Package-Lock.json.
name: Caching with npm on: push jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Cache node modules uses: actions/cache@v2 env: cache-name: cache-node-modules with: # npm cache files are stored in `~/.npm` on Linux/macOS path: ~/.npm key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} restore-keys: | ${{ runner.os }}-build-${{ env.cache-name }}- ${{ runner.os }}-build- ${{ runner.os }}- - name: Install Dependencies run: npm install - name: Build run: npm build - name: Test run: npm test
Чтобы узнать больше о хитах кэша и политике выселения кэша, проверить документацию GitHUB.
Это часть моих 28 дней серии действий. Чтобы получить уведомление о большего количества подсказки GitHub, следуйте за организацией GitHub прямо здесь на Dev. Узнайте, как строить действие с Node.js
Окружающая среда Scoped Secrets для рабочих процессов действий GitHub
Брайан Дуглас · 23 февраля · 1 мин прочитан
Оригинал: «https://dev.to/github/caching-dependencies-to-speed-up-workflows-in-github-actions-3efl»