FreeDATA/.github/workflows/build-project-win.yml
dj2ls 35bb004c9e v0.0.1-alpha
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..
2022-02-22 11:06:22 +01:00

137 lines
4.4 KiB
YAML

name: Windows Nightly
on:
push:
#tags:
#- '*'
jobs:
build_windows_release:
name: Build Windows release
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [windows-latest]
include:
- os: windows-latest
zip_name: windows_tnc
generator: Visual Studio 16 2019
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 Python dependencies
if: matrix.os == 'windows-latest'
run: |
python -m pip install --upgrade pip
pip install psutil
pip install crcengine
pip install pyinstaller
pip install ujson
pip install pyserial
pip install numpy
pip install structlog
pip install colorama
# curl.exe --output PyAudio-0.2.11-cp39-cp39-win_amd64.whl --url https://download.lfd.uci.edu/pythonlibs/y2rycu7g/PyAudio-0.2.11-cp39-cp39-win_amd64.whl
# pip install PyAudio-0.2.11-cp39-cp39-win_amd64.whl
- name: Install Pyaudio
if: matrix.os == 'windows-latest'
working-directory: tnc/lib/pyaudio/windows
run: |
pip install PyAudio-0.2.11-cp39-cp39-win_amd64.whl
- name: Build Windows Daemon and TNC
if: matrix.os == 'windows-latest'
working-directory: tnc
run: |
pyinstaller freedata.spec
- name: LIST ALL FILES
shell: bash
run: |
ls -R
#- name: Build codec2
# shell: bash
# run: |
# choco install ninja cmake
# ninja --version
# cmake --version
- 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 -R ./gui/dist/win-unpacked/ gui-bundle
cp -R ./tnc/dist/tnc gui-bundle/win-unpacked
- name: LIST ALL FILES
shell: bash
run: |
ls -R
- name: Archive Release
uses: thedoctor0/zip-release@master
with:
type: 'zip'
filename: 'FreeDATA_windows.zip'
directory: ./gui-bundle/win-unpacked/
path: .
#exclusions: '*.git* /*node_modules/* .editorconfig'
- name: Upload Windows GUI Bundle artifacts
uses: actions/upload-artifact@v2
with:
name: gui-bundle-windows-artifact
path: ./gui-bundle/win-unpacked/FreeDATA_windows.zip
- name: LIST ALL FILES
shell: bash
run: |
ls -R
- 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/win-unpacked/FreeDATA_windows.zip # path to archive to upload
asset_name: FreeDATA_windows-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