From 20c0eb9b590c8c6110a4928b569463fd0166d545 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=A3=A8=EB=B0=80LuMir?= Date: Wed, 15 Oct 2025 22:20:46 +0900 Subject: [PATCH 1/4] feat: create `ci-package-manager.yml` --- .github/workflows/ci-package-manager.yml | 1 + 1 file changed, 1 insertion(+) create mode 100644 .github/workflows/ci-package-manager.yml diff --git a/.github/workflows/ci-package-manager.yml b/.github/workflows/ci-package-manager.yml new file mode 100644 index 0000000..4640904 --- /dev/null +++ b/.github/workflows/ci-package-manager.yml @@ -0,0 +1 @@ +# TODO From 6b64a503554dfabae680fe30041350b978fef329 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=A3=A8=EB=B0=80LuMir?= Date: Wed, 15 Oct 2025 22:40:46 +0900 Subject: [PATCH 2/4] wip --- .github/workflows/ci-package-manager.yml | 154 ++++++++++++++++++++++- 1 file changed, 153 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci-package-manager.yml b/.github/workflows/ci-package-manager.yml index 4640904..02ab0f1 100644 --- a/.github/workflows/ci-package-manager.yml +++ b/.github/workflows/ci-package-manager.yml @@ -1 +1,153 @@ -# TODO +name: ci-package-manager + +# This workflow creates a tarball from repo sources. +# It then checks that each of the following package managers is able to install: +# - npm +# - Yarn v1 Classic +# - Yarn (Modern) +# - pnpm +# - bun + +on: + workflow_call: + +jobs: + npm-build: + name: Build tarball + runs-on: ubuntu-latest + outputs: + version: ${{ steps.get_version.outputs.version }} + steps: + - name: Check out repo + uses: actions/checkout@v5 + + - name: Set up Node.js + uses: actions/setup-node@v5 + with: + node-version: "lts/*" + + - run: npm install + + - run: npm pack + + - name: Upload build artifact + uses: actions/upload-artifact@v4 + with: + name: build + path: eslint-markdown-*.tgz + retention-days: 1 + + - name: Get version + id: get_version + run: echo "version=$(jq -r '.version' package.json)" >> "$GITHUB_OUTPUT" + + npm-install: + name: Install with npm + needs: npm-build + runs-on: ubuntu-latest + steps: + - name: Download build artifact + uses: actions/download-artifact@v5 + with: + name: build + + - name: Set up Node.js + uses: actions/setup-node@v5 + with: + node-version: "lts/*" + + - name: npm install + run: | + npm install ./eslint-markdown-${{ needs.npm-build.outputs.version }}.tgz -D + + yarn-v1-install: + name: Install with Yarn v1 + needs: npm-build + runs-on: ubuntu-latest + steps: + - name: Download build artifact + uses: actions/download-artifact@v5 + with: + name: build + + - name: Set up Node.js + uses: actions/setup-node@v5 + with: + node-version: "lts/*" + + - name: yarn add + run: | + yarn add ./eslint-markdown-${{ needs.npm-build.outputs.version }}.tgz -D + + yarn-install: + name: Install with Yarn + needs: npm-build + runs-on: ubuntu-latest + steps: + - name: Download build artifact + uses: actions/download-artifact@v5 + with: + name: build + + - name: Set up Node.js + uses: actions/setup-node@v5 + with: + node-version: "lts/*" + + - name: Install Corepack latest + run: | + npm install -g corepack@latest + corepack enable yarn + + - name: yarn add + run: | + corepack use yarn@latest + yarn init -p + yarn add ./eslint-markdown-${{ needs.npm-build.outputs.version }}.tgz -D + env: + YARN_ENABLE_IMMUTABLE_INSTALLS: 0 # Allow installs to modify lockfile + + pnpm-install: + name: Install with pnpm + needs: npm-build + runs-on: ubuntu-latest + steps: + - name: Download build artifact + uses: actions/download-artifact@v5 + with: + name: build + + - name: Install pnpm + uses: pnpm/action-setup@v4 + with: + version: latest + + - name: Set up Node.js + uses: actions/setup-node@v5 + with: + node-version: "lts/*" + + - name: pnpm add + run: | + cat > .npmrc < Date: Fri, 17 Oct 2025 23:19:02 +0900 Subject: [PATCH 3/4] wip --- .github/workflows/ci-package-manager.yml | 60 ++++++++++++++---------- 1 file changed, 34 insertions(+), 26 deletions(-) diff --git a/.github/workflows/ci-package-manager.yml b/.github/workflows/ci-package-manager.yml index 02ab0f1..0c976d5 100644 --- a/.github/workflows/ci-package-manager.yml +++ b/.github/workflows/ci-package-manager.yml @@ -12,29 +12,32 @@ on: workflow_call: jobs: - npm-build: - name: Build tarball + build-tarball: runs-on: ubuntu-latest + outputs: version: ${{ steps.get_version.outputs.version }} + steps: - name: Check out repo uses: actions/checkout@v5 - name: Set up Node.js - uses: actions/setup-node@v5 + uses: actions/setup-node@v6 with: node-version: "lts/*" - - run: npm install + - name: Install dependencies + run: npm install - - run: npm pack + - name: Build tarball + run: npm pack - name: Upload build artifact uses: actions/upload-artifact@v4 with: name: build - path: eslint-markdown-*.tgz + path: eslint-*.tgz retention-days: 1 - name: Get version @@ -42,9 +45,10 @@ jobs: run: echo "version=$(jq -r '.version' package.json)" >> "$GITHUB_OUTPUT" npm-install: - name: Install with npm - needs: npm-build + needs: build-tarball + runs-on: ubuntu-latest + steps: - name: Download build artifact uses: actions/download-artifact@v5 @@ -52,18 +56,19 @@ jobs: name: build - name: Set up Node.js - uses: actions/setup-node@v5 + uses: actions/setup-node@v6 with: node-version: "lts/*" - name: npm install run: | - npm install ./eslint-markdown-${{ needs.npm-build.outputs.version }}.tgz -D + npm install ./eslint-${{ needs.build-tarball.outputs.version }}.tgz -D yarn-v1-install: - name: Install with Yarn v1 - needs: npm-build + needs: build-tarball + runs-on: ubuntu-latest + steps: - name: Download build artifact uses: actions/download-artifact@v5 @@ -71,18 +76,19 @@ jobs: name: build - name: Set up Node.js - uses: actions/setup-node@v5 + uses: actions/setup-node@v6 with: node-version: "lts/*" - name: yarn add run: | - yarn add ./eslint-markdown-${{ needs.npm-build.outputs.version }}.tgz -D + yarn add ./eslint-${{ needs.build-tarball.outputs.version }}.tgz -D yarn-install: - name: Install with Yarn - needs: npm-build + needs: build-tarball + runs-on: ubuntu-latest + steps: - name: Download build artifact uses: actions/download-artifact@v5 @@ -90,7 +96,7 @@ jobs: name: build - name: Set up Node.js - uses: actions/setup-node@v5 + uses: actions/setup-node@v6 with: node-version: "lts/*" @@ -103,14 +109,15 @@ jobs: run: | corepack use yarn@latest yarn init -p - yarn add ./eslint-markdown-${{ needs.npm-build.outputs.version }}.tgz -D + yarn add ./eslint-${{ needs.build-tarball.outputs.version }}.tgz -D env: YARN_ENABLE_IMMUTABLE_INSTALLS: 0 # Allow installs to modify lockfile pnpm-install: - name: Install with pnpm - needs: npm-build + needs: build-tarball + runs-on: ubuntu-latest + steps: - name: Download build artifact uses: actions/download-artifact@v5 @@ -123,7 +130,7 @@ jobs: version: latest - name: Set up Node.js - uses: actions/setup-node@v5 + uses: actions/setup-node@v6 with: node-version: "lts/*" @@ -133,21 +140,22 @@ jobs: auto-install-peers=true node-linker=hoisted EOT - pnpm add ./eslint-markdown-${{ needs.npm-build.outputs.version }}.tgz -D + pnpm add ./eslint-${{ needs.build-tarball.outputs.version }}.tgz -D bun-install: - name: Install with bun - needs: npm-build + needs: build-tarball + runs-on: ubuntu-latest + steps: - name: Download build artifact uses: actions/download-artifact@v5 with: name: build - - name: Set up bun + - name: Set up Bun uses: oven-sh/setup-bun@v2 - name: bun install run: | - bun install ./eslint-markdown-${{ needs.npm-build.outputs.version }}.tgz -D + bun install ./eslint-${{ needs.build-tarball.outputs.version }}.tgz -D From 438a06a3e1b3e2232da9f3dc8b974f7af22b21c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=A3=A8=EB=B0=80LuMir?= Date: Sat, 18 Oct 2025 18:11:51 +0900 Subject: [PATCH 4/4] fix --- .github/workflows/ci-package-manager.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci-package-manager.yml b/.github/workflows/ci-package-manager.yml index 0c976d5..dec49ff 100644 --- a/.github/workflows/ci-package-manager.yml +++ b/.github/workflows/ci-package-manager.yml @@ -62,7 +62,7 @@ jobs: - name: npm install run: | - npm install ./eslint-${{ needs.build-tarball.outputs.version }}.tgz -D + npm install ./eslint-*-${{ needs.build-tarball.outputs.version }}.tgz -D yarn-v1-install: needs: build-tarball @@ -82,7 +82,7 @@ jobs: - name: yarn add run: | - yarn add ./eslint-${{ needs.build-tarball.outputs.version }}.tgz -D + yarn add ./eslint-*-${{ needs.build-tarball.outputs.version }}.tgz -D yarn-install: needs: build-tarball @@ -109,7 +109,7 @@ jobs: run: | corepack use yarn@latest yarn init -p - yarn add ./eslint-${{ needs.build-tarball.outputs.version }}.tgz -D + yarn add ./eslint-*-${{ needs.build-tarball.outputs.version }}.tgz -D env: YARN_ENABLE_IMMUTABLE_INSTALLS: 0 # Allow installs to modify lockfile @@ -140,7 +140,7 @@ jobs: auto-install-peers=true node-linker=hoisted EOT - pnpm add ./eslint-${{ needs.build-tarball.outputs.version }}.tgz -D + pnpm add ./eslint-*-${{ needs.build-tarball.outputs.version }}.tgz -D bun-install: needs: build-tarball @@ -158,4 +158,4 @@ jobs: - name: bun install run: | - bun install ./eslint-${{ needs.build-tarball.outputs.version }}.tgz -D + bun install ./eslint-*-${{ needs.build-tarball.outputs.version }}.tgz -D