-
Notifications
You must be signed in to change notification settings - Fork 0
136 lines (106 loc) · 3.27 KB
/
Copy pathci.yml
File metadata and controls
136 lines (106 loc) · 3.27 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
136
name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6.0.2
- name: Install Bun
uses: oven-sh/setup-bun@v2.2.0
- name: Use cached node_modules
uses: actions/cache@v5
with:
path: node_modules
key: node-modules-${{ hashFiles('**/bun.lock') }}
restore-keys: |
node-modules-
- name: Install Dependencies
run: bun install
- name: Lint
run: bun run lint
typecheck:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6.0.2
- name: Install Bun
uses: oven-sh/setup-bun@v2.2.0
- name: Use cached node_modules
uses: actions/cache@v5
with:
path: node_modules
key: node-modules-${{ hashFiles('**/bun.lock') }}
restore-keys: |
node-modules-
- name: Install Dependencies
run: bun install
- name: Typecheck
run: bun --bun run typecheck
test:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v6.0.2
- name: Install Bun
uses: oven-sh/setup-bun@v2.2.0
with:
bun-version: 1.3.14
- name: Use cached node_modules
uses: actions/cache@v5
with:
path: node_modules
key: node-modules-${{ hashFiles('**/bun.lock') }}
restore-keys: |
node-modules-
- name: Install Dependencies
run: bun install
- name: Build
run: bun run build
- name: Unit Test
run: |
# Workaround for Bun test runner hanging in CI after tests complete
# Tests pass in ~15s but Bun doesn't exit, so we timeout after 30s
# and verify tests passed by checking output
timeout 30 bun test 2>&1 | tee test-output.log
EXIT_CODE=$?
if [ $EXIT_CODE -eq 124 ]; then
# Timeout occurred - check if tests actually passed
if grep -q " 0 fail" test-output.log && grep -q " pass" test-output.log; then
echo "✓ All tests passed (Bun hung after completion, killed by timeout)"
exit 0
else
echo "✗ Tests timed out with failures or didn't complete"
cat test-output.log
exit 1
fi
fi
# Tests completed normally (Bun didn't hang)
exit $EXIT_CODE
working-directory: packages/bumpx
timeout-minutes: 2
publish-commit:
needs: [lint, typecheck, test]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Setup Pantry
uses: home-lang/pantry/packages/action@main
- name: Install Dependencies
run: bun install
- name: Build
run: bun run build
- name: Publish Commit
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
run: pantry publish:commit './packages/action' && pantry publish:commit './packages/bumpx'
env:
PANTRY_REGISTRY_TOKEN: ${{ secrets.PANTRY_TOKEN }}