Last active
November 17, 2024 07:06
-
-
Save nobonobo/23501975c2868a355823b9630f43a54d to your computer and use it in GitHub Desktop.
Pythonスクリプトを動作可能なバイナリにして各種プラットフォーム向けにリリースするシナリオ for GitHub Actions
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: push | |
on: | |
push: | |
tags: | |
- "v*" | |
jobs: | |
windows-build: | |
runs-on: windows-latest | |
steps: | |
- name: Checkout commit | |
uses: actions/checkout@master | |
- name: Set up Python 3.8 | |
uses: actions/setup-python@master | |
with: { python-version: 3.8 } | |
- name: Upgrade pip | |
run: python -m pip install --upgrade pip PyInstaller | |
- name: build | |
run: pyinstaller -F sample.py | |
- name: upload | |
uses: actions/upload-artifact@v1 | |
with: | |
name: sample-windows | |
path: dist/sample.exe | |
macOS-build: | |
runs-on: macOS-latest | |
steps: | |
- name: Checkout commit | |
uses: actions/checkout@master | |
- name: Set up Python 3.8 | |
uses: actions/setup-python@master | |
with: { python-version: 3.8 } | |
- name: Upgrade pip | |
run: python -m pip install --upgrade pip PyInstaller | |
- name: build | |
run: pyinstaller -F sample.py | |
- name: upload | |
uses: actions/upload-artifact@v1 | |
with: | |
name: sample-macos | |
path: dist/sample | |
ubuntu-build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout commit | |
uses: actions/checkout@master | |
- name: Set up Python 3.8 | |
uses: actions/setup-python@master | |
with: { python-version: 3.8 } | |
- name: Upgrade pip | |
run: python -m pip install --upgrade pip PyInstaller | |
- name: build | |
run: pyinstaller -F sample.py | |
- name: upload | |
uses: actions/upload-artifact@v1 | |
with: | |
name: sample-linux | |
path: dist/sample | |
release: | |
needs: [ubuntu-build, macOS-build, windows-build] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download Linux | |
uses: actions/download-artifact@v1 | |
with: | |
name: sample-linux | |
- name: Download Mac | |
uses: actions/download-artifact@v1 | |
with: | |
name: sample-macos | |
- name: Download Windows | |
uses: actions/download-artifact@v1 | |
with: | |
name: sample-windows | |
- name: Create Release | |
id: create_release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: ${{ github.ref }} | |
release_name: Release ${{ github.ref }} | |
draft: false | |
prerelease: false | |
- name: Zip | |
run: | | |
tar -C sample-macos -pczvf sample-macos.tar.gz sample | |
tar -C sample-linux -pczvf sample-linux.tar.gz sample | |
zip --junk-paths sample-windows ./sample-windows/sample.exe | |
- name: Append Binary | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./sample-macos.tar.gz | |
asset_name: sample-macos.tar.gz | |
asset_content_type: application/gzip | |
- name: Append Binary | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./sample-linux.tar.gz | |
asset_name: sample-linux.tar.gz | |
asset_content_type: application/gzip | |
- name: Append Binary | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./sample-windows.zip | |
asset_name: sample-windows.zip | |
asset_content_type: application/zip |
pip3 install -r requirements.txt
などを挟めばクロスプラットフォームなスクリプトならビルドできる。
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
(root)/.github/workflows/build.yaml
に配置する&タグにv0.1.0などを付与してpushすればビルドが走る。