mirror of
https://github.com/DJ2LS/FreeDATA
synced 2024-05-14 08:04:33 +00:00
35bb004c9e
a first test with github build scripts and a possible auto updater for the app bundle. This feature is really needed to ensure the user always has the latest version of the gui. Specially in the first phase of releasing the app, there are a lot of changes. This makes the overall usability hopefully easier! Everyone who's getting github notifictaions: this might cause a lot of emails now. Sorry for this..
141 lines
4.1 KiB
YAML
141 lines
4.1 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: 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
|
|
|
|
|