|
7 | 7 | - 'memory/**'
|
8 | 8 | - 'scripts/**'
|
9 | 9 | - 'templates/**'
|
| 10 | + - '.github/workflows/**' |
10 | 11 | workflow_dispatch:
|
11 | 12 |
|
12 | 13 | jobs:
|
@@ -61,118 +62,8 @@ jobs:
|
61 | 62 | - name: Create release package
|
62 | 63 | if: steps.check_release.outputs.exists == 'false'
|
63 | 64 | run: |
|
64 |
| - # Create base package directory structure |
65 |
| - mkdir -p sdd-package-base |
66 |
| - |
67 |
| - # Copy common folders to base |
68 |
| - if [ -d "memory" ]; then |
69 |
| - cp -r memory sdd-package-base/ |
70 |
| - echo "Copied memory folder" |
71 |
| - fi |
72 |
| - |
73 |
| - if [ -d "scripts" ]; then |
74 |
| - cp -r scripts sdd-package-base/ |
75 |
| - echo "Copied scripts folder" |
76 |
| - fi |
77 |
| -
|
78 |
| - if [ -d "templates" ]; then |
79 |
| - mkdir -p sdd-package-base/templates |
80 |
| - # Copy templates folder but exclude the commands directory |
81 |
| - find templates -type f -not -path "templates/commands/*" -exec cp --parents {} sdd-package-base/ \; |
82 |
| - echo "Copied templates folder (excluding commands directory)" |
83 |
| - fi |
84 |
| - |
85 |
| - # Generate command files for each agent from source templates |
86 |
| - generate_commands() { |
87 |
| - local agent=$1 |
88 |
| - local ext=$2 |
89 |
| - local arg_format=$3 |
90 |
| - local output_dir=$4 |
91 |
| - |
92 |
| - mkdir -p "$output_dir" |
93 |
| - |
94 |
| - for template in templates/commands/*.md; do |
95 |
| - if [[ -f "$template" ]]; then |
96 |
| - name=$(basename "$template" .md) |
97 |
| - description=$(awk '/^description:/ {gsub(/^description: *"?/, ""); gsub(/"$/, ""); print; exit}' "$template" | tr -d '\r') |
98 |
| - content=$(awk '/^---$/{if(++count==2) start=1; next} start' "$template" | sed "s/{ARGS}/$arg_format/g") |
99 |
| - |
100 |
| - case $ext in |
101 |
| - "toml") |
102 |
| - { |
103 |
| - echo "description = \"$description\"" |
104 |
| - echo "" |
105 |
| - echo "prompt = \"\"\"" |
106 |
| - echo "$content" |
107 |
| - echo "\"\"\"" |
108 |
| - } > "$output_dir/$name.$ext" |
109 |
| - ;; |
110 |
| - "md") |
111 |
| - echo "$content" > "$output_dir/$name.$ext" |
112 |
| - ;; |
113 |
| - "prompt.md") |
114 |
| - { |
115 |
| - echo "# $(echo "$description" | sed 's/\. .*//')" |
116 |
| - echo "" |
117 |
| - echo "$content" |
118 |
| - } > "$output_dir/$name.$ext" |
119 |
| - ;; |
120 |
| - esac |
121 |
| - fi |
122 |
| - done |
123 |
| - } |
124 |
| - |
125 |
| - # Create Claude Code package |
126 |
| - mkdir -p sdd-claude-package |
127 |
| - cp -r sdd-package-base/* sdd-claude-package/ |
128 |
| - mkdir -p sdd-claude-package/.claude/commands |
129 |
| - generate_commands "claude" "md" "\$ARGUMENTS" "sdd-claude-package/.claude/commands" |
130 |
| - echo "Created Claude Code package" |
131 |
| - |
132 |
| - # Create Gemini CLI package |
133 |
| - mkdir -p sdd-gemini-package |
134 |
| - cp -r sdd-package-base/* sdd-gemini-package/ |
135 |
| - mkdir -p sdd-gemini-package/.gemini/commands |
136 |
| - generate_commands "gemini" "toml" "{{args}}" "sdd-gemini-package/.gemini/commands" |
137 |
| - if [ -f "agent_templates/gemini/GEMINI.md" ]; then |
138 |
| - cp agent_templates/gemini/GEMINI.md sdd-gemini-package/GEMINI.md |
139 |
| - fi |
140 |
| - echo "Created Gemini CLI package" |
141 |
| - |
142 |
| - # Create GitHub Copilot package |
143 |
| - mkdir -p sdd-copilot-package |
144 |
| - cp -r sdd-package-base/* sdd-copilot-package/ |
145 |
| - mkdir -p sdd-copilot-package/.github/prompts |
146 |
| - generate_commands "copilot" "prompt.md" "\$ARGUMENTS" "sdd-copilot-package/.github/prompts" |
147 |
| - echo "Created GitHub Copilot package" |
148 |
| -
|
149 |
| - # Create Auggie CLI package |
150 |
| - echo "Creating Auggie CLI package..." |
151 |
| - mkdir -p sdd-auggie-package |
152 |
| - cp -r sdd-package-base/* sdd-auggie-package/ |
153 |
| - mkdir -p sdd-auggie-package/.augment/commands |
154 |
| - generate_commands "auggie" "md" "\$ARGUMENTS" "sdd-auggie-package/.augment/commands" |
155 |
| - echo "✓ Created Auggie CLI package" |
156 |
| -
|
157 |
| -
|
158 |
| - # Create archive files for each package |
159 |
| - cd sdd-claude-package && zip -r ../spec-kit-template-claude-${{ steps.get_tag.outputs.new_version }}.zip . && cd .. |
160 |
| -
|
161 |
| - cd sdd-gemini-package && zip -r ../spec-kit-template-gemini-${{ steps.get_tag.outputs.new_version }}.zip . && cd .. |
162 |
| -
|
163 |
| - cd sdd-copilot-package && zip -r ../spec-kit-template-copilot-${{ steps.get_tag.outputs.new_version }}.zip . && cd .. |
164 |
| -
|
165 |
| - cd sdd-auggie-package && zip -r ../spec-kit-template-auggie-${{ steps.get_tag.outputs.new_version }}.zip . && cd .. |
166 |
| - |
167 |
| - # List contents for verification |
168 |
| - echo "Claude package contents:" |
169 |
| - unzip -l spec-kit-template-claude-${{ steps.get_tag.outputs.new_version }}.zip | head -10 |
170 |
| - echo "Gemini package contents:" |
171 |
| - unzip -l spec-kit-template-gemini-${{ steps.get_tag.outputs.new_version }}.zip | head -10 |
172 |
| - echo "Copilot package contents:" |
173 |
| - unzip -l spec-kit-template-copilot-${{ steps.get_tag.outputs.new_version }}.zip | head -10 |
174 |
| - echo "Auggie package contents:" |
175 |
| - unzip -l spec-kit-template-auggie-${{ steps.get_tag.outputs.new_version }}.zip | head -10 |
| 65 | + chmod +x .github/workflows/scripts/create-release-packages.sh |
| 66 | + .github/workflows/scripts/create-release-packages.sh ${{ steps.get_tag.outputs.new_version }} |
176 | 67 |
|
177 | 68 | - name: Generate release notes
|
178 | 69 | if: steps.check_release.outputs.exists == 'false'
|
|
0 commit comments