-
-
Notifications
You must be signed in to change notification settings - Fork 0
136 lines (107 loc) · 3.06 KB
/
ci.yml
File metadata and controls
136 lines (107 loc) · 3.06 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.1.3
- name: Use cached node_modules
uses: actions/cache@v5.0.3
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.1.3
- name: Use cached node_modules
uses: actions/cache@v5.0.3
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
services:
postgres:
image: postgres:17
env:
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
POSTGRES_DB: test_db
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
env:
DATABASE_URL: postgresql://postgres:postgres@localhost:5432/test_db
POSTGRES_HOST: localhost
POSTGRES_PORT: 5432
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: test_db
steps:
- uses: actions/checkout@v6.0.2
- name: Install Bun
uses: oven-sh/setup-bun@v2.1.3
- name: Use cached node_modules
uses: actions/cache@v5.0.3
with:
path: node_modules
key: node-modules-${{ hashFiles('**/bun.lock') }}
restore-keys: |
node-modules-
- name: Install Dependencies
run: bun install
- name: Wait for PostgreSQL
run: |
echo "Waiting for PostgreSQL to be ready..."
timeout 60 bash -c 'until pg_isready -h localhost -p 5432 -U postgres; do sleep 1; done'
echo "PostgreSQL is ready!"
- name: Unit Tests
run: bun run test
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/bun-query-builder'
env:
PANTRY_REGISTRY_TOKEN: ${{ secrets.PANTRY_TOKEN }}