|
61 | 61 | - name: Create release package |
62 | 62 | if: steps.check_release.outputs.exists == 'false' |
63 | 63 | 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 | | - case $ext in |
100 | | - "toml") |
101 | | - { echo "description = \"$description\""; echo ""; echo "prompt = \"\"\""; echo "$content"; echo "\"\"\""; } > "$output_dir/$name.$ext" ;; |
102 | | - "md") |
103 | | - echo "$content" > "$output_dir/$name.$ext" ;; |
104 | | - "prompt.md") |
105 | | - # Preserve original front matter + body with argument substitution for Copilot |
106 | | - # Simply copy the entire template, replacing {ARGS} |
107 | | - # This keeps YAML so tooling can parse metadata |
108 | | - sed "s/{ARGS}/$arg_format/g" "$template" > "$output_dir/$name.$ext" ;; |
109 | | - esac |
110 | | - fi |
111 | | - done |
112 | | - } |
113 | | - |
114 | | - # Create Claude Code package |
115 | | - mkdir -p sdd-claude-package |
116 | | - cp -r sdd-package-base/* sdd-claude-package/ |
117 | | - mkdir -p sdd-claude-package/.claude/commands |
118 | | - generate_commands "claude" "md" "\$ARGUMENTS" "sdd-claude-package/.claude/commands" |
119 | | - echo "Created Claude Code package" |
120 | | - |
121 | | - # Create Gemini CLI package |
122 | | - mkdir -p sdd-gemini-package |
123 | | - cp -r sdd-package-base/* sdd-gemini-package/ |
124 | | - mkdir -p sdd-gemini-package/.gemini/commands |
125 | | - generate_commands "gemini" "toml" "{{args}}" "sdd-gemini-package/.gemini/commands" |
126 | | - if [ -f "agent_templates/gemini/GEMINI.md" ]; then |
127 | | - cp agent_templates/gemini/GEMINI.md sdd-gemini-package/GEMINI.md |
128 | | - fi |
129 | | - echo "Created Gemini CLI package" |
130 | | - |
131 | | - # Create GitHub Copilot package |
132 | | - mkdir -p sdd-copilot-package |
133 | | - cp -r sdd-package-base/* sdd-copilot-package/ |
134 | | - mkdir -p sdd-copilot-package/.github/prompts |
135 | | - generate_commands "copilot" "prompt.md" "\$ARGUMENTS" "sdd-copilot-package/.github/prompts" |
136 | | - echo "Created GitHub Copilot package" |
137 | | - |
138 | | - # Create archive files for each package |
139 | | - cd sdd-claude-package && zip -r ../spec-kit-template-claude-${{ steps.get_tag.outputs.new_version }}.zip . && cd .. |
140 | | - |
141 | | - cd sdd-gemini-package && zip -r ../spec-kit-template-gemini-${{ steps.get_tag.outputs.new_version }}.zip . && cd .. |
142 | | - |
143 | | - cd sdd-copilot-package && zip -r ../spec-kit-template-copilot-${{ steps.get_tag.outputs.new_version }}.zip . && cd .. |
144 | | - |
145 | | - # List contents for verification |
146 | | - echo "Claude package contents:" |
147 | | - unzip -l spec-kit-template-claude-${{ steps.get_tag.outputs.new_version }}.zip | head -10 |
148 | | - echo "Gemini package contents:" |
149 | | - unzip -l spec-kit-template-gemini-${{ steps.get_tag.outputs.new_version }}.zip | head -10 |
150 | | - echo "Copilot package contents:" |
151 | | - unzip -l spec-kit-template-copilot-${{ steps.get_tag.outputs.new_version }}.zip | head -10 |
| 64 | + chmod +x scripts/create-release-packages.sh |
| 65 | + ./scripts/create-release-packages.sh ${{ steps.get_tag.outputs.new_version }} |
152 | 66 | |
153 | 67 | - name: Generate release notes |
154 | 68 | if: steps.check_release.outputs.exists == 'false' |
|
0 commit comments