Skip to main content

GitHub Packagesのクイックスタート

GitHub ActionsでGitHub Packagesに公開します。

はじめに

このガイドでは、コードをテストするGitHub Actionsワークフローを作成して、それをGitHub Packagesに公開します。

マネージド ユーザー アカウント を使用する場合、お使いのアカウントが所有するリポジトリにパッケージを公開することはできません。 このガイドに従うために、代わりに GitHub.com で個人用アカウントを使用してください。

パッケージを公開する

  1. GitHub に新しいリポジトリを作成し、ノードに .gitignore を追加します。 詳しくは、「新しいリポジトリの作成」を参照してください。

  2. ローカル コンピューターにリポジトリを複製します。

    git clone https://github.com/YOUR-USERNAME/YOUR-REPOSITORY.git
    cd YOUR-REPOSITORY
    
  3. index.js ファイルを作成し、「Hello world!」を表示する基本的なアラートを作成します。

    JavaScript
    console.log("Hello, World!");
    
  4. npm パッケージを npm init で初期化します。 パッケージ初期化ウィザードで、 @YOUR-USERNAME/YOUR-REPOSITORY の形式で名前を入力し、テスト スクリプトを exit 0 に設定します。 これにより、パッケージの情報が付いた package.json ファイルが生成されます。

    $ npm init
      ...
      package name: @YOUR-USERNAME/YOUR-REPOSITORY
      ...
      test command: exit 0
      ...
    
  5. npm install を実行して package-lock.json ファイルを生成し、変更をコミットして GitHub にプッシュします。

    npm install
    git add index.js package.json package-lock.json
    git commit -m "initialize npm package"
    git push
    
  6. .github/workflows ディレクトリを作成します。 そのディレクトリ内に、release-package.yml という名前のファイルを作成します。

  7. 以下の内容の YAML を release-package.yml ファイル

    YAML
    name: Node.js Package
    
    on:
      release:
        types: [created]
    
    jobs:
      build:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v4
          - uses: actions/setup-node@v4
            with:
              node-version: 16
          - run: npm ci
          - run: npm test
    
      publish-gpr:
        needs: build
        runs-on: ubuntu-latest
        permissions:
          packages: write
          contents: read
        steps:
          - uses: actions/checkout@v4
          - uses: actions/setup-node@v4
            with:
              node-version: 16
              registry-url: https://npm.pkg.github.com/
          - run: npm ci
          - run: npm publish
            env:
              NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}
    
  8. 以下のいずれかの方法でパッケージを公開するスコープとリポジトリを npm に伝えてください。

    • ルート ディレクトリに以下の内容の .npmrc ファイルを作成することで、リポジトリ用の npm 構成ファイルを追加します。

      @YOUR-USERNAME:registry=https://npm.pkg.github.com
      
    • package.json ファイルを編集して、publishConfig キーを指定します。

      "publishConfig": {
        "@YOUR-USERNAME:registry": "https://npm.pkg.github.com"
      }
      
  9. コミットして変更をGitHubにプッシュします。

    $ git add .github/workflows/release-package.yml
    # Also add the file you created or edited in the previous step.
    $ git add .npmrc or package.json
    $ git commit -m "workflow to publish package"
    $ git push
    
  10. 作成したワークフローは、リポジトリに新しいリリースが作成されるたびに実行されます。 テストにパスすると、パッケージはGitHub Packagesに公開されます。

    これを試すには、リポジトリの [Code] タブに移動し、新しいリリースを作成します。 詳細については、「リポジトリのリリースを管理する」を参照してください。

公開したパッケージを表示する

公開したすべてのパッケージは、見ることができます。

  1. GitHub で、リポジトリのメイン ページに移動します。

  2. リポジトリの右側のサイドバーで、 [パッケージ] をクリックします。

    リポジトリ ページのサイド バーのスクリーンショット。 [パッケージ] セクションが濃いオレンジ色の枠線で囲まれています。

  3. 検索したら、表示するパッケージの名前をクリックします。

公開したパッケージをインストールする

これでパッケージを公開できたので、プロジェクト全体で依存関係として利用できます。 詳しくは、「npmレジストリの利用」を参照してください。

次の手順

ここで追加した基本的なワークフローは、リポジトリ内に新しいリリースが作成されるたびに実行されます。 ただしこれは、GitHub Packagesでできることの手始めにすぎません。 単一のワークフローで複数のレジストリにパッケージを公開する、ワークフローをトリガーしてマージされたプルリクエストなどさまざまなイベントで実行する、コンテナを管理するなど、いろいろなことができます。

GitHub PackagesとGitHub Actionsを組み合わせることで、プリケーション開発プロセスのほぼすべての要素を自動化するために役立ちます。 使い始める準備はできていますか。 以下は、GitHub PackagesおよびGitHub Actionsで次のステップへ進むために役立つリソースです。