Skip to content

feat: add production-grade GitHub Actions Release workflow - #73

Merged
chottokun merged 2 commits into
mainfrom
add-release-workflow-3865488152887528913
Oct 13, 2026
Merged

chottokun merged 2 commits into
mainfrom
add-release-workflow-3865488152887528913

Conversation

@chottokun

Copy link
Copy Markdown
Owner

This PR introduces a highly reliable GitHub Actions Release workflow located at .github/workflows/release.yml.

Verified Features & Operations:

  1. Trigger Validation: Safely activates on push of tags matching v* as well as manual runs via workflow_dispatch.
  2. Quality Gates: Executes BOM encoding verification (.ps1 must be UTF-8 with BOM; .bat without BOM) and triggers existing Pester 3.4.0 test suites (aligned perfectly with ci.yml).
  3. Clean Distribution Packaging: Securely isolates only the required runtime files (lib/, markdown_sample/, core scripts, docs) while explicitly rejecting arbitrary directories like .git, .agents, tests, scratch, .log files, and .cache.
  4. Portability Smoke Testing: A distinct build validation step unpacks the compressed .zip into a new temp dir, confirms absence of excluded development files, guarantees presence of required ones (Markdig.dll, Start-MarkdigWiki.bat, index.md, etc), and finally runs a completely detached Export-MarkdigWiki.ps1 static html generation build.
  5. Release Distribution: Pushes SimpleWiki-<tag>.zip and its .sha256 checksum utilizing softprops/action-gh-release@v2.

Detailed Local Verification output (simulation):

--- Encoding & BOM Verification ---
--- Build Clean Distribution Package ---
Created Zip File: /app/temp/SimpleWiki-v-local-test.zip
Zip File Size: 1621370 bytes
--- Package Portability Smoke Test ---
Contents of extracted package:

==========================================================
  Markdig Wiki 静的 HTML エキスポート開始
  入力元:       /app/temp/verify_extracted/markdown_sample
  出力先:       /app/temp\extracted_export
  言語:         ja
  SingleFile:   False
  EmbedImages:  False (Max: 1024KB, MaxDim: 1600px)
  MermaidMode:  Runtime
==========================================================
  [HTML 変換] docs/api/index.md -> docs/api/index.html
  [HTML 変換] docs/api/REST-API.md -> docs/api/REST-API.html
...
  [HTML 変換] glossary.md -> glossary.html
  [HTML 変換] guides/index.md -> guides/index.html
  [HTML 変換] log.md -> log.html
  [API JSON 出力] -> api/index.json
  [HTML 変換] tags.html
  [HTML 変換] authors.html
  [アセット コピー] images/ui-header.png
  [オフライン JS コピー] lib\mermaid.min.js
==========================================================
  エキスポート完了! 静的ファイル出力先:
  /app/temp\extracted_export
==========================================================
Package Portability Smoke Test Passed

PR created automatically by Jules for task 3865488152887528913 started by @chottokun

- Implements automated CI release on push to `v*` tags
- Validates code BOM encoding and executes Pester 3.4.0 unit tests identical to `ci.yml`
- Safely stages only required runtime files into a clean `$env:RUNNER_TEMP` directory, explicitly excluding `.git`, `.github`, `tests`, etc.
- Packages portable `SimpleWiki-<tag>.zip` distribution and generates SHA-256 hash checksums
- Verifies package portability automatically via a smoke test that unpacks the zip into an isolated directory and executes a static `Export-MarkdigWiki.ps1` HTML build
- Automates GitHub Release creation utilizing `softprops/action-gh-release@v2` with generated assets attached

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
@google-labs-jules

Copy link
Copy Markdown
Contributor

👋 Jules, reporting for duty! I'm here to lend a hand with this pull request.

When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down.

I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job!

For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

@chottokun
chottokun merged commit df9cb68 into main Oct 13, 2026
1 check passed
@chottokun
chottokun deleted the add-release-workflow-3865488152887528913 branch October 13, 2026 03:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant