-
Notifications
You must be signed in to change notification settings - Fork 56
130 lines (126 loc) · 4.01 KB
/
primary.yml
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
name: BAML Runtime
on:
pull_request:
branches:
- canary
push:
paths:
- "engine/**"
- ".github/workflows/primary.yml"
branches:
- canary
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
pull-requests: read
repository-projects: read
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Check for NO_CI_CHECKS
run: |
CHECK_COMMIT=$(echo "${{ github.event.head_commit.message }}" | grep -c 'NO_CI_CHECKS=true')
if [ "${{ github.event_name }}" = "pull_request" ]; then
CHECK_PR=$(echo "${{ github.event.pull_request.body }}" | grep -c 'NO_CI_CHECKS=true')
else
CHECK_PR=0
fi
if [ "$CHECK_COMMIT" -gt 0 ] || [ "$CHECK_PR" -gt 0 ]; then
echo "NO_CI_CHECKS=true found, skipping job."
exit 0
fi
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v3
with:
version: 9.0.6
run_install: false
- uses: actions/setup-node@v4
with:
node-version: 20
cache: pnpm
cache-dependency-path: |
typescript/**/pnpm-lock.yaml
- name: Install Node
run: pnpm install --frozen-lockfile
working-directory: typescript
- name: Check TS Lint
run: pnpm biome ci . --organize-imports-enabled=false
working-directory: typescript
test_node_generator:
runs-on: ubuntu-latest
steps:
- name: Check for NO_CI_CHECKS
run: |
CHECK_COMMIT=$(echo "${{ github.event.head_commit.message }}" | grep -c 'NO_CI_CHECKS=true')
if [ "${{ github.event_name }}" = "pull_request" ]; then
CHECK_PR=$(echo "${{ github.event.pull_request.body }}" | grep -c 'NO_CI_CHECKS=true')
else
CHECK_PR=0
fi
if [ "$CHECK_COMMIT" -gt 0 ] || [ "$CHECK_PR" -gt 0 ]; then
echo "NO_CI_CHECKS=true found, skipping job."
exit 0
fi
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v3
with:
version: 9.0.6
run_install: false
- uses: actions/setup-node@v4
with:
node-version: 20
cache: pnpm
cache-dependency-path: |
engine/language_client_typescript/pnpm-lock.yaml
integ-tests/typescript/pnpm-lock.yaml
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
- uses: Swatinem/rust-cache@v2
with:
workspaces: engine
- name: Install Node
run: pnpm install --frozen-lockfile
working-directory: engine/language_client_typescript
- name: Build Node
run: pnpm build
working-directory: engine/language_client_typescript
- name: Install Node
run: pnpm install --frozen-lockfile
working-directory: integ-tests/typescript
- name: Test Node Generator
run: pnpm generate
working-directory: integ-tests/typescript
- name: Ensure No Changes
run: git diff --exit-code
build:
runs-on: ubuntu-latest
steps:
- name: Check for NO_CI_CHECKS
run: |
CHECK_COMMIT=$(echo "${{ github.event.head_commit.message }}" | grep -c 'NO_CI_CHECKS=true')
if [ "${{ github.event_name }}" = "pull_request" ]; then
CHECK_PR=$(echo "${{ github.event.pull_request.body }}" | grep -c 'NO_CI_CHECKS=true')
else
CHECK_PR=0
fi
if [ "$CHECK_COMMIT" -gt 0 ] || [ "$CHECK_PR" -gt 0 ]; then
echo "NO_CI_CHECKS=true found, skipping job."
exit 0
fi
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
- uses: Swatinem/rust-cache@v2
with:
workspaces: engine
- name: Build Rust
run: cargo build
working-directory: engine
- name: Test Rust
run: cargo test
working-directory: engine