From 236e74c00b38824cb718911feb362ce4570ce08e Mon Sep 17 00:00:00 2001 From: JW Date: Sat, 15 Jul 2023 14:59:18 +0800 Subject: [PATCH] :sparkles: add pnpm ci cache (#385) * :sparkles: add pnpm ci cache * :pencil: about pnpm/actions-setup --- .changeset/thirty-bears-doubt.md | 5 +++++ packages/generators/pnpm-ci/README.md | 3 +++ .../pnpm-ci/assets/workflows/ci.yml | 19 +++++++++++++++++-- .../pnpm-ci/assets/workflows/release.yml | 19 +++++++++++++++++-- .../assets/workflows/snapshot-release.yml | 19 +++++++++++++++++-- 5 files changed, 59 insertions(+), 6 deletions(-) create mode 100644 .changeset/thirty-bears-doubt.md diff --git a/.changeset/thirty-bears-doubt.md b/.changeset/thirty-bears-doubt.md new file mode 100644 index 000000000..92b6e7e8b --- /dev/null +++ b/.changeset/thirty-bears-doubt.md @@ -0,0 +1,5 @@ +--- +"@aiou/generator-pnpm-ci": minor +--- + +add pnpm ci cache diff --git a/packages/generators/pnpm-ci/README.md b/packages/generators/pnpm-ci/README.md index 6f8575fbd..0e6cd1d17 100755 --- a/packages/generators/pnpm-ci/README.md +++ b/packages/generators/pnpm-ci/README.md @@ -10,6 +10,9 @@ neo run @aiou/generator-pnpm-ci prepack follow parts into your project +> **💡 NOTE** +CI workflows will automatic choose pnpm version and cache `.pnpm-store` via . + - `release.yml` - publish package with `changeset` - `snapshot-release.yml` - publish prerelease package with `changeset` - `husky` diff --git a/packages/generators/pnpm-ci/assets/workflows/ci.yml b/packages/generators/pnpm-ci/assets/workflows/ci.yml index 3118ab568..0dff2931a 100644 --- a/packages/generators/pnpm-ci/assets/workflows/ci.yml +++ b/packages/generators/pnpm-ci/assets/workflows/ci.yml @@ -23,8 +23,23 @@ jobs: uses: actions/setup-node@v1 with: node-version: ${{ matrix.node-version }} - - name: Install pnpm - run: npm i pnpm@7.32.1 -g + - uses: pnpm/action-setup@v2 + name: Install pnpm + id: pnpm-install + with: + run_install: false + - name: get pnpm store directory + id: pnpm-cache + shell: bash + run: | + echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT + - uses: actions/cache@v3 + name: setup pnpm cache + with: + path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} + key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm-store- - name: Install run: | pnpm install --frozen-lockfile=false diff --git a/packages/generators/pnpm-ci/assets/workflows/release.yml b/packages/generators/pnpm-ci/assets/workflows/release.yml index 78b6cec7f..c3e5e5f4d 100644 --- a/packages/generators/pnpm-ci/assets/workflows/release.yml +++ b/packages/generators/pnpm-ci/assets/workflows/release.yml @@ -27,8 +27,23 @@ jobs: uses: actions/setup-node@v2 with: node-version: 14 - - name: install pnpm - run: npm i pnpm@7.32.1 -g + - uses: pnpm/action-setup@v2 + name: Install pnpm + id: pnpm-install + with: + run_install: false + - name: get pnpm store directory + id: pnpm-cache + shell: bash + run: | + echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT + - uses: actions/cache@v3 + name: setup pnpm cache + with: + path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} + key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm-store- - name: install dependencies run: pnpm install --frozen-lockfile=false - name: create and publish versions diff --git a/packages/generators/pnpm-ci/assets/workflows/snapshot-release.yml b/packages/generators/pnpm-ci/assets/workflows/snapshot-release.yml index eb676bd87..080981ea5 100644 --- a/packages/generators/pnpm-ci/assets/workflows/snapshot-release.yml +++ b/packages/generators/pnpm-ci/assets/workflows/snapshot-release.yml @@ -25,8 +25,23 @@ jobs: uses: actions/setup-node@v2 with: node-version: 14 - - name: install pnpm - run: npm i pnpm@7.32.1 -g + - uses: pnpm/action-setup@v2 + name: Install pnpm + id: pnpm-install + with: + run_install: false + - name: get pnpm store directory + id: pnpm-cache + shell: bash + run: | + echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT + - uses: actions/cache@v3 + name: setup pnpm cache + with: + path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} + key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm-store- - name: install dependencies run: pnpm install --frozen-lockfile=false - name: create and publish versions