6464 name : built-fonts
6565 path : fonts/
6666 retention-days : 7
67+ - name : Upload general use fonts
68+ if : always()
69+ uses : actions/upload-artifact@v4
70+ with :
71+ name : general-use-fonts
72+ path : general_use_fonts/
73+ retention-days : 7
6774 - name : Upload test reports
6875 if : always()
6976 uses : actions/upload-artifact@v4
@@ -93,6 +100,12 @@ jobs:
93100 name : test-reports
94101 path : out/
95102 continue-on-error : true
103+ - name : Download general use fonts
104+ uses : actions/download-artifact@v4
105+ with :
106+ name : general-use-fonts
107+ path : general_use_fonts/
108+ continue-on-error : true
96109 - name : Set up test result site
97110 run : |
98111 mkdir -p out/ttf
@@ -134,22 +147,45 @@ jobs:
134147 with :
135148 name : ${{ env.ZIP_NAME }}
136149 path : release
137- - name : Create prerelease bundle
150+ - name : Create prerelease bundles
138151 run : |
139152 TAG="pre-${GITHUB_SHA}"
140153 TITLE="Pre-release ${GITHUB_SHA::7}"
141- RELEASE_ZIP="${TAG}.zip"
142- NOTES="Automated prerelease for commit ${GITHUB_SHA}."
143-
144- zip -r "$RELEASE_ZIP" release
154+
155+ # Create three separate zip files
156+ GENERAL_ZIP="iosevka-charon.zip"
157+ GF_ZIP="iosevka-charon-google-fonts-version.zip"
158+ QA_ZIP="iosevka-charon-google-fonts-qa-report.zip"
159+
160+ # Package general use fonts
161+ if [ -d "release/general_use_fonts" ]; then
162+ cd release/general_use_fonts && zip -r "../../${GENERAL_ZIP}" . && cd ../..
163+ fi
164+
165+ # Package Google Fonts version
166+ if [ -d "release/fonts" ]; then
167+ cd release/fonts && zip -r "../../${GF_ZIP}" . && cd ../..
168+ fi
169+
170+ # Package QA report
171+ if [ -d "release/out/fontspector" ]; then
172+ cd release/out/fontspector && zip -r "../../../${QA_ZIP}" . && cd ../../..
173+ fi
174+
175+ printf -v NOTES "Automated prerelease for commit %s.\n\n**For general use, download \`iosevka-charon.zip\`**\n\nThis prerelease includes three archives:\n- **\`iosevka-charon.zip\`**: General use fonts (unprocessed TrueType fonts from Iosevka)\n- **\`iosevka-charon-google-fonts-version.zip\`**: Fonts processed specifically for Google Fonts\n- **\`iosevka-charon-google-fonts-qa-report.zip\`**: Quality assurance report for the Google Fonts build" "${GITHUB_SHA}"
145176
146177 gh release delete "$TAG" -y 2>/dev/null || true
147- gh release create "$TAG" "$RELEASE_ZIP" \
178+ gh release create "$TAG" \
148179 --title "$TITLE" \
149180 --notes "$NOTES" \
150181 --prerelease \
151182 --latest=false \
152183 --target "$GITHUB_SHA"
184+
185+ # Upload the three zip files
186+ [ -f "${GENERAL_ZIP}" ] && gh release upload "$TAG" "${GENERAL_ZIP}" --clobber
187+ [ -f "${GF_ZIP}" ] && gh release upload "$TAG" "${GF_ZIP}" --clobber
188+ [ -f "${QA_ZIP}" ] && gh release upload "$TAG" "${QA_ZIP}" --clobber
153189
154190 release :
155191 name : Release bundle
@@ -196,15 +232,41 @@ jobs:
196232 - name : Set release file name
197233 shell : bash
198234 run : echo "RELEASE_ZIP_NAME=$(echo '${{ github.repository }}' | awk -F '/' '{print $2}')-${{ github.event.release.tag_name }}" >> $GITHUB_ENV
199- - name : Create release bundle (fonts only )
235+ - name : Create release bundles (three separate archives )
200236 run : |
201- mkdir -p ${{ env.RELEASE_ZIP_NAME }}
202- cp -r ${{ env.ZIP_NAME }}/fonts ${{ env.RELEASE_ZIP_NAME }}/
203- cp ${{ env.ZIP_NAME }}/OFL.txt ${{ env.RELEASE_ZIP_NAME }}/
204- if [ -f ${{ env.ZIP_NAME }}/ARTICLE.en_us.html ]; then
205- cp ${{ env.ZIP_NAME }}/ARTICLE.en_us.html ${{ env.RELEASE_ZIP_NAME }}/
237+ # Create three separate zip files
238+ GENERAL_ZIP="iosevka-charon.zip"
239+ GF_ZIP="iosevka-charon-google-fonts-version.zip"
240+ QA_ZIP="iosevka-charon-google-fonts-qa-report.zip"
241+
242+ # Package 1: General use fonts
243+ if [ -d "${{ env.ZIP_NAME }}/general_use_fonts" ]; then
244+ mkdir -p temp_general
245+ cp -r ${{ env.ZIP_NAME }}/general_use_fonts/* temp_general/
246+ cp ${{ env.ZIP_NAME }}/OFL.txt temp_general/
247+ if [ -f ${{ env.ZIP_NAME }}/ARTICLE.en_us.html ]; then
248+ cp ${{ env.ZIP_NAME }}/ARTICLE.en_us.html temp_general/
249+ fi
250+ cd temp_general && zip -r "../${GENERAL_ZIP}" . && cd ..
251+ rm -rf temp_general
252+ fi
253+
254+ # Package 2: Google Fonts version
255+ if [ -d "${{ env.ZIP_NAME }}/fonts" ]; then
256+ mkdir -p temp_gf
257+ cp -r ${{ env.ZIP_NAME }}/fonts/* temp_gf/
258+ cp ${{ env.ZIP_NAME }}/OFL.txt temp_gf/
259+ if [ -f ${{ env.ZIP_NAME }}/ARTICLE.en_us.html ]; then
260+ cp ${{ env.ZIP_NAME }}/ARTICLE.en_us.html temp_gf/
261+ fi
262+ cd temp_gf && zip -r "../${GF_ZIP}" . && cd ..
263+ rm -rf temp_gf
264+ fi
265+
266+ # Package 3: QA Report
267+ if [ -d "${{ env.ZIP_NAME }}/out/fontspector" ]; then
268+ cd ${{ env.ZIP_NAME }}/out/fontspector && zip -r "../../../${QA_ZIP}" . && cd ../../..
206269 fi
207- zip -r ${{ env.RELEASE_ZIP_NAME }}.zip ${{ env.RELEASE_ZIP_NAME }}
208270 - name : Build release notes
209271 run : |
210272 STATUS="Passed"
@@ -214,16 +276,32 @@ jobs:
214276 {
215277 echo "## ${{ github.event.release.tag_name }}"
216278 echo ""
217- echo "- Validation status: ${STATUS}"
279+ echo "**For general use, download \`iosevka-charon.zip\`**"
280+ echo ""
281+ echo "This release includes three archives:"
282+ echo "- **\`iosevka-charon.zip\`**: General use fonts (unprocessed TrueType fonts from Iosevka, suitable for general use)"
283+ echo "- **\`iosevka-charon-google-fonts-version.zip\`**: Fonts processed specifically for Google Fonts"
284+ echo "- **\`iosevka-charon-google-fonts-qa-report.zip\`**: Quality assurance report for the Google Fonts build"
285+ echo ""
286+ echo "---"
287+ echo ""
288+ echo "### Validation Status: ${STATUS}"
218289 echo ""
219290 if [ -f fontspector-summary.md ]; then
220- echo "## Fontspector QA Report"
291+ echo "### Fontspector QA Report"
221292 echo ""
222293 cat fontspector-summary.md
223294 fi
224295 } > release-notes.md
225- - name : Upload release bundle
226- run : gh release upload ${{ github.event.release.tag_name }} ${{ env.RELEASE_ZIP_NAME }}.zip --clobber
296+ - name : Upload release bundles
297+ run : |
298+ GENERAL_ZIP="iosevka-charon.zip"
299+ GF_ZIP="iosevka-charon-google-fonts-version.zip"
300+ QA_ZIP="iosevka-charon-google-fonts-qa-report.zip"
301+
302+ [ -f "${GENERAL_ZIP}" ] && gh release upload ${{ github.event.release.tag_name }} "${GENERAL_ZIP}" --clobber
303+ [ -f "${GF_ZIP}" ] && gh release upload ${{ github.event.release.tag_name }} "${GF_ZIP}" --clobber
304+ [ -f "${QA_ZIP}" ] && gh release upload ${{ github.event.release.tag_name }} "${QA_ZIP}" --clobber
227305 - name : Upload fontspector HTML report
228306 if : ${{ steps.fontspector.outputs.has_html == 'true' }}
229307 run : gh release upload ${{ github.event.release.tag_name }} fontspector-report.html --clobber
0 commit comments