From 5a47bd33e34580256126048ebe922d1cc3cd6201 Mon Sep 17 00:00:00 2001 From: Hong Minhee Date: Sat, 2 Mar 2024 18:20:49 +0900 Subject: [PATCH] Publish to JSR --- .github/workflows/build.yaml | 29 ++++++++++++++++++++++++++++- .gitignore | 1 + deno.json | 18 +++++++++++------- 3 files changed, 40 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index b041f167..e9b300d0 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -49,4 +49,31 @@ jobs: - run: deno task check - run: deno task check working-directory: ${{ github.workspace }}/examples/blog/ - - run: deno publish --dry-run + - run: deno task publish --dry-run + + publish: + if: github.event_name == 'push' + needs: [test, lint] + runs-on: ubuntu-latest + permissions: + id-token: write + contents: read + steps: + - uses: actions/checkout@v4 + - uses: denoland/setup-deno@v1 + with: + deno-version: v1.x + - if: github.ref_type == 'branch' + run: | + jq \ + --arg build "$GITHUB_RUN_NUMBER" \ + --arg commit "${GITHUB_SHA::8}" \ + '.version = .version + "-dev." + $build + "+" + $commit' \ + deno.json > deno.json.tmp + mv deno.json.tmp deno.json + # Don't know why, but the .gitignore list is not overriden by include list + # in deno.json: + rm vocab/.gitignore + - if: github.ref_type == 'tag' + run: '[[ "$(jq .version deno.json)" = "$GITHUB_REF_NAME" ]]' + - run: deno task publish diff --git a/.gitignore b/.gitignore index 4003025a..276cdd66 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ .cov/ .cov.lcov +.DS_Store .test-report.xml deno.lock docs/*.css diff --git a/deno.json b/deno.json index 5a06a7d6..c40118de 100644 --- a/deno.json +++ b/deno.json @@ -9,18 +9,22 @@ "./vocab": "./vocab/mod.ts", "./webfinger": "./webfinger/mod.ts" }, - "publish": { - "include": [ - "vocab/vocab.ts" - ] - }, + "include": [ + "vocab/vocab.ts" + ], + "exclude": [ + ".git/", + "examples/" + ], "tasks": { "check": "deno task codegen && deno fmt --check && deno lint && deno check */*.ts", "codegen": "deno run --allow-read --allow-write --check codegen/main.ts vocab/ ../runtime/ > vocab/vocab.ts && deno fmt vocab/vocab.ts && deno cache vocab/vocab.ts && deno check vocab/vocab.ts", "test-without-codegen": "deno test --check --doc --allow-read --allow-write --unstable-temporal", - "test": "deno task codegen && deno task test-without-codegen" + "test": "deno task codegen && deno task test-without-codegen", + "publish": "deno task codegen && deno publish" }, "unstable": [ "temporal" - ] + ], + "lock": false }