Skip to content

Commit a1f8714

Browse files
authored
script for per-package checkin if release is needed (#49)
1 parent 8a6f308 commit a1f8714

File tree

2 files changed

+48
-22
lines changed

2 files changed

+48
-22
lines changed
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#!/bin/sh
2+
3+
# This script checks if the specified package has changesets in the current commit.
4+
5+
set -eu
6+
7+
if [ $# -lt 1 ]; then
8+
echo "Error: Package name is required as the first argument." >&2
9+
exit 1
10+
fi
11+
12+
PACKAGE_NAME=$1
13+
PACKAGE_CHANGES=$(node -e "require('@changesets/read').default(process.cwd()).then(result => console.log(result.flatMap(changeset => changeset.releases.flatMap(release => release.name)).includes('${PACKAGE_NAME}')))")
14+
15+
echo "${PACKAGE_CHANGES}"

.github/workflows/release.yml

Lines changed: 33 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -54,34 +54,45 @@ jobs:
5454
if: needs.is_release.outputs.release == 'true'
5555
runs-on: ubuntu-latest
5656
outputs:
57-
js-sdk: ${{ steps.filter.outputs.js-sdk }}
58-
python-sdk: ${{ steps.filter.outputs.python-sdk }}
57+
js-sdk: ${{ steps.js.outputs.release }}
58+
python-sdk: ${{ steps.python.outputs.release }}
5959
steps:
60-
- name: Checkout repository
60+
- name: Checkout Repo
6161
uses: actions/checkout@v3
62-
with:
63-
fetch-depth: 0
6462

65-
- name: Get the last release
66-
id: last_release
67-
uses: cardinalby/git-get-release-action@v1
68-
env:
69-
GITHUB_TOKEN: ${{ github.token }}
63+
- name: Install pnpm
64+
uses: pnpm/action-setup@v3
65+
id: pnpm-install
7066
with:
71-
latest: true
72-
prerelease: false
73-
draft: false
67+
version: 9.5
7468

75-
- name: Find changes since the last release
76-
uses: dorny/paths-filter@v2
77-
id: filter
69+
- name: Setup Node
70+
uses: actions/setup-node@v3
7871
with:
79-
base: ${{ steps.last_release.outputs.tag_name }}
80-
filters: |
81-
js-sdk:
82-
- 'packages/js-sdk/**'
83-
python-sdk:
84-
- 'packages/python-sdk/**'
72+
node-version: "18.x"
73+
registry-url: "https://registry.npmjs.org"
74+
cache: pnpm
75+
cache-dependency-path: pnpm-lock.yaml
76+
77+
- name: Configure pnpm
78+
run: |
79+
pnpm config set auto-install-peers true
80+
pnpm config set exclude-links-from-lockfile true
81+
82+
- name: Install dependencies
83+
run: pnpm install --frozen-lockfile
84+
85+
- name: Check JavasScript SDK Release
86+
id: js
87+
run: |
88+
IS_RELEASE=$(./.github/scripts/is_release_for_package.sh "@e2b/desktop")
89+
echo "release=$IS_RELEASE" >> "$GITHUB_OUTPUT"
90+
91+
- name: Check Python SDK Release
92+
id: python
93+
run: |
94+
IS_RELEASE=$(./.github/scripts/is_release_for_package.sh "@e2b/desktop-python")
95+
echo "release=$IS_RELEASE" >> "$GITHUB_OUTPUT"
8596
8697
publish:
8798
name: Publish

0 commit comments

Comments
 (0)