mirror of
https://github.com/meshtastic/python.git
synced 2025-12-25 08:57:53 -05:00
199 lines
5.9 KiB
YAML
199 lines
5.9 KiB
YAML
name: Make Release
|
|
on: workflow_dispatch
|
|
|
|
jobs:
|
|
release_create:
|
|
runs-on: ubuntu-latest
|
|
|
|
outputs:
|
|
version: ${{ steps.get_version.outputs.version }}
|
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
|
new_sha: ${{ steps.commit_updated.outputs.sha }}
|
|
|
|
steps:
|
|
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Bump version
|
|
run: >-
|
|
bin/bump_version.py
|
|
|
|
- name: Commit updated version.py
|
|
id: commit_updated
|
|
run: |
|
|
git config --global user.name 'github-actions'
|
|
git config --global user.email 'bot@noreply.github.com'
|
|
git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}
|
|
git add setup.py
|
|
git commit -m "bump version" && git push || echo "No changes to commit"
|
|
git log -n 1 --pretty=format:"%H" | tail -n 1 | awk '{print "::set-output name=sha::"$0}'
|
|
|
|
- name: Get version
|
|
id: get_version
|
|
run: >-
|
|
bin/show_version.py
|
|
|
|
- name: Create GitHub release
|
|
uses: actions/create-release@v1
|
|
id: create_release
|
|
|
|
with:
|
|
draft: true
|
|
prerelease: true
|
|
release_name: Meshtastic Python ${{ steps.get_version.outputs.version }}
|
|
tag_name: ${{ steps.get_version.outputs.version }}
|
|
body: |
|
|
Autogenerated by github action, developer should edit as required before publishing...
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- 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@v3
|
|
with:
|
|
ref: ${{ needs.release_create.outputs.new_sha }}
|
|
|
|
- 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@v3
|
|
with:
|
|
ref: ${{ needs.release_create.outputs.new_sha }}
|
|
|
|
- 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@v3
|
|
with:
|
|
ref: ${{ needs.release_create.outputs.new_sha }}
|
|
|
|
- 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
|