mirror of
https://github.com/DJ2LS/FreeDATA
synced 2024-05-14 08:04:33 +00:00
a4a59b3edf
we want to have the tnc binaries as standalone files in our releases as well. So this is the first attempt...
148 lines
4.4 KiB
YAML
148 lines
4.4 KiB
YAML
name: macOS Nightly
|
|
on:
|
|
push:
|
|
#tags:
|
|
#- '*'
|
|
|
|
jobs:
|
|
build_linux_release:
|
|
name: Build macOS release
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
os: [macos-10.15]
|
|
include:
|
|
- os: macos-10.15
|
|
zip_name: mac_tnc
|
|
generator: Unix Makefiles
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v2
|
|
with:
|
|
ref: ls-leave-prototype
|
|
|
|
- name: Set up Python 3.9
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: 3.9
|
|
|
|
|
|
|
|
- name: Install macOS dependencies
|
|
if: matrix.os == 'macos-10.15'
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip3 install psutil
|
|
pip3 install crcengine
|
|
pip3 install pyinstaller
|
|
pip3 install ujson
|
|
pip3 install pyserial
|
|
pip3 install numpy
|
|
pip3 install structlog
|
|
|
|
- name: Install Portaudio
|
|
if: matrix.os == 'macos-10.15'
|
|
run: |
|
|
brew install portaudio
|
|
pip3 install pyaudio
|
|
|
|
|
|
- name: Build codec2 macOS
|
|
if: matrix.os == 'macos-10.15'
|
|
working-directory: tnc
|
|
run: |
|
|
git clone https://github.com/drowe67/codec2.git
|
|
cd codec2 && mkdir build_mac && cd build_mac
|
|
cmake ../
|
|
make
|
|
|
|
|
|
- name: Build macOS pyinstaller
|
|
if: matrix.os == 'macos-10.15'
|
|
working-directory: tnc
|
|
run: |
|
|
pyinstaller freedata.spec
|
|
|
|
- name: LIST ALL FILES
|
|
shell: bash
|
|
run: |
|
|
ls -R
|
|
|
|
|
|
- name: Compress
|
|
shell: bash
|
|
run: |
|
|
cd ./tnc/dist
|
|
mkdir compressed
|
|
zip -r ./compressed/${{ matrix.zip_name }}.zip *
|
|
|
|
- name: Upload macOS TNC artifacts
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: tnc-artifact
|
|
path: ./tnc/dist/compressed/*
|
|
|
|
- name: Release TNC
|
|
uses: softprops/action-gh-release@v1
|
|
if: startsWith(github.ref, 'refs/tags/v')
|
|
with:
|
|
files: ./tnc/dist/compressed/${{ matrix.zip_name }}.zip
|
|
|
|
|
|
- name: Copy TNC to GUI
|
|
if: matrix.os == 'macos-10.15'
|
|
run: |
|
|
cp -R ./tnc/dist/tnc ./gui/tnc
|
|
ls -R
|
|
|
|
- name: Install Node.js, NPM and Yarn
|
|
uses: actions/setup-node@v1
|
|
with:
|
|
node-version: 16
|
|
|
|
|
|
- name: Build/release Electron app
|
|
uses: samuelmeuli/action-electron-builder@v1
|
|
with:
|
|
package_root: "./gui/"
|
|
github_token: ${{ secrets.github_token }}
|
|
# If the commit is tagged with a version (e.g. "v1.0.0"),
|
|
# release the app after building
|
|
release: ${{ startsWith(github.ref, 'refs/tags/v') }}
|
|
|
|
- name: LIST ALL FILES
|
|
shell: bash
|
|
run: |
|
|
ls -R
|
|
|
|
- name: Create app bundle
|
|
shell: bash
|
|
run: |
|
|
mkdir gui-bundle
|
|
cp ./gui/dist/FreeDATA*.dmg gui-bundle
|
|
cd ./gui-bundle
|
|
zip -r FreeDATA_mac.zip .
|
|
|
|
- name: Upload macOS GUI Bundle artifacts
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: gui-bundle-ubuntu-artifact
|
|
path: ./gui-bundle/FreeDATA_mac.zip
|
|
|
|
|
|
|
|
|
|
- name: Release
|
|
uses: WebFreak001/deploy-nightly@v1.1.0
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
upload_url: https://uploads.github.com/repos/DJ2LS/FreeDATA/releases/48616289/assets{?name,label} # find out this value by opening https://api.github.com/repos/<owner>/<repo>/releases in your browser and copy the full "upload_url" value including the {?name,label} part
|
|
release_id: 48616289 # same as above (id can just be taken out the upload_url, it's used to find old releases)
|
|
asset_path: ./gui-bundle/FreeDATA_mac.zip # path to archive to upload
|
|
asset_name: FreeDATA_mac-nightly-$$.zip # name to upload the release as, use $$ to insert date (YYYYMMDD) and 6 letter commit hash
|
|
asset_content_type: application/zip # required by GitHub API
|
|
max_releases: 1 # optional, if there are more releases than this matching the asset_name, the oldest ones are going to be deleted
|
|
|
|
|