Publish #137
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: Publish | |
on: | |
workflow_run: | |
workflows: Tests | |
branches: main | |
types: completed | |
workflow_dispatch: | |
inputs: | |
release_pypi: | |
description: 'Create a new PyPI release' | |
type: boolean | |
required: true | |
default: true | |
release_github: | |
description: 'Create a new GitHub release' | |
type: boolean | |
required: true | |
default: true | |
jobs: | |
build-and-release: | |
# XXX: Nobody expects the `contains()` repetition | |
if: contains(github.event.workflow_run.head_commit.message, 'Version') || github.event.inputs.release_pypi || github.event.inputs.release_github | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Python | |
uses: actions/setup-python@v2 | |
with: | |
python-version: '3.10' | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
python -m pip install setuptools wheel build twine | |
python -m pip install Pyinstaller | |
python -m pip install -e . | |
python setup.py install | |
- name: Build package (PyPI) | |
if: contains(github.event.workflow_run.head_commit.message, 'Version') || github.event.inputs.release_pypi | |
run: python -m build --no-isolation | |
- name: Publish package (PyPI) | |
if: contains(github.event.workflow_run.head_commit.message, 'Version') || github.event.inputs.release_pypi | |
env: | |
TWINE_USERNAME: __token__ | |
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }} | |
run: | | |
twine upload ./dist/*.whl --skip-existing | |
twine upload ./dist/*.tar.gz --skip-existing | |
- name: Build Windows executable (GitHub) | |
if: contains(github.event.workflow_run.head_commit.message, 'Version') || github.event.inputs.release_github | |
run: | | |
pyinstaller sssekai.spec | |
- name : Get Version (GitHub) | |
if: contains(github.event.workflow_run.head_commit.message, 'Version') || github.event.inputs.release_github | |
id : get_version | |
run : | | |
$message = @(pip show sssekai) | |
$lines = $message.Split(' ') | |
$version = $lines[3] | |
Write-Output "::set-output name=version::$version" | |
- name: Create Release (GitHub) | |
if: contains(github.event.workflow_run.head_commit.message, 'Version') || github.event.inputs.release_github | |
id: create_release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: ${{ steps.get_version.outputs.version }} | |
release_name: Version ${{ steps.get_version.outputs.version }} | |
- name: Upload Release Asset (GitHub) | |
if: contains(github.event.workflow_run.head_commit.message, 'Version') || github.event.inputs.release_github | |
uses: actions/upload-release-asset@v1.0.1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: dist/sssekai.exe | |
asset_name: sssekai.exe | |
asset_content_type: application/application/vnd.microsoft.portable-executable | |
- name: Publish Release (GitHub) | |
if: contains(github.event.workflow_run.head_commit.message, 'Version') || github.event.inputs.release_github | |
uses: eregon/publish-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
release_id: ${{ steps.create_release.outputs.id }} |