Softex CelwareTech Blog
Python + Windows配布2026-05-14

GitHub Pages + ReleasesでWindows EXE配布ページを作る

Windows向けEXEツールの紹介ページをGitHub Pagesに置き、配布ZIPをGitHub Releasesで管理する構成を解説します。

PythonWindowsEXE配布GitHub PagesGitHub Releases

はじめに

Windows向けEXEツールを配布するとき、GitHubリポジトリのREADMEだけでは、利用者がどこからダウンロードすればよいか分かりにくいことがあります。

また、配布ZIPをリポジトリに直接コミットすると、Git履歴が重くなります。そこで、紹介ページは GitHub Pages に置き、ZIP本体は GitHub Releases に置く構成にします。

こんな場面で使えます

  • PyInstaller で作ったWindows EXEをZIP配布したい
  • READMEより分かりやすい紹介・ダウンロードページを用意したい
  • ブログ、GitHub、最新版ダウンロードへの導線を1ページにまとめたい
  • 配布ZIPをGit管理対象に入れたくない

基本構成

リポジトリは次のように分けます。

repo/
  docs/
    index.html
    favicon.ico
    .nojekyll
  .github/
    workflows/
      release.yml
  • docs/index.html: GitHub Pagesで公開する紹介・ダウンロードページ
  • docs/favicon.ico: ページ用アイコン
  • docs/.nojekyll: 静的ファイルをそのまま配信するための空ファイル
  • .github/workflows/release.yml: タグpush時にEXEをビルドし、ZIPをGitHub Releasesへ添付する

GitHub Pages側の設定

GitHub Pages は、GitHub画面で一度だけ設定します。

  1. リポジトリの Settings を開く
  2. 左メニューの Pages を開く
  3. Build and deploymentSourceDeploy from a branch にする
  4. Branchmain にする
  5. フォルダを /docs にする
  6. Save

公開URLは通常、次の形になります。

https://<ユーザー名>.github.io/<リポジトリ名>/

なんでもショートカットでは、次のURLを配布ページとして使います。

https://yujifukami.github.io/NandemoShortCut/

ダウンロードリンクの考え方

GitHub Pages 上のボタンは、GitHub Releases のZIPに直接リンクします。

<a href="https://github.com/YujiFukami/NandemoShortCut/releases/download/v1.0.1/NandemoShortcut-v1.0.1.zip">
  v1.0.1をダウンロード
</a>

最新版を見せたい場合は、Release一覧にもリンクしておきます。

<a href="https://github.com/YujiFukami/NandemoShortCut/releases/latest">
  最新リリース
</a>

固定バージョンの直リンクと、最新版ページへのリンクを両方置くと、ブログ記事やマニュアルから参照しやすくなります。

ブログ記事側にもリンクを置く

配布ページを作ったら、対象ツールの紹介ブログや開発事例にもリンクを追加します。

配布ページ:
https://yujifukami.github.io/NandemoShortCut/

最新版ダウンロード:
https://github.com/YujiFukami/NandemoShortCut/releases/latest

GitHub:
https://github.com/YujiFukami/NandemoShortCut

ブログ側では、まず配布ページへ誘導します。必要に応じて、Releaseページや固定バージョンZIPを補助リンクとして置きます。

案内文は次のようにすると分かりやすいです。

最新版は以下の配布ページからダウンロードできます。
GitHub ReleasesにZIPファイルを置いているため、バージョンごとの配布ファイルも確認できます。

Release自動生成ワークフロー例

タグをpushしたときにWindows上でPyInstallerビルドを行い、ZIPをGitHub Releasesへ添付します。

name: Build Release ZIP

on:
  push:
    tags:
      - "v*"
  workflow_dispatch:

permissions:
  contents: write

jobs:
  build:
    runs-on: windows-latest
    steps:
      - uses: actions/checkout@v4

      - uses: actions/setup-python@v5
        with:
          python-version: "3.12"

      - name: Install dependencies
        run: |
          python -m pip install --upgrade pip
          pip install -r requirements.txt pyinstaller

      - name: Build executables
        run: python -m PyInstaller NandemoShortcut.spec --noconfirm

      - name: Prepare release folder
        shell: pwsh
        run: |
          $version = "${{ github.ref_name }}"
          $releaseDir = "NandemoShortcut-$version"
          New-Item -ItemType Directory -Path $releaseDir -Force | Out-Null
          Copy-Item "dist\NandemoShortcut.exe" "$releaseDir\NandemoShortcut.exe"
          Copy-Item "dist\NandemoShortcutLauncher.exe" "$releaseDir\NandemoShortcutLauncher.exe"
          Copy-Item "NandemoShortcut.ico" "$releaseDir\NandemoShortcut.ico"
          Copy-Item "config.json" "$releaseDir\config.json"
          Copy-Item "config.json" "$releaseDir\config.sample.json"
          Copy-Item "LICENSE" "$releaseDir\LICENSE.txt"
          Copy-Item "THIRD_PARTY_NOTICES.md" "$releaseDir\THIRD_PARTY_NOTICES.txt"
          Copy-Item "README.md" "$releaseDir\README.txt"
          Compress-Archive -Path "$releaseDir\*" -DestinationPath "NandemoShortcut-$version.zip" -Force

      - name: Upload GitHub Release asset
        uses: softprops/action-gh-release@v2
        with:
          files: NandemoShortcut-${{ github.ref_name }}.zip
          generate_release_notes: true

この構成では、GitHub Actions がタグpushをきっかけにZIPを作成し、GitHub Releasesへ添付します。

タグ作成と公開手順

git tag v1.0.1
git push origin v1.0.1

タグpush後、GitHub Actions がReleaseを作成し、ZIPを添付します。

docs/index.html 側は、公開済みReleaseのURLへリンクしておきます。

注意点

  • GitHub Pages の初回有効化は、GitHub画面の Settings > Pages で行うのが確実
  • ActionsからPagesを自動有効化しようとすると、権限不足で失敗することがある
  • ZIP本体はGitにコミットしない
  • .gitignore*.zip と配布フォルダを入れる
  • PagesのURLは反映まで数分かかる場合がある
  • release.yml で作るZIP構成と、手元で作る配布ZIP構成は同じ内容に保つ

実際の活用事例

なんでもショートカットでは、GitHub Pages を配布ページ、GitHub Releases をZIP配布先として使います。

関連する開発事例:

配布ページ:

まとめ

Windows向けEXEツールを公開する場合、紹介ページと配布ファイルを分けて考えると運用しやすくなります。

GitHub Pages には紹介ページとダウンロード導線を置き、GitHub Releases にはバージョンごとのZIPを置きます。

この構成にしておくと、ブログや開発事例からは配布ページへ誘導しつつ、GitHub側では過去バージョンの配布ファイルも管理できます。

この技術で業務改善しませんか?

Excel VBA・GAS・Webアプリで業務の自動化ツールを開発しています。 「こんなことできる?」というご相談だけでもお気軽にどうぞ。

無料相談はこちら →