This repository has been archived by the owner on Dec 12, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 9
77 lines (59 loc) · 2.38 KB
/
release-snapshot.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
name: release snapshot to jfrog
on:
push:
branches:
- main
workflow_dispatch:
# Allow only one concurrent deployment
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
permissions:
contents: read
id-token: write
jobs:
publish-npm:
name: Snapshot Publish
runs-on: ubuntu-latest
steps:
- name: Checkout source
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 #v4.1.1
with:
fetch-depth: 0
submodules: "true"
# https://cashapp.github.io/hermit/usage/ci/
- name: Init Hermit
uses: cashapp/activate-hermit@31ce88b17a84941bb1b782f1b7b317856addf286 #v1.1.0
with:
cache: "true"
- uses: jfrog/setup-jfrog-cli@d82fe26823e1f25529250895d5673f65b02af085 #v4.0.1
with:
version: latest
oidc-provider-name: github # must match the OpenID Connect name from https://blockxyz.jfrog.io/ui/admin/configuration/integrations
env:
JF_URL: https://blockxyz.jfrog.io
- name: Publish snapshot
env:
REGISTRY: https://blockxyz.jfrog.io/artifactory/api/npm/tbd-oss-snapshots-npm/
run: |
set -exuo pipefail
base_version=$(jq -r .version packages/protocol/package.json)
commits_since_version_bump=$(git rev-list HEAD $(git describe --tags --abbrev=0 HEAD) --count)
latest_commit="$(git rev-parse --short=7 HEAD)"
snapshot_version="${base_version}-SNAPSHOT.${commits_since_version_bump}-${latest_commit}"
pnpm install
pnpm build
jf npm-config --global=true --repo-resolve=tbd-oss-snapshots-npm --repo-deploy=tbd-oss-snapshots-npm
for package in protocol http-client http-server; do
pushd "packages/${package}"
sed -i "s#workspace:\*#${snapshot_version}#g" package.json
# set the snapshot version
jq --arg version "${snapshot_version}" '.version = $version' package.json > package-new.json
mv package-new.json package.json
# set publishing config in package.json
jq --arg registry "${REGISTRY}" '.publishConfig.registry = $registry' package.json > package-new.json
mv package-new.json package.json
# login to jfrog and publish
jf npm publish --registry "${REGISTRY}"
popd
done
shell: bash