Skip to content

Commit 3fc7654

Browse files
committed
ci: add experimental Bun test run
Add a non-blocking CI job that runs tests under Bun's runtime using bunx --bun vitest. Uses continue-on-error so failures don't block merges while we assess Bun compatibility.
1 parent b4c62ed commit 3fc7654

1 file changed

Lines changed: 85 additions & 0 deletions

File tree

.github/workflows/tests.yml

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,3 +84,88 @@ jobs:
8484
# Run TurboRepo tests
8585
- name: Run tests
8686
run: pnpm run test
87+
88+
run-tests-bun:
89+
name: Run Tests (Bun)
90+
runs-on: blacksmith-4vcpu-ubuntu-2404
91+
continue-on-error: true
92+
93+
steps:
94+
- name: Checkout Repo
95+
uses: actions/checkout@v3
96+
97+
- uses: oven-sh/setup-bun@v2
98+
99+
- uses: pnpm/action-setup@v4
100+
name: Install pnpm
101+
with:
102+
run_install: false
103+
104+
- name: Install Node.js
105+
uses: actions/setup-node@v4
106+
with:
107+
node-version: 22
108+
cache: 'pnpm'
109+
110+
- name: Install dependencies
111+
run: pnpm install
112+
113+
- name: Create .env file in ./packages/protect/
114+
run: |
115+
touch ./packages/protect/.env
116+
echo "CS_WORKSPACE_CRN=${{ secrets.CS_WORKSPACE_CRN }}" >> ./packages/protect/.env
117+
echo "CS_CLIENT_ID=${{ secrets.CS_CLIENT_ID }}" >> ./packages/protect/.env
118+
echo "CS_CLIENT_KEY=${{ secrets.CS_CLIENT_KEY }}" >> ./packages/protect/.env
119+
echo "CS_CLIENT_ACCESS_KEY=${{ secrets.CS_CLIENT_ACCESS_KEY }}" >> ./packages/protect/.env
120+
echo "SUPABASE_URL=${{ secrets.SUPABASE_URL }}" >> ./packages/protect/.env
121+
echo "SUPABASE_ANON_KEY=${{ secrets.SUPABASE_ANON_KEY }}" >> ./packages/protect/.env
122+
echo "DATABASE_URL=${{ secrets.DATABASE_URL }}" >> ./packages/protect/.env
123+
echo "CS_ZEROKMS_HOST=https://ap-southeast-2.aws.zerokms.cipherstashmanaged.net" >> ./packages/protect/.env
124+
echo "CS_CTS_HOST=https://ap-southeast-2.aws.cts.cipherstashmanaged.net" >> ./packages/protect/.env
125+
126+
- name: Create .env file in ./packages/stack/
127+
run: |
128+
touch ./packages/stack/.env
129+
echo "CS_WORKSPACE_CRN=${{ secrets.CS_WORKSPACE_CRN }}" >> ./packages/stack/.env
130+
echo "CS_CLIENT_ID=${{ secrets.CS_CLIENT_ID }}" >> ./packages/stack/.env
131+
echo "CS_CLIENT_KEY=${{ secrets.CS_CLIENT_KEY }}" >> ./packages/stack/.env
132+
echo "CS_CLIENT_ACCESS_KEY=${{ secrets.CS_CLIENT_ACCESS_KEY }}" >> ./packages/stack/.env
133+
echo "SUPABASE_URL=${{ secrets.SUPABASE_URL }}" >> ./packages/stack/.env
134+
echo "SUPABASE_ANON_KEY=${{ secrets.SUPABASE_ANON_KEY }}" >> ./packages/stack/.env
135+
echo "DATABASE_URL=${{ secrets.DATABASE_URL }}" >> ./packages/stack/.env
136+
echo "CS_ZEROKMS_HOST=https://ap-southeast-2.aws.zerokms.cipherstashmanaged.net" >> ./packages/stack/.env
137+
echo "CS_CTS_HOST=https://ap-southeast-2.aws.cts.cipherstashmanaged.net" >> ./packages/stack/.env
138+
139+
- name: Create .env file in ./packages/protect-dynamodb/
140+
run: |
141+
touch ./packages/protect-dynamodb/.env
142+
echo "CS_WORKSPACE_CRN=${{ secrets.CS_WORKSPACE_CRN }}" >> ./packages/protect-dynamodb/.env
143+
echo "CS_CLIENT_ID=${{ secrets.CS_CLIENT_ID }}" >> ./packages/protect-dynamodb/.env
144+
echo "CS_CLIENT_KEY=${{ secrets.CS_CLIENT_KEY }}" >> ./packages/protect-dynamodb/.env
145+
echo "CS_CLIENT_ACCESS_KEY=${{ secrets.CS_CLIENT_ACCESS_KEY }}" >> ./packages/protect-dynamodb/.env
146+
echo "CS_ZEROKMS_HOST=https://ap-southeast-2.aws.zerokms.cipherstashmanaged.net" >> ./packages/protect-dynamodb/.env
147+
echo "CS_CTS_HOST=https://ap-southeast-2.aws.cts.cipherstashmanaged.net" >> ./packages/protect-dynamodb/.env
148+
149+
- name: Create .env file in ./packages/drizzle/
150+
run: |
151+
touch ./packages/drizzle/.env
152+
echo "CS_WORKSPACE_CRN=${{ secrets.CS_WORKSPACE_CRN }}" >> ./packages/drizzle/.env
153+
echo "CS_CLIENT_ID=${{ secrets.CS_CLIENT_ID }}" >> ./packages/drizzle/.env
154+
echo "CS_CLIENT_KEY=${{ secrets.CS_CLIENT_KEY }}" >> ./packages/drizzle/.env
155+
echo "CS_CLIENT_ACCESS_KEY=${{ secrets.CS_CLIENT_ACCESS_KEY }}" >> ./packages/drizzle/.env
156+
echo "DATABASE_URL=${{ secrets.DATABASE_URL }}" >> ./packages/drizzle/.env
157+
echo "CS_ZEROKMS_HOST=https://ap-southeast-2.aws.zerokms.cipherstashmanaged.net" >> ./packages/drizzle/.env
158+
echo "CS_CTS_HOST=https://ap-southeast-2.aws.cts.cipherstashmanaged.net" >> ./packages/drizzle/.env
159+
160+
# Build with Node (turbo/tsup need Node), then run tests with Bun
161+
- name: Build packages
162+
run: pnpm turbo build --filter './packages/*'
163+
164+
- name: Run tests with Bun
165+
run: |
166+
for dir in packages/schema packages/protect packages/stack packages/protect-dynamodb packages/drizzle packages/stack-forge; do
167+
if [ -f "$dir/vitest.config.ts" ] || [ -f "$dir/package.json" ]; then
168+
echo "--- Testing $dir ---"
169+
(cd "$dir" && bunx --bun vitest run) || true
170+
fi
171+
done

0 commit comments

Comments
 (0)