GitHub Actions에서 pnpm/action-setup 자체 설치 프로그램 문제: 심층 분석 및 해결 방법

2024-07-27

GitHub Actions에서 pnpm/action-setup 자체 설치 프로그램 문제: 심층 분석 및 해결 방법

GitHub Actions에서 pnpm/action-setup를 사용하여 pnpm 패키지 관리자를 설치하는 경우 "자체 설치 프로그램 오류"가 발생하는 경우가 있습니다. 이 오류는 다양한 요인으로 인해 발생할 수 있으며, 개발 프로세스에 지장을 초래할 수 있습니다.

오류 메시지:

오류 메시지는 상황에 따라 다를 수 있지만, 일반적으로 다음과 같은 내용을 포함합니다.

  • "ERR_PNPM_META_FETCH_FAIL GET https://registry.npmjs.org/pnpm: Value of "this" must be of type URLSearchParams"
  • "Error: Something went wrong, self-installer exits with code 1"

오류 원인:

이 오류는 다음과 같은 다양한 요인으로 인해 발생할 수 있습니다.

  • pnpm/action-setup 버전: pnpm/action-setup의 오래된 버전을 사용하는 경우 오류가 발생할 수 있습니다. 최신 버전으로 업그레이드하면 문제가 해결될 가능성이 높습니다.
  • Node.js 버전: pnpm/action-setup은 최신 버전의 Node.js와 호환되지 않을 수 있습니다. Node.js를 최신 버전으로 업그레이드하면 문제가 해결될 가능성이 높습니다.
  • 네트워크 연결: 네트워크 연결 문제로 인해 pnpm/action-setup 자체 설치 프로그램이 registry.npmjs.org에 액세스하지 못할 수 있습니다. 안정적인 네트워크 연결을 확인하십시오.
  • npm 캐시: 손상된 npm 캐시가 오류를 유발할 수 있습니다. npm 캐시를 지우고 다시 시도하십시오.

해결 방법:

다음 단계를 수행하여 pnpm/action-setup 자체 설치 프로그램 오류를 해결할 수 있습니다.

  1. pnpm/action-setup 버전 업그레이드:

    - uses: pnpm/action-setup@v4
    

    위 코드를 사용하여 GitHub Actions 작업에서 pnpm/action-setup의 최신 버전을 사용합니다.

  2. 네트워크 연결 확인:

  3. npm 캐시 지우기:

    다음 명령을 사용하여 npm 캐시를 지웁니다.

    npm cache clean --force
    

    캐시를 지운 후 다시 pnpm/action-setup을 설치하십시오.

추가 정보:




GitHub Actions에서 pnpm/action-setup 사용 예제 코드

예제 1: 기본 사용

이 예제에서는 pnpm/action-setup을 사용하여 pnpm을 설치하고, package.json 파일에 정의된 종속성을 설치합니다.

name: Node.js with pnpm

on:
  push:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3

      - name: Setup pnpm
        uses: pnpm/action-setup@v4

      - name: Install dependencies
        run: pnpm install

      - name: Test
        run: pnpm test

예제 2: 사용자 지정 옵션 사용

이 예제에서는 pnpm/action-setup의 사용자 지정 옵션을 보여줍니다.

name: Node.js with pnpm

on:
  push:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3

      - name: Setup pnpm with custom options
        uses: pnpm/action-setup@v4
        with:
          node-version: '16'
          args: ['--frozen-lockfile']

설명:

  • uses: pnpm/action-setup@v4: 이 단계는 pnpm/action-setup@v4 버전을 사용하여 pnpm을 설치합니다.
  • node-version: (예제 2에서만 사용됨) 이 옵션은 설치할 Node.js 버전을 지정합니다.

참고:

  • 이러한 예제는 기본적인 사용법을 보여주는 데만 사용됩니다. 사용자의 특정 요구 사항에 따라 단계를 추가하거나 수정해야 할 수도 있습니다.



GitHub Actions에서 pnpm/action-setup 대체 방법

actions/setup-node@v2:

  • 장점:
    • GitHub Marketplace에서 공식적으로 지원되는 작업입니다.
    • pnpm뿐만 아니라 다른 Node.js 버전도 설치할 수 있습니다.
    • 사용하기 쉬운 단일 단계 작업입니다.
  • 단점:
    • pnpm 6.10 이상이 필요합니다.
    • pnpm의 모든 기능을 지원하지 않을 수 있습니다.
name: Node.js with actions/setup-node

on:
  push:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3

      - name: Setup Node.js
        uses: actions/setup-node@v2
        with:
          node-version: '16'
          cache: 'pnpm'

      - name: Install dependencies
        run: pnpm install

      - name: Test
        run: pnpm test

actions/cache:

  • 장점:
    • 이전 작업에서 pnpm 설치를 캐시하여 속도를 높일 수 있습니다.
    • 특정 pnpm 버전을 설치할 수 있습니다.
  • 단점:
    • 다소 복잡한 구성이 필요할 수 있습니다.
    • 캐시가 손상되면 오류가 발생할 수 있습니다.
name: Node.js with actions/cache

on:
  push:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3

      - name: Cache pnpm
        id: cache-pnpm
        uses: actions/cache@v2
        with:
          path: ~/.pnpm
          key: ${{ runner.os }}-pnpm-${{ hashFiles('**/package-lock.json') }}
          restore-keys: |
            ${{ runner.os }}-pnpm-

      - name: Setup Node.js
        if: steps.cache-pnpm.outputs.cache-hit != 'true'
        uses: actions/setup-node@v2
        with:
          node-version: '16'
          cache: 'pnpm'

      - name: Install dependencies
        run: pnpm install

      - name: Test
        run: pnpm test

bash 스크립트:

  • 장점:
    • pnpm 설치 프로세스를 완벽하게 제어할 수 있습니다.
    • 다른 도구와 함께 쉽게 사용자 정의할 수 있습니다.
  • 단점:
    • 유지 관리가 더 어려울 수 있습니다.
    • GitHub Actions 환경에서 bash 스크립트를 실행하는 방법에 대한 지식이 필요합니다.
name: Node.js with bash script

on:
  push:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3

      - name: Install pnpm
        run: |
          curl -fsSL https://install.pnpm.io/install.sh | sh
          export PATH="$HOME/.pnpm/bin:$PATH"

      - name: Install dependencies
        run: pnpm install

      - name: Test
        run: pnpm test

Dockerfile:

  • 장점:
    • 개발 환경과 배포 환경을 일관되게 유지할 수 있습니다.
    • pnpm뿐만 아니라 다른 도구와 라이브러리를 설치하는 데 사용할 수 있습니다.
  • 단점:
    • Dockerfile을 작성하고 유지 관리하는 데 더 많은 노력이 필요합니다.
    • 빌드 속도가 느릴 수 있습니다.
name: Node.js with Docker

on:
  push:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions

github-actions pnpm

github actions pnpm

GitHub Actions에서 프로비저닝 프로필 오류 해결: "XXXX" 프로비저닝 프로필에 현재 선택된 장치 "Mac-1719908638417.local"이 포함되어 있지 않습니다.

이 오류는 GitHub Actions에서 Xcode 빌드를 실행하는 동안 발생하며 프로비저닝 프로필이 현재 선택된 장치와 일치하지 않음을 나타냅니다.해결 방법:올바른 프로비저닝 프로필 사용: 사용하려는 장치와 개발자 팀에 해당하는 프로비저닝 프로필을 사용하는지 확인하십시오