Closed12

自作ツールをdeno.land/xに上げる

deno.land/x へアクセスし、Publish moduleを選択

説明が出るのでNext

モジュール名を入力する
使えるのは小文字アルファベット・数字・アンダースコアのみ、3から40文字にする必要がある

別にリポジトリ名と全く同じにする必要はない
条件を満たしており重複していなければ登録できる

次の画面はモジュールがサブディレクトリ内にある場合は指定が必要
今回は何も入力せずNext

ここでGitHub側の操作を求められる

GitHubで公開したいリポジトリを開き、Settings > Webhooks > Add webhookを選択
ここで再度ログインを求められるのでパスワードを入れて認証

deno.land側で表示されたとおり、

  • Payload URLをhttps://api.deno.land/webhook/gh/markup_tag
  • Content typeをapplication/json
  • Event triggerをLet me select individual events.からBranch or tag creationを選択
    • デフォルトでPushesにチェックが入っている可能性あり、チェックされていたら外しておく

下の方へ行ってAdd webhookする

一覧に表示されたらOK

そうするとdeno.land側の表示が更新されているのでDone

リポジトリトップページのサイドバーからReleaseを作成する
/releases/newにアクセスしても良い
(一つもReleaseがない場合、Refined GitHubとかのプラグインにより表示が消されているかもしれないのでその場合は一旦無効化する)

Create Releases画面に入る

Tag versionRelease titleDiscribe this releaseを入力してPublish releaseする

リリースされた

deno.land/xのほうでもリリースを確認

TOPページにも載る

nest.landから登録

情報を入力してCreate Account and Generate an API Keyする

直後にAPI Keyが表示されるのでこれを保存

eggsを落としてくる

最新のバージョンナンバーはこちらのページから取得できる(省略はできない)

https://nest.land/package/eggs
❯ deno install -Afq --unstable https://x.nest.land/eggs@0.3.8/eggs.ts
✅ Successfully installed eggs
/Users/kawarimidoll/.deno/bin/eggs

❯ eggs --version
0.3.8

eggs linkでAPIキーを登録

❯  eggs link xxxxxxxxxxxxx
[INFO] Successfully updated .nest-api-key with your key!

eggs initで設定ファイルを生成
まあ細かいところは後から設定ファイルを開いて直接入力しても良いと思う

こんな感じのファイルが生成される
なおLICENSEのスペルがミスっていたので修正した

$schema: 'https://x.nest.land/eggs@0.3.8/src/schema.json'
name: markup-tag
entry: ./mod.ts
description: Render markup tags easily
homepage: 'https://github.com/kawarimidoll/deno-markup-tag'
version: 0.1.0
releaseType: null
unstable: false
unlisted: false
files:
  - ./mod.ts
  - ./README.md
  - ./LICENSE
ignore: []
checkFormat: false
checkTests: false
checkInstallation: false
check: true

eggs publish --dry-runして公開されるファイルを確認
最後に確認を求められるがここではYesしても何も起きない

❯ eggs publish --dry-run
[INFO] The resulting module is:
        - name: "markup-tag",
        - version: "0.1.0",
        - description: "Render markup tags easily",
        - repository: "https://github.com/kawarimidoll/deno-markup-tag",
        - unlisted: false,
        - stable: true,
        - upload: true,
        - latest: true,
        - entry: "/mod.ts"
[INFO] Files to publish:
        - ./mod.ts  (0.001769MB)
        - ./mod.ts  (0.001769MB)
        - ./README.md  (0.001656MB)
        - ./LICENSE  (0.001075MB)
 ? Are you sure you want to publish this module? (y/N) › Yes

今更気づいたけどgithubの方でリリースタグにvをつけたのは失敗だったな…
修正しちゃえ

お、レジストリの方にも反映された

nest.land用にCIを設定してリリースタグを切ったときにdeno.landにもnest.landにも公開されるようにする

.github/workflows/publish-nest-land.yml
name: Publish this module to nest.land

on:
  release:
    types: [published]

jobs:
  publish-egg:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@master
      - uses: denoland/setup-deno@master
      - run: deno install -Af --unstable https://x.nest.land/eggs@0.3.8/eggs.ts
      - run: |
          export PATH="/home/runner/.deno/bin:$PATH"
          eggs link ${{ secrets.NEST_API_KEY }}
          eggs publish --yes

NEST_API_KEYをrepository secretsに登録する

一覧に出ればOK

2回目以降のリリースはDraft a new releaseから作成する

このスクラップは2021/07/27にクローズされました
ログインするとコメントできます