-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathjustfile
More file actions
112 lines (96 loc) · 2.74 KB
/
justfile
File metadata and controls
112 lines (96 loc) · 2.74 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
set dotenv-load := true
root_dir := justfile_directory()
extension_dir := root_dir / "extension"
server_dir := root_dir / "server"
build:
cd {{ extension_dir }} && pnpm build
package: build
#!/usr/bin/env bash
cd {{ extension_dir }}
rm -f extension.zip
cd dist && zip -r ../extension.zip ./*
echo "✅ Extension packaged to extension/extension.zip"
clean:
cd {{ extension_dir }} && rm -rf dist node_modules
deps: deps-root deps-extension
deps-root:
pnpm install
deps-extension:
cd {{ extension_dir }} && pnpm install
rebuild: clean deps build
release:
#!/usr/bin/env bash
set -euo pipefail
echo "⚠️ WARNING: This will trigger a production release!"
echo " - Merge main → release"
echo " - Push to origin/release"
echo " - Trigger GitHub Actions release workflow"
echo ""
read -p "Continue? (type 'yes' to confirm): " confirm
if [[ "$confirm" != "yes" ]]; then
echo "❌ Release cancelled."
exit 1
fi
echo "🚀 Starting release process..."
echo "📦 Merging main to release branch..."
git checkout release
git merge main
git push origin release
git checkout main
echo ""
echo "✅ Release branch updated!"
echo "🔄 GitHub Actions will now:"
echo " 1. Analyze commits for version bump"
echo " 2. Generate release notes"
echo " 3. Create tag and GitHub release"
echo " 4. Update CHANGELOG.md"
echo " 5. Build and upload to Chrome Web Store"
echo ""
echo "📊 Check progress: https://github.com/KubrickCode/github-project-status-viewer/actions"
typecheck:
cd {{ extension_dir }} && pnpm tsc --noEmit
watch:
cd {{ extension_dir }} && pnpm watch
test:
just test-server
just test-extension
test-extension:
cd {{ extension_dir }} && pnpm test
test-server:
cd {{ server_dir }} && \
JWT_SECRET=test-secret \
KV_REST_API_URL=http://test-redis.local \
KV_REST_API_TOKEN=test-token \
GITHUB_CLIENT_ID=test-client-id \
GITHUB_CLIENT_SECRET=test-client-secret \
CHROME_EXTENSION_ID=test-extension-id \
go test -v ./pkg/...
lint target="all":
#!/usr/bin/env bash
set -euox pipefail
case "{{ target }}" in
all)
just lint extension
just lint server
just lint config
just lint justfile
;;
extension)
npx prettier --write "{{ extension_dir }}/src/**/*.ts"
cd "{{ extension_dir }}"
pnpm lint
;;
server)
gofmt -w "{{ server_dir }}"
;;
config)
npx prettier --write "**/*.{json,yml,yaml,md}"
;;
justfile)
just --fmt --unstable
;;
*)
echo "Unknown target: {{ target }}"
exit 1
;;
esac