* Use bun in package.json * Update workflows * Update more workflows * Kick ci * Fix yaml * Fix type errors * Compat with snyk * Fix jest resolutions * Add another esm package * Fix aliases and next js missing deps * Update next js embed tests * Try fix embed test config * Fix * Fix requires in e2e support * Use bun not yarn in embed bin * Revert config changes * Use bun in more scripts and use prepare-release action * Replace more yarn usages * Remove overrides from bunfig move to package json * Revert e2e support changes * Add back comment * [ci skip] comment typo * Update bun lock * Update to reference bun * Update to reference bun * Update license disclaimer * Tidy tests * Update to use bun in workflows * Change aliases * Update codemirrort selector * Tidy license generation * Remove .only * Fix yarn references * Checkout .github for release scripts * Update lockfile * Re-add package * update release bunlock * fix checkout check --------- Co-authored-by: Ryan Laurie <iethree@gmail.com>
64 lines
2.0 KiB
YAML
64 lines
2.0 KiB
YAML
name: Prepare front-end environment
|
|
description: "Prepare the front-end environment for the CI build"
|
|
inputs:
|
|
node-version:
|
|
description: "The version of Node.js to use, overriding .nvmrc"
|
|
required: false
|
|
apply-patches:
|
|
description: "Whether to patch frontend dependencies with patch-package."
|
|
required: true
|
|
default: "true"
|
|
runs:
|
|
using: "composite"
|
|
steps:
|
|
- name: Prepare Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: ${{ inputs.node-version }} # this overrides, if present
|
|
node-version-file: ".nvmrc"
|
|
|
|
- name: Install bun
|
|
uses: oven-sh/setup-bun@v2
|
|
with:
|
|
bun-version: latest
|
|
|
|
- name: Get cache keys
|
|
uses: ./.github/actions/get-cache-keys
|
|
id: get-cache-keys
|
|
|
|
- name: Restore M2 cache
|
|
uses: actions/cache/restore@v4
|
|
with:
|
|
path: |
|
|
~/.m2
|
|
~/.gitlibs
|
|
key: ${{ steps.get-cache-keys.outputs.m2-cache-key }}
|
|
|
|
- name: Get bun cache directory
|
|
id: bun-cache
|
|
run: |
|
|
BUN_CACHE_DIR=$(bun pm cache)
|
|
echo "Bun cache directory: $BUN_CACHE_DIR"
|
|
echo "dir=$BUN_CACHE_DIR" >> $GITHUB_OUTPUT
|
|
shell: bash
|
|
|
|
- name: Restore node_modules cache
|
|
uses: actions/cache/restore@v4
|
|
id: node-modules-cache
|
|
with:
|
|
path: |
|
|
${{ steps.bun-cache.outputs.dir }}
|
|
node_modules
|
|
key: ${{ steps.get-cache-keys.outputs.node-cache-key }}
|
|
|
|
# postinstall lifecycle hook can be dangerous in CI so we only run it locally (see package.json)
|
|
# If a job wants to patch packages, it does so explicitly in the CI. This setting is opt-out.
|
|
# For example, we never want to cache node_modules with patches already applied so cache-generator.yml skips that step.
|
|
- name: Clean install
|
|
run: bun install --frozen-lockfile
|
|
shell: bash
|
|
- name: Patch frontend dependencies
|
|
if: inputs.apply-patches == 'true'
|
|
run: bun run patch-package
|
|
shell: bash
|