-
Notifications
You must be signed in to change notification settings - Fork 2
135 lines (114 loc) · 4.08 KB
/
release-dev.yml
File metadata and controls
135 lines (114 loc) · 4.08 KB
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
name: Release Dev
on:
push:
tags:
- "v*-dev*"
permissions:
contents: write
id-token: write
env:
NODE_VERSION: "20.x"
jobs:
build-and-publish:
runs-on: ubuntu-latest
steps:
- name: Enforce dev tag format
run: |
VERSION="${{ github.ref_name }}"
if [[ ! "$VERSION" =~ ^v[0-9]+\.[0-9]+\.[0-9]+-dev ]]; then
echo "Version '$VERSION' does not match required pattern v<major>.<minor>.<patch>-dev*"
exit 1
fi
echo "VERSION=$VERSION" >> $GITHUB_ENV
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 0
- name: Set version from tag
run: |
# Clean leading v from provided version
PACKAGE_VERSION="${VERSION#v}"
echo "VERSION=$VERSION" >> $GITHUB_ENV
echo "PACKAGE_VERSION=$PACKAGE_VERSION" >> $GITHUB_ENV
echo "Building dev version: $PACKAGE_VERSION"
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 9
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
registry-url: "https://registry.npmjs.org"
cache: "pnpm"
- name: Install dependencies
working-directory: .
run: pnpm install --frozen-lockfile
- name: Build SDK (dev) - dependency for CLI
working-directory: ./packages/sdk
env:
BUILD_TYPE: dev
PACKAGE_VERSION: ${{ env.PACKAGE_VERSION }}
POSTHOG_API_KEY_BUILD_TIME: ${{ secrets.POSTHOG_API_KEY }}
run: |
pnpm run build
- name: Build CLI (dev)
working-directory: ./packages/cli
env:
BUILD_TYPE: dev
PACKAGE_VERSION: ${{ env.PACKAGE_VERSION }}
POSTHOG_API_KEY_BUILD_TIME: ${{ secrets.POSTHOG_API_KEY }}
run: |
pnpm run build
- name: Get short sha
run: echo "SHORT_SHA=${GITHUB_SHA::7}" >> $GITHUB_ENV
env:
GITHUB_SHA: ${{ github.sha }}
- name: Generate SDK VERSION file
working-directory: ./packages/sdk
env:
PACKAGE_VERSION: ${{ env.PACKAGE_VERSION }}
GITHUB_SHA: ${{ env.SHORT_SHA }}
run: |
node scripts/generate-version.js
- name: Generate CLI VERSION file
working-directory: ./packages/cli
env:
PACKAGE_VERSION: ${{ env.PACKAGE_VERSION }}
GITHUB_SHA: ${{ env.SHORT_SHA }}
run: |
node scripts/generate-version.js
- name: Update SDK package.json for publishing
working-directory: ./packages/sdk
run: |
# Update version (keep default package name)
npm pkg set version="${{ env.PACKAGE_VERSION }}"
- name: Publish SDK to npm (dev)
working-directory: ./packages/sdk
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
run: |
npm publish --tag dev --access public
- name: Update CLI package.json for dev namespace
working-directory: ./packages/cli
run: |
# Update version to tag as dev
npm pkg set version="${{ env.PACKAGE_VERSION }}"
# Update SDK dependency to match published version
npm pkg set "dependencies.@layr-labs/ecloud-sdk"="${{ env.PACKAGE_VERSION }}"
# Verify changes
cat package.json | grep -A 2 '"name"'
cat package.json | grep -A 1 '"@layr-labs/ecloud-sdk"'
- name: Publish CLI to npm (dev)
working-directory: ./packages/cli
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
run: |
npm publish --tag dev --access public
- name: Summary
run: |
echo "✅ Dev release published successfully!"
echo "📦 SDK Package: @layr-labs/ecloud-sdk@${{ env.PACKAGE_VERSION }} (tag: dev)"
echo "📦 CLI Package: @layr-labs/ecloud-cli@${{ env.PACKAGE_VERSION }} (tag: dev)"
echo "🏷️ Tag: dev"
echo "🔗 Install with: npm install -g @layr-labs/ecloud-cli@dev"