NPM에 Monorepo를 게시하기 위해 GitHub 작업을 설정하는 방법
7626 단어 javascriptmonoreponpmgithub
GitHub 작업이란 무엇입니까?
GitHub 작업을 사용하면 푸시, 문제 생성 또는 새 릴리스 생성과 같은 리포지토리 이벤트를 기반으로 워크플로를 자동화할 수 있습니다.
워크플로는 기본적으로 동시에 실행되는 작업으로 구성됩니다. 각 작업은 단계를 사용하여 설명된 워크플로의 별도 부분을 나타내야 합니다.
이 기사의 제안을 위해 패키지를 게시하기 위해 따라야 하는 단계를 설명하는 작업이 하나 있습니다.
구성
repo 설정에서 NPM_AUTH_TOKEN
를 설정해야 합니다. 이것은 작업이 NPM에 인증하는 데 사용할 토큰입니다. NPM에서 생성해야 하며 단계에 전달할 수 있도록 비밀(설정 -> 비밀)에 추가할 수 있습니다.
Pro tip: DO NOT put the token directly in your workflow file.
워크플로 파일 만들기
YAML 파일을 만들어 워크플로를 정의합니다.
GitHub 리포지토리 페이지에서 이 파일을 직접 만들 수 있습니다. "작업"탭을 클릭한 다음 "직접 워크플로 설정"을 클릭하기만 하면 됩니다. 생성된 모든 코드를 삭제하고 워크플로 파일의 이름을 바꿀 수 있습니다.
또는 프로젝트 디렉토리에 이 파일을 생성할 수 있습니다. 리포지토리의 루트에서 워크플로 파일을 저장할 디렉터리.github/workflows
를 만듭니다. .github/worflows
에서 워크플로에 대한 .yml
또는 .yaml
파일을 추가합니다. 예를 들어 .github/workflows/npm-publish.yml
.
워크플로 파일이 생성되면 편집을 시작할 수 있습니다. 먼저 워크플로가 트리거되는 시기를 정의합니다. 예를 들어, 이 워크플로는 변경 사항이 마스터 분기에 푸시되거나 풀 요청이 생성될 때 트리거됩니다.
on:
push:
branches:
- master
pull_request:
branches:
- master
작업과 기계
이제 "게시"작업과 해당 단계를 생성할 차례입니다.
먼저 작업을 실행할 시스템의 이름과 유형을 정의합니다. 원하는 이름을 설정할 수 있습니다. 이 경우 "게시"라고 부를 것입니다. 머신은 GitHub 호스팅 러너 또는 자체 호스팅 러너일 수 있습니다.
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
publish:
name: Publish
runs-on: ubuntu-latest
단계
NPM에 패키지를 게시하려면 다음 단계를 따르십시오.
repo 설정에서
NPM_AUTH_TOKEN
를 설정해야 합니다. 이것은 작업이 NPM에 인증하는 데 사용할 토큰입니다. NPM에서 생성해야 하며 단계에 전달할 수 있도록 비밀(설정 -> 비밀)에 추가할 수 있습니다.Pro tip: DO NOT put the token directly in your workflow file.
워크플로 파일 만들기
YAML 파일을 만들어 워크플로를 정의합니다.
GitHub 리포지토리 페이지에서 이 파일을 직접 만들 수 있습니다. "작업"탭을 클릭한 다음 "직접 워크플로 설정"을 클릭하기만 하면 됩니다. 생성된 모든 코드를 삭제하고 워크플로 파일의 이름을 바꿀 수 있습니다.
또는 프로젝트 디렉토리에 이 파일을 생성할 수 있습니다. 리포지토리의 루트에서 워크플로 파일을 저장할 디렉터리.github/workflows
를 만듭니다. .github/worflows
에서 워크플로에 대한 .yml
또는 .yaml
파일을 추가합니다. 예를 들어 .github/workflows/npm-publish.yml
.
워크플로 파일이 생성되면 편집을 시작할 수 있습니다. 먼저 워크플로가 트리거되는 시기를 정의합니다. 예를 들어, 이 워크플로는 변경 사항이 마스터 분기에 푸시되거나 풀 요청이 생성될 때 트리거됩니다.
on:
push:
branches:
- master
pull_request:
branches:
- master
작업과 기계
이제 "게시"작업과 해당 단계를 생성할 차례입니다.
먼저 작업을 실행할 시스템의 이름과 유형을 정의합니다. 원하는 이름을 설정할 수 있습니다. 이 경우 "게시"라고 부를 것입니다. 머신은 GitHub 호스팅 러너 또는 자체 호스팅 러너일 수 있습니다.
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
publish:
name: Publish
runs-on: ubuntu-latest
단계
NPM에 패키지를 게시하려면 다음 단계를 따르십시오.
on:
push:
branches:
- master
pull_request:
branches:
- master
이제 "게시"작업과 해당 단계를 생성할 차례입니다.
먼저 작업을 실행할 시스템의 이름과 유형을 정의합니다. 원하는 이름을 설정할 수 있습니다. 이 경우 "게시"라고 부를 것입니다. 머신은 GitHub 호스팅 러너 또는 자체 호스팅 러너일 수 있습니다.
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
publish:
name: Publish
runs-on: ubuntu-latest
단계
NPM에 패키지를 게시하려면 다음 단계를 따르십시오.
체크아웃: 워크플로에서 액세스할 수 있도록 저장소를 체크아웃합니다.
node_modules 캐시: 종속성을 캐시하고 출력을 빌드하여 워크플로 실행 시간을 개선합니다.
Git ID: GitHub 작업에 대한 액세스 권한을 부여하여 리포지토리 파일을 수정합니다.
설치: 프로젝트 종속성을 설치합니다.
빌드: 프로젝트를 빌드합니다.
노드 설정: 노드 버전 및 저장소 URL을 설정합니다.
게시: NPM에 패키지를 게시합니다.
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
publish:
name: Publish
runs-on: ubuntu-latest
publish:
name: Publish
needs: test
runs-on: ubuntu-latest
if: github.event_name == 'push' && github.ref == 'refs/heads/master'
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Cache node_modules
id: cache-modules
uses: actions/cache@v1
with:
path: node_modules
key: 12.x-${{ runner.OS }}-build-${{ hashFiles('package.json') }}
- name: Git Identity
run: |
git config --global user.name 'github-actions[bot]'
git config --global user.email 'github-actions[bot]@users.noreply.github.com'
git remote set-url origin https://x-access-token:${GITHUB_TOKEN}@github.com/$GITHUB_REPOSITORY
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Install
if: steps.cache-modules.outputs.cache-hit != 'true'
run: yarn install
- name: Build
run: yarn build
- name: Setup Node ${{ matrix.node_version }}
uses: actions/setup-node@v1
with:
node-version: 14.x
registry-url: 'https://registry.npmjs.org'
- name: Publish
run: yarn publish:all
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }}
결론
이것이 최종 워크플로 파일입니다. 더 많은 작업과 단계를 추가하여 이 워크플로를 개선할 수 있습니다. 예를 들어 코드를 테스트하거나 다른 환경에서 프로젝트를 실행합니다.
Reference
이 문제에 관하여(NPM에 Monorepo를 게시하기 위해 GitHub 작업을 설정하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/cesarwbr/how-to-set-up-github-actions-to-publish-a-monorepo-to-npm-54ak
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(NPM에 Monorepo를 게시하기 위해 GitHub 작업을 설정하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/cesarwbr/how-to-set-up-github-actions-to-publish-a-monorepo-to-npm-54ak텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)