mirror of
https://github.com/meshtastic/python.git
synced 2025-12-26 09:27:52 -05:00
180 lines
5.2 KiB
YAML
180 lines
5.2 KiB
YAML
name: Make Release
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
version:
|
|
description: "Release version (Example: 1.0.0, must match 'version' in setup.py)"
|
|
required: true
|
|
default: '1.0.0'
|
|
|
|
jobs:
|
|
release_create:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
|
|
- name: Create GitHub release
|
|
uses: actions/create-release@v1
|
|
id: create_release
|
|
with:
|
|
draft: true
|
|
prerelease: true
|
|
release_name: ${{ github.event.inputs.version}}
|
|
tag_name: ${{ github.event.inputs.version}}
|
|
body: |
|
|
Autogenerated by github action, developer should edit as required before publishing...
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
outputs:
|
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
|
|
|
publish_to_pypi:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Set up Python 3.9
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: 3.9
|
|
|
|
- name: Install pypa/build
|
|
run: >-
|
|
python -m
|
|
pip install
|
|
build
|
|
--user
|
|
|
|
- name: Build a binary wheel and a source tarball
|
|
run: >-
|
|
python -m
|
|
build
|
|
--sdist
|
|
--wheel
|
|
--outdir dist/
|
|
.
|
|
|
|
- name: Publish to PyPI
|
|
uses: pypa/gh-action-pypi-publish@master
|
|
with:
|
|
user: __token__
|
|
password: ${{ secrets.PYPI_API_TOKEN }}
|
|
|
|
|
|
build-and-publish-mac:
|
|
runs-on: macos-latest
|
|
needs: release_create
|
|
steps:
|
|
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Set up Python 3.9
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: 3.9
|
|
|
|
- name: Setup code signing
|
|
env:
|
|
MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }}
|
|
MACOS_CERTIFICATE_PWD: ${{ secrets.MACOS_CERTIFICATE_PWD }}
|
|
MACOS_KEYCHAIN_PASSWORD: ${{ secrets.MACOS_KEYCHAIN_PASSWORD }}
|
|
run: |
|
|
echo $MACOS_CERTIFICATE | base64 --decode > certificate.p12
|
|
security create-keychain -p "$MACOS_KEYCHAIN_PASSWORD" meshtastic.keychain
|
|
security default-keychain -s meshtastic.keychain
|
|
security unlock-keychain -p "$MACOS_KEYCHAIN_PASSWORD" meshtastic.keychain
|
|
security import certificate.p12 -k meshtastic.keychain -P "$MACOS_CERTIFICATE_PWD" -T /usr/bin/codesign
|
|
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k "$MACOS_KEYCHAIN_PASSWORD" meshtastic.keychain
|
|
|
|
- name: Build
|
|
env:
|
|
MACOS_SIGNING_IDENTITY: ${{ secrets.MACOS_SIGNING_IDENTITY }}
|
|
run: |
|
|
pip install pyinstaller
|
|
pip install -r requirements.txt
|
|
pip install .
|
|
pyinstaller -F -n meshtastic --collect-all meshtastic --codesign-identity "$MACOS_SIGNING_IDENTITY" meshtastic/__main__.py
|
|
|
|
- name: Add mac to release
|
|
uses: actions/upload-release-asset@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
upload_url: ${{ needs.release_create.outputs.upload_url }}
|
|
asset_path: dist/meshtastic
|
|
asset_name: meshtastic_mac
|
|
asset_content_type: application/zip
|
|
|
|
build-and-publish-ubuntu:
|
|
runs-on: ubuntu-latest
|
|
needs: release_create
|
|
steps:
|
|
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Set up Python 3.9
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: 3.9
|
|
|
|
- name: Build
|
|
run: |
|
|
pip install pyinstaller
|
|
pip install -r requirements.txt
|
|
pip install .
|
|
pyinstaller -F -n meshtastic --collect-all meshtastic meshtastic/__main__.py
|
|
|
|
- name: Add ubuntu to release
|
|
uses: actions/upload-release-asset@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
upload_url: ${{ needs.release_create.outputs.upload_url }}
|
|
asset_path: dist/meshtastic
|
|
asset_name: meshtastic_ubuntu
|
|
asset_content_type: application/zip
|
|
|
|
- name: Add readme.txt to release
|
|
uses: actions/upload-release-asset@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
upload_url: ${{ needs.release_create.outputs.upload_url }}
|
|
asset_path: standalone_readme.txt
|
|
asset_name: readme.txt
|
|
asset_content_type: text/plain
|
|
|
|
build-and-publish-windows:
|
|
runs-on: windows-latest
|
|
needs: release_create
|
|
steps:
|
|
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Set up Python 3.9
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: 3.9
|
|
|
|
- name: Build
|
|
run: |
|
|
pip install pyinstaller
|
|
pip install -r requirements.txt
|
|
pip install .
|
|
pyinstaller -F -n meshtastic --collect-all meshtastic meshtastic/__main__.py
|
|
|
|
- name: Add windows to release
|
|
uses: actions/upload-release-asset@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
upload_url: ${{ needs.release_create.outputs.upload_url }}
|
|
asset_path: dist/meshtastic.exe
|
|
asset_name: meshtastic_windows
|
|
asset_content_type: application/zip
|