Skip to content

Commit 20ca615

Browse files
committed
test new is_release check
1 parent b7da3e1 commit 20ca615

File tree

3 files changed

+145
-25
lines changed

3 files changed

+145
-25
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/playground.yml

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
name: Show Release Outputs
2+
3+
on:
4+
push: {}
5+
6+
jobs:
7+
is_release:
8+
name: Is release?
9+
runs-on: ubuntu-latest
10+
outputs:
11+
release: ${{ steps.version.outputs.release }}
12+
steps:
13+
- name: Checkout Repo
14+
uses: actions/checkout@v3
15+
16+
- name: Install pnpm
17+
uses: pnpm/action-setup@v3
18+
id: pnpm-install
19+
with:
20+
version: 9.5
21+
22+
- name: Setup Node
23+
uses: actions/setup-node@v3
24+
with:
25+
node-version: "18.x"
26+
registry-url: "https://registry.npmjs.org"
27+
cache: pnpm
28+
cache-dependency-path: pnpm-lock.yaml
29+
30+
- name: Configure pnpm
31+
run: |
32+
pnpm config set auto-install-peers true
33+
pnpm config set exclude-links-from-lockfile true
34+
35+
- name: Install dependencies
36+
run: pnpm install --frozen-lockfile
37+
38+
- name: Check if new version
39+
id: version
40+
run: |
41+
IS_RELEASE=$(./.github/scripts/is_release.sh)
42+
echo "release=$IS_RELEASE" >> "$GITHUB_OUTPUT"
43+
44+
changes:
45+
name: Repository changes
46+
needs: [is_release]
47+
if: needs.is_release.outputs.release == 'true'
48+
runs-on: ubuntu-latest
49+
outputs:
50+
js: ${{ steps.js.outputs.release }}
51+
python: ${{ steps.python.outputs.release }}
52+
charts: ${{ steps.charts.outputs.release }}
53+
template: ${{ steps.template.outputs.release }}
54+
steps:
55+
- name: Checkout repository
56+
uses: actions/checkout@v3
57+
with:
58+
fetch-depth: 0
59+
60+
- name: Get the last release
61+
id: last_release
62+
uses: cardinalby/git-get-release-action@v1
63+
env:
64+
GITHUB_TOKEN: ${{ github.token }}
65+
with:
66+
latest: true
67+
prerelease: false
68+
draft: false
69+
70+
- name: Check JavasScript SDK Release
71+
id: js
72+
run: |
73+
IS_RELEASE=$(./.github/scripts/is_release_for_package.sh "@e2b/code-interpreter")
74+
echo "release=$IS_RELEASE" >> "$GITHUB_OUTPUT"
75+
76+
- name: Check Python SDK Release
77+
id: python
78+
run: |
79+
IS_RELEASE=$(./.github/scripts/is_release_for_package.sh "e2b-code-interpreter")
80+
echo "release=$IS_RELEASE" >> "$GITHUB_OUTPUT"
81+
82+
- name: Check Python SDK Release
83+
id: charts
84+
run: |
85+
IS_RELEASE=$(./.github/scripts/is_release_for_package.sh "e2b-charts")
86+
echo "release=$IS_RELEASE" >> "$GITHUB_OUTPUT"
87+
88+
- name: Check Template SDK Release
89+
id: template
90+
run: |
91+
IS_RELEASE=$(./.github/scripts/is_release_for_package.sh "@e2b/code-interpreter-template")
92+
echo "release=$IS_RELEASE" >> "$GITHUB_OUTPUT"
93+
94+
changes_print:
95+
name: Print changes
96+
needs: [changes]
97+
runs-on: ubuntu-latest
98+
- name: Print outputs
99+
run: |
100+
echo "JS Release: ${{ changes.outputs.js }}"
101+
echo "Python Release: ${{ changes.outputs.python }}"
102+
echo "Charts Release: ${{ changes.outputs.charts }}"
103+
echo "Template Release: ${{ changes.outputs.template }}"

.github/workflows/release.yml

Lines changed: 27 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,10 @@ jobs:
5454
if: needs.is_release.outputs.release == 'true'
5555
runs-on: ubuntu-latest
5656
outputs:
57-
js: ${{ steps.filter.outputs.js }}
58-
python: ${{ steps.filter.outputs.python }}
59-
charts: ${{ steps.filter.outputs.charts }}
60-
template: ${{ steps.filter.outputs.template }}
57+
js: ${{ steps.js.outputs.release }}
58+
python: ${{ steps.python.outputs.release }}
59+
charts: ${{ steps.charts.outputs.release }}
60+
template: ${{ steps.template.outputs.release }}
6161
steps:
6262
- name: Checkout repository
6363
uses: actions/checkout@v3
@@ -74,27 +74,29 @@ jobs:
7474
prerelease: false
7575
draft: false
7676

77-
- name: Find changes since the last release
78-
uses: dorny/[email protected]
79-
id: filter
80-
with:
81-
base: ${{ steps.last_release.outputs.tag_name }}
82-
predicate-quantifier: 'every'
83-
filters: |
84-
js:
85-
- 'js/src/**'
86-
- 'js/package.json'
87-
python:
88-
- 'python/e2b_code_interpreter/**'
89-
- 'python/poetry.lock'
90-
- 'python/pyproject.toml'
91-
charts:
92-
- 'chart_data_extractor/e2b_charts/**'
93-
- 'chart_data_extractor/poetry.lock'
94-
- 'chart_data_extractor/pyproject.toml'
95-
template:
96-
- 'template/**'
97-
- '!template/package.json'
77+
- name: Check JavasScript SDK Release
78+
id: js
79+
run: |
80+
IS_RELEASE=$(./.github/scripts/is_release_for_package.sh "@e2b/code-interpreter")
81+
echo "release=$IS_RELEASE" >> "$GITHUB_OUTPUT"
82+
83+
- name: Check Python SDK Release
84+
id: python
85+
run: |
86+
IS_RELEASE=$(./.github/scripts/is_release_for_package.sh "e2b-code-interpreter")
87+
echo "release=$IS_RELEASE" >> "$GITHUB_OUTPUT"
88+
89+
- name: Check Python SDK Release
90+
id: charts
91+
run: |
92+
IS_RELEASE=$(./.github/scripts/is_release_for_package.sh "e2b-charts")
93+
echo "release=$IS_RELEASE" >> "$GITHUB_OUTPUT"
94+
95+
- name: Check Template SDK Release
96+
id: template
97+
run: |
98+
IS_RELEASE=$(./.github/scripts/is_release_for_package.sh "@e2b/code-interpreter-template")
99+
echo "release=$IS_RELEASE" >> "$GITHUB_OUTPUT"
98100
99101
charts-tests:
100102
name: Charts tests

0 commit comments

Comments
 (0)