SuMineLee / OES_L2DSR

0 stars 0 forks source link

Follw the Learning Path 06 #55

Open SuMineLee opened 2 years ago

SuMineLee commented 2 years ago

1Leverage GitHub Actions to publish to GitHub Packages : GitHub Package 게시를 위해 GitHub Actions 영향 높이기?

SuMineLee commented 2 years ago

GitHub Packages :

  1. Package Management

    • support npm, NuGet, RubyGem, maven&Gradle) => 1) GitHub Interface에서 쉽게 접근 가능. 2) Webhooks/ GItHub Actions로 Publishing/ post-publish 사용자화 가능. 3) 다수의 시스템 연결로 다수의 자격 증명 필요 시 단일 자격 증명 세트로 사용 가능.
      • GitHub REPO 레벨에서 권한 및 가시성 수정/확인 가능 4) open source prerelease version release 가능 -> 테스트 완료 후 출시할 특정 버전을 출시 버전으로 승격 가능
  2. Package Registry

    • on Cloud service: Package Registry
    • for unique: Containter Registry -> 어디에서나 사용 가능 ex) 로컬 개발 환경/ 서버, 클라우드/ GitHub Codespace base image/ CI_CD
      workflow의 runner
SuMineLee commented 2 years ago

GitHub Package VS GitHub Release

GItHub Packages : Library release --> package된 버전과 연결된 버전으로 이동 등 피드와의 동작 방식 활용 위해. --> 본인 사용 권한 확인 / 커뮤니케이션 한다거나 등 Organization/ open-source 코드 확인.

Github Realeases : packaged project with release note and binary files link --> download only on URL ==> terball/zip

SuMineLee commented 2 years ago

Use Actions to use Packages

name: package

 on:
  **release:
    types: [created]**

  **jobs:
    build: 
      runs-on: ubuntu-latest**
        steps:
          - name: checkout github repo
            uses: actions/chekcout@v2
          **- uses: setup node
            uses: actions/setup-node@v1**
            with:
              node-version: 12
          - run: npm ci
             ###### package-lock.json 에서 종속성 설치
          - run: npm test

    **publish-gpr:**
      needs: build
      runs-on: ubuntn-latest
      steps:
        - uses: actions/checkout@v1
        - uses: actions/setup-node@v2
            with: 
              node-version: 12
              ######PAT로 인증 후 산출된 package 아래 경로로 저장
              **registry-url: https://npm.pkg.github.com**
        - run: npm ci
        - run: npm publish
          **env:
            NODE_AUTH_TOKEN : $${{secrets.GITHUB_TOKEN}}** 
SuMineLee commented 2 years ago

Use bash to use Container regristry - Docker

echo $GITHUB_TOKEN | docker login ghcr -u USERNAME --password-stdin

docekr tag IMAGE_ID ghcr.io/OWNER/IMAGE_NAME:latest
docker push ghcr.io/OWNER/IMAGE_NAME:latest
SuMineLee commented 2 years ago

GitHub Token

GitHub Package Registries – PACKAGE-REGISTRY.pkg.github.com Container registry – ghcr.io/OWNER/IMAGE-NAME

SuMineLee commented 2 years ago

Packaging by Code depend On project's Ecosystem : npm/ Nuget/ RubyGems/ Mavel0Gradles

필수 항목 1) Username 2) PAT 3) Github Package Endpoint ;:: : https://PACKAGE_TYPE.pkg.github.com/OWNER/REPO image.png

패키지 설치 : Package 페이지에서 제공됨 패키지 관리 : GitHub API/GraphQL 로 Webhook 사용한 트리거 걸기 등 더 통합적인 방법 가능 GitHub ACtions를 사용하여 자동화. 가장 오래된 버전 자동 삭제 등.