Make Release #122
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: 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 '[email protected]' | |
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 |