CircleCI : URL Orbs (2) ~Private形式のURL Orbs
前回の記事では新しいOrbの形態であるURL Orbをテストしました。
従来型のレジストリ登録型OrbにはPublicとPrivateの2種類があったように、URL Orb には、(1) 公開URLから誰でも利用可能な Public型 と、(2) GitHub認証を必要とする Private型 の2種類があります。
前回の記事ではPublic型、つまりだれでもアクセス可能なURLによるOrbを試しましたが、この記事ではさらにPrivate型、つまり認証が必要なGitHubリポジトリに配置されたOrbをテストしていきます。
さっそくやってみる
1. GitHub App の設定確認
まず、OrganizationのGitHub連携設定を確認します。VCS Connection
を左ペインからクリックします。
この例ですとGitHubのh-kameda-sakura
という組織がCircleCIのOrganizationに許可されています。
歯車マークをクリックしてGitHubの認可設定画面を開きます。
この状態では、CircleCIのプロジェクトがGitHubのh-kameda-sakura
という組織の全レポジトリへのアクセスが可能となっています。
以下の様に特定レポジトリを複数選択することも可能です。
2. Privateレポジトリの作成 と URL Orbsの配置
ではorb
というプライベートレポジトリを作成します。
その中に前回の記事と同じ以下のorbs/greeting.yml
を配置します。
# orbs/greeting.yml
version: 2.1
description: A greeting command orb with Node.js installation
commands:
greet:
description: Greet someone with a "hello" and install Node.js
parameters:
to:
type: string
default: World
node_version:
type: string
default: "20"
description: Node.js version to install
steps:
- run:
name: Install Node.js
command: |
# Prereqs
sudo apt-get update -y
sudo apt-get install -y curl ca-certificates
# Node.js (Ubuntu/Debian)
curl -fsSL https://deb.nodesource.com/setup_<< parameters.node_version >>.x | sudo -E bash -
sudo apt-get install -y nodejs
# Verify
echo "Node.js version: $(node --version)"
echo "npm version: $(npm --version)"
- run:
name: Greet with Node.js
command: |
echo "Hello << parameters.to >>"
echo "Node.js << parameters.node_version >> is now installed!"
node --version
3. config.yml の修正
次にワークフロー本体のconfig.yml
を修正します。
# .circleci/config.yml
version: 2.1
orbs:
# URL Orb を生(なま)で参照します(ブランチ名は main を想定)
greeting: https://raw.githubusercontent.com/h-kameda-sakura/orb/main/orbs/greeting.yml
jobs:
demo:
docker:
- image: cimg/base:stable
steps:
- checkout
- greeting/greet:
to: "kameda-san"
node_version: "20"
workflows:
use-greeting:
jobs:
- demo
以下の部分が前回との変更点です。先ほど作成したorb
というプライベートレポジトリに配置されているURL orbsを指しています。
greeting: https://raw.githubusercontent.com/h-kameda-sakura/orb/main/orbs/greeting.yml
4. URL Orb prefixes の修正
以下の様に認証付きURL Prefixesを登録します。
認証方式がGitHub App
となっています。
Step1で確認したように、CircleCIのOrganizationに登録されているGitHubAPPがorb
というプライベートレポジトリへのアクセス権を保有しているため、アクセスが可能となります。
Discussion