tangled
alpha
login
or
join now
samanthanguyen.me
/
drifting-starlight
1
fork
atom
a homebrewed DnD campaign based in the Honkai: Star Rail universe
hsr
honkaistarrail
dnd
1
fork
atom
overview
issues
7
pulls
pipelines
ci: migrate from GitHub CI to Spindle CI
samanthanguyen.me
2 months ago
8c9a7ae8
f1dfa0a6
4/4
codeqa-fmt.yml
success
28s
codeqa-lint.yml
success
29s
deploy-preview.yml
success
1m 39s
test.yml
success
1m 26s
+96
-237
8 changed files
expand all
collapse all
unified
split
.github
dependabot.yml
workflows
ci.yml
deploy.yml
.tangled
workflows
codeqa-fmt.yml
codeqa-lint.yml
deploy-preview.yml
deploy-prod.yml
test.yml
-78
.github/dependabot.yml
reviewed
···
1
1
-
# To get started with Dependabot version updates, you'll need to specify which
2
2
-
# package ecosystems to update and where the package manifests are located.
3
3
-
# Please see the documentation for all configuration options:
4
4
-
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5
5
-
6
6
-
version: 2
7
7
-
updates:
8
8
-
- package-ecosystem: 'npm'
9
9
-
directory: '/'
10
10
-
labels:
11
11
-
- deps/js
12
12
-
schedule:
13
13
-
interval: 'monthly'
14
14
-
commit-message:
15
15
-
prefix: 'deps(npm):'
16
16
-
groups:
17
17
-
typescript:
18
18
-
patterns:
19
19
-
- 'node-modules-inspector'
20
20
-
- 'typescript'
21
21
-
- 'type-fest'
22
22
-
- '@types/node'
23
23
-
svelte:
24
24
-
patterns:
25
25
-
- 'bits-ui'
26
26
-
- 'svelte'
27
27
-
- 'svelte-*'
28
28
-
- '@sveltejs/*'
29
29
-
- 'mdsvex'
30
30
-
- 'mode-watcher'
31
31
-
- 'chromatic'
32
32
-
- 'storybook'
33
33
-
- '@storybook/*'
34
34
-
- '@lucide/svelte'
35
35
-
- '@tanstack/svelte-table'
36
36
-
frontend-backend:
37
37
-
patterns:
38
38
-
- 'tailwind-*'
39
39
-
- 'tailwindcss'
40
40
-
- '@tailwindcss/*'
41
41
-
- 'lightningcss'
42
42
-
- 'lorem-ipsum'
43
43
-
- 'supabase'
44
44
-
- '@supabase/*'
45
45
-
- 'zod'
46
46
-
- 'wrangler'
47
47
-
voidzero-vite:
48
48
-
patterns:
49
49
-
- 'eslint-plugin-svelte'
50
50
-
- 'oxfmt'
51
51
-
- 'oxlint'
52
52
-
- 'oxlint-tsgolint'
53
53
-
- 'publint'
54
54
-
- 'playwright'
55
55
-
- 'rolldown'
56
56
-
- 'rolldown-vite'
57
57
-
- 'rolldown-plugin-*'
58
58
-
- 'vite'
59
59
-
- 'vitest'
60
60
-
- 'vitest-*'
61
61
-
- '@vitest/*'
62
62
-
- 'tsdown'
63
63
-
open-pull-requests-limit: 4
64
64
-
65
65
-
- package-ecosystem: 'github-actions'
66
66
-
directory: '/'
67
67
-
labels:
68
68
-
- deps/actions
69
69
-
schedule:
70
70
-
interval: 'daily'
71
71
-
commit-message:
72
72
-
prefix: 'deps(gha):'
73
73
-
groups:
74
74
-
github:
75
75
-
patterns:
76
76
-
- 'github/*'
77
77
-
- 'actions/*'
78
78
-
open-pull-requests-limit: 4
-78
.github/workflows/ci.yml
reviewed
···
1
1
-
name: Node.js CI
2
2
-
3
3
-
on:
4
4
-
push:
5
5
-
branches:
6
6
-
- main
7
7
-
pull_request:
8
8
-
branches:
9
9
-
- main
10
10
-
workflow_dispatch:
11
11
-
12
12
-
concurrency:
13
13
-
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
14
14
-
cancel-in-progress: true
15
15
-
16
16
-
jobs:
17
17
-
build:
18
18
-
name: build
19
19
-
runs-on: ubuntu-latest
20
20
-
steps:
21
21
-
- name: Checkout repository
22
22
-
uses: actions/checkout@v6
23
23
-
- name: Install pnpm
24
24
-
uses: pnpm/action-setup@v4
25
25
-
with:
26
26
-
version: 10
27
27
-
- name: Install Node.js
28
28
-
uses: actions/setup-node@v6
29
29
-
with:
30
30
-
node-version: latest
31
31
-
cache: 'pnpm'
32
32
-
- name: Install dependencies
33
33
-
run: pnpm install --verbose
34
34
-
- name: Build packages
35
35
-
run: pnpm run build
36
36
-
env:
37
37
-
PUBLIC_SUPABASE_URL: ${{ secrets.PUBLIC_SUPABASE_URL }}
38
38
-
PUBLIC_SUPABASE_ANON_KEY: ${{ secrets.PUBLIC_SUPABASE_ANON_KEY }}
39
39
-
PUBLIC_SUPABASE_PUBLISHABLE_KEY: ${{ secrets.PUBLIC_SUPABASE_PUBLISHABLE_KEY }}
40
40
-
DISCORD_CLIENT_ID: ${{ secrets.DISCORD_CLIENT_ID }}
41
41
-
DISCORD_CLIENT_SECRET: ${{ secrets.DISCORD_CLIENT_SECRET }}
42
42
-
- name: Run tests
43
43
-
run: pnpm run test-ci
44
44
-
45
45
-
codequality:
46
46
-
name: codequality (${{ matrix.tool }})
47
47
-
runs-on: ubuntu-latest
48
48
-
strategy:
49
49
-
matrix:
50
50
-
# - tool: used for job name + running `npx {{tool}} --version`
51
51
-
# - tool-purpose: used for job-step name via `Run {{tool-purpose}} checks`
52
52
-
# - npm-script: used for running the actual command via `npm run {{npm-script}}`
53
53
-
include:
54
54
-
- tool: oxfmt
55
55
-
tool-purpose: formatter
56
56
-
npm-script: fmt-ci
57
57
-
58
58
-
- tool: oxlint
59
59
-
tool-purpose: linter
60
60
-
npm-script: lint
61
61
-
steps:
62
62
-
- name: Checkout repository
63
63
-
uses: actions/checkout@v6
64
64
-
- name: Install pnpm
65
65
-
uses: pnpm/action-setup@v4
66
66
-
with:
67
67
-
version: 10
68
68
-
- name: Install Node.js
69
69
-
uses: actions/setup-node@v6
70
70
-
with:
71
71
-
node-version: latest
72
72
-
cache: 'pnpm'
73
73
-
- name: Install dependencies
74
74
-
run: pnpm install --verbose
75
75
-
- name: Print environment info
76
76
-
run: pnpm dlx ${{ matrix.tool }} --version
77
77
-
- name: Run ${{ matrix.tool-purpose }} checks
78
78
-
run: pnpm run ${{ matrix.npm-script }}
-81
.github/workflows/deploy.yml
reviewed
···
1
1
-
name: Deployment
2
2
-
3
3
-
on:
4
4
-
push:
5
5
-
workflow_dispatch:
6
6
-
7
7
-
concurrency:
8
8
-
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
9
9
-
cancel-in-progress: true
10
10
-
11
11
-
jobs:
12
12
-
deploy-storybook:
13
13
-
name: Deploy Storybook to Chromatic
14
14
-
runs-on: ubuntu-latest
15
15
-
steps:
16
16
-
- name: Checkout repository
17
17
-
uses: actions/checkout@v6
18
18
-
with:
19
19
-
fetch-depth: 0
20
20
-
- name: Install pnpm
21
21
-
uses: pnpm/action-setup@v4
22
22
-
with:
23
23
-
version: 10
24
24
-
- name: Install Node.js
25
25
-
uses: actions/setup-node@v6
26
26
-
with:
27
27
-
node-version: latest
28
28
-
cache: 'pnpm'
29
29
-
- name: Install dependencies
30
30
-
run: pnpm install --verbose
31
31
-
- name: Build packages
32
32
-
run: pnpm run build
33
33
-
env:
34
34
-
PUBLIC_SUPABASE_URL: ${{ secrets.PUBLIC_SUPABASE_URL }}
35
35
-
PUBLIC_SUPABASE_ANON_KEY: ${{ secrets.PUBLIC_SUPABASE_ANON_KEY }}
36
36
-
PUBLIC_SUPABASE_PUBLISHABLE_KEY: ${{ secrets.PUBLIC_SUPABASE_PUBLISHABLE_KEY }}
37
37
-
DISCORD_CLIENT_ID: ${{ secrets.DISCORD_CLIENT_ID }}
38
38
-
DISCORD_CLIENT_SECRET: ${{ secrets.DISCORD_CLIENT_SECRET }}
39
39
-
- name: Run Chromatic
40
40
-
uses: chromaui/action@latest
41
41
-
with:
42
42
-
projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
43
43
-
workingDir: ./app
44
44
-
onlyChanged: true
45
45
-
46
46
-
deploy-app:
47
47
-
runs-on: ubuntu-latest
48
48
-
name: Deploy App to CloudFlare Workers
49
49
-
environment:
50
50
-
name: Drifting Starlight
51
51
-
url: ${{ steps.deployment.outputs.deployment-url }}
52
52
-
steps:
53
53
-
- name: Checkout repository
54
54
-
uses: actions/checkout@v6
55
55
-
- name: Install pnpm
56
56
-
uses: pnpm/action-setup@v4
57
57
-
with:
58
58
-
version: 10
59
59
-
- name: Install Node.js
60
60
-
uses: actions/setup-node@v6
61
61
-
with:
62
62
-
node-version: latest
63
63
-
cache: 'pnpm'
64
64
-
- name: Install dependencies
65
65
-
run: pnpm install --verbose
66
66
-
- name: Build packages
67
67
-
run: pnpm run build
68
68
-
env:
69
69
-
PUBLIC_SUPABASE_URL: ${{ secrets.PUBLIC_SUPABASE_URL }}
70
70
-
PUBLIC_SUPABASE_ANON_KEY: ${{ secrets.PUBLIC_SUPABASE_ANON_KEY }}
71
71
-
PUBLIC_SUPABASE_PUBLISHABLE_KEY: ${{ secrets.PUBLIC_SUPABASE_PUBLISHABLE_KEY }}
72
72
-
DISCORD_CLIENT_ID: ${{ secrets.DISCORD_CLIENT_ID }}
73
73
-
DISCORD_CLIENT_SECRET: ${{ secrets.DISCORD_CLIENT_SECRET }}
74
74
-
- name: Deploy
75
75
-
id: deployment
76
76
-
uses: cloudflare/wrangler-action@v3
77
77
-
with:
78
78
-
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
79
79
-
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
80
80
-
gitHubToken: ${{ secrets.GITHUB_TOKEN }}
81
81
-
wranglerVersion: '4.56.0'
+18
.tangled/workflows/codeqa-fmt.yml
reviewed
···
1
1
+
when:
2
2
+
- event: ['push', 'pull_request']
3
3
+
branch: ['main']
4
4
+
5
5
+
engine: 'nixery'
6
6
+
7
7
+
dependencies:
8
8
+
nixpkgs:
9
9
+
- coreutils
10
10
+
- gnused
11
11
+
- nodejs_24
12
12
+
- pnpm
13
13
+
14
14
+
steps:
15
15
+
- name: Install dependencies
16
16
+
command: pnpm install --frozen-lockfile
17
17
+
- name: Run formatter checks
18
18
+
command: pnpm run fmt-ci
+18
.tangled/workflows/codeqa-lint.yml
reviewed
···
1
1
+
when:
2
2
+
- event: ['push', 'pull_request']
3
3
+
branch: ['main']
4
4
+
5
5
+
engine: 'nixery'
6
6
+
7
7
+
dependencies:
8
8
+
nixpkgs:
9
9
+
- coreutils
10
10
+
- gnused
11
11
+
- nodejs_24
12
12
+
- pnpm
13
13
+
14
14
+
steps:
15
15
+
- name: Install dependencies
16
16
+
command: pnpm install --frozen-lockfile
17
17
+
- name: Run linter checks
18
18
+
command: pnpm run lint
+20
.tangled/workflows/deploy-preview.yml
reviewed
···
1
1
+
when:
2
2
+
- event: ['pull_request', 'manual']
3
3
+
branch: ['main']
4
4
+
5
5
+
engine: 'nixery'
6
6
+
7
7
+
dependencies:
8
8
+
nixpkgs:
9
9
+
- coreutils
10
10
+
- gnused
11
11
+
- nodejs_24
12
12
+
- pnpm
13
13
+
14
14
+
steps:
15
15
+
- name: Install dependencies
16
16
+
command: pnpm install --frozen-lockfile
17
17
+
- name: Build packages
18
18
+
command: pnpm run build
19
19
+
- name: Deploy (preview)
20
20
+
command: pnpx wrangler versions upload
+20
.tangled/workflows/deploy-prod.yml
reviewed
···
1
1
+
when:
2
2
+
- event: ['push', 'manual']
3
3
+
branch: ['main']
4
4
+
5
5
+
engine: 'nixery'
6
6
+
7
7
+
dependencies:
8
8
+
nixpkgs:
9
9
+
- coreutils
10
10
+
- gnused
11
11
+
- nodejs_24
12
12
+
- pnpm
13
13
+
14
14
+
steps:
15
15
+
- name: Install dependencies
16
16
+
command: pnpm install --frozen-lockfile
17
17
+
- name: Build packages
18
18
+
command: pnpm run build
19
19
+
- name: Deploy (production)
20
20
+
command: pnpx wrangler deploy
+20
.tangled/workflows/test.yml
reviewed
···
1
1
+
when:
2
2
+
- event: ['push', 'pull_request']
3
3
+
branch: ['main']
4
4
+
5
5
+
engine: 'nixery'
6
6
+
7
7
+
dependencies:
8
8
+
nixpkgs:
9
9
+
- coreutils
10
10
+
- gnused
11
11
+
- nodejs_24
12
12
+
- pnpm
13
13
+
14
14
+
steps:
15
15
+
- name: Install dependencies
16
16
+
command: pnpm install --frozen-lockfile
17
17
+
- name: Build packages
18
18
+
command: pnpm run build
19
19
+
- name: Run tests
20
20
+
command: pnpm run test