diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 3bd6a395ac3fdc..2809c46646335a 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -29,20 +29,17 @@ jobs: - uses: pnpm/action-setup@v2 - # TODO(jakebailey): this won't work in PRs; we may need to once nightly - # refresh a new cache based on master, and then consume it here read-only in PRs. - # - name: Get pnpm cache info - # id: pnpm-cache - # shell: bash - # run: | - # echo "store=$(pnpm store path)" >> $GITHUB_OUTPUT - # echo "date=$(/bin/date -u "+%Y-%m-%d")" >> $GITHUB_OUTPUT + - name: Get pnpm cache info + id: pnpm-cache + run: | + echo "store=$(pnpm store path)" >> $GITHUB_OUTPUT - # - uses: actions/cache@v3 - # name: Setup pnpm cache - # with: - # path: ${{ steps.pnpm-cache.outputs.store }} - # key: ${{ runner.os }}-pnpm-store-cache-${{ steps.pnpm-cache.outputs.date }} + - name: Restore pnpm cache + uses: actions/cache/restore@v3 + with: + path: ${{ steps.pnpm-cache.outputs.store }} + key: ${{ runner.os }}-pnpm-store-cache- + restore-keys: ${{ runner.os }}-pnpm-store-cache- - run: | # If we're deleting packages, pnpm won't know what other unrelated packages diff --git a/.github/workflows/pnpm-cache.yml b/.github/workflows/pnpm-cache.yml new file mode 100644 index 00000000000000..875ba61f8c6b67 --- /dev/null +++ b/.github/workflows/pnpm-cache.yml @@ -0,0 +1,30 @@ +name: pnpm cache + +on: + workflow_dispatch: + schedule: + # Run every day at 01:00 UTC + - cron: '0 1 * * *' + +jobs: + create-cache: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v3 + - uses: pnpm/action-setup@v2 + + - name: Get pnpm cache info + id: pnpm-cache + run: | + echo "store=$(pnpm store path)" >> $GITHUB_OUTPUT + echo "date=$(/bin/date -u "+%Y-%m-%d")" >> $GITHUB_OUTPUT + + - name: pnpm install + run: pnpm install + + - name: Save pnpm cache + uses: actions/cache/save@v3 + with: + path: ${{ steps.pnpm-cache.outputs.store }} + key: ${{ runner.os }}-pnpm-store-cache-${{ steps.pnpm-cache.outputs.date }}