-
Notifications
You must be signed in to change notification settings - Fork 0
132 lines (128 loc) · 4.14 KB
/
Copy pathtypescript.yaml
File metadata and controls
132 lines (128 loc) · 4.14 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
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
---
name: TypeScript
on:
push:
branches: [main]
pull_request:
branches: ["*"]
merge_group:
types: [checks_requested]
permissions:
contents: read
concurrency:
group: "typescript-${{ github.event.pull_request.number || github.sha }}"
cancel-in-progress: true
jobs:
paths-filter:
runs-on: depot-ubuntu-24.04-arm-small
outputs:
changed: ${{ steps.filter.outputs.changed }}
steps:
- uses: actions/checkout@v7
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
id: filter
with:
filters: |
changed:
- '.github/workflows/typescript.yaml'
- 'Magefile.go'
- 'go.mod'
- 'go.sum'
- 'package.json'
- 'pnpm-lock.yaml'
- 'pnpm-workspace.yaml'
- 'proto-clients/spicedb-typescript-proto/**'
- 'spicedb-typescript/**'
lint:
needs: paths-filter
if: needs.paths-filter.outputs.changed == 'true'
runs-on: depot-ubuntu-24.04-arm-4
steps:
- uses: actions/checkout@v7
- uses: actions/setup-go@v6
with:
go-version-file: go.mod
- uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9
- uses: actions/setup-node@v6
with:
node-version: 20
cache: pnpm
- name: Install mage
run: go install github.com/magefile/mage@latest
- name: Install deps
run: pnpm install --frozen-lockfile
- name: Build proto package
run: pnpm --filter @spicedb/proto build
- name: Lint
run: mage -d spicedb-typescript lint
unit:
needs: paths-filter
if: needs.paths-filter.outputs.changed == 'true'
runs-on: depot-ubuntu-24.04-arm-4
steps:
- uses: actions/checkout@v7
- uses: actions/setup-go@v6
with:
go-version-file: go.mod
- uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9
- uses: actions/setup-node@v6
with:
node-version: 20
cache: pnpm
- name: Install mage
run: go install github.com/magefile/mage@latest
- name: Install deps
run: pnpm install --frozen-lockfile
- name: Build proto package
run: pnpm --filter @spicedb/proto build
- name: Proto client tests
run: mage -d proto-clients/spicedb-typescript-proto test
- name: Idiomatic client tests
run: mage -d spicedb-typescript test
integration:
needs: paths-filter
if: needs.paths-filter.outputs.changed == 'true'
runs-on: depot-ubuntu-24.04-arm-4
steps:
- uses: actions/checkout@v7
- uses: actions/setup-go@v6
with:
go-version-file: go.mod
- uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9
- uses: actions/setup-node@v6
with:
node-version: 20
cache: pnpm
- name: Install mage
run: go install github.com/magefile/mage@latest
- name: Install deps
run: pnpm install --frozen-lockfile
- name: Build proto package
run: pnpm --filter @spicedb/proto build
- name: Integration test
run: mage -d spicedb-typescript integrationTest
apicompat:
needs: paths-filter
if: needs.paths-filter.outputs.changed == 'true' && github.event_name == 'pull_request'
runs-on: depot-ubuntu-24.04-arm-small
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0
- uses: actions/setup-go@v6
with:
go-version-file: go.mod
- uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9
- uses: actions/setup-node@v6
with:
node-version: 20
cache: pnpm
- name: Install mage
run: go install github.com/magefile/mage@latest
- name: Install deps
run: pnpm install --frozen-lockfile
- name: Build proto package
run: pnpm --filter @spicedb/proto build
- name: API compatibility check
run: mage -d spicedb-typescript apiCompat origin/${{ github.base_ref }}